Cómo eliminar un alérgeno
Elimina un alérgeno propio de Grupo Marea Demo o de Marea Gran Via cuando el usuario tiene permiso de gestión sobre el ámbito real del registro. La acción retira sus asociaciones con productos y conserva versiones históricas de catálogos cuando hay servicios pasados afectados.
En este artículo
La eliminación de alérgenos está pensada para retirar etiquetas propias que ya no deben usarse en la carta. Antylogic distingue si el alérgeno pertenece a la organización o a una ubicación y sólo habilita el borrado cuando el usuario puede gestionar ese ámbito.
Antes de ejecutar el borrado, el sistema congela snapshots de catálogos del mismo ámbito cuando existen servicios históricos afectados. Después, la relación `product_allergens` se limpia por cascada: se retira la asociación con productos, pero no se borran productos.
Antes de empezar
- Sesión iniciada con Grupo Marea Demo como organización seleccionada.
- Para operar desde ubicación, Marea Gran Via debe estar seleccionada.
- Tener `catalog:manage` en el ámbito propietario real del alérgeno: organización o ubicación.
- Elegir un alérgeno propio y editable; no usar alérgenos de sistema ni registros base que deban conservarse.
Instrucciones
- 1.
Abre la pestaña Alérgenos
Entra en `/location/catalogs?tab=allergens` para Marea Gran Via o en `/organization/catalogs?tab=allergens` para Grupo Marea Demo. La pantalla carga los alérgenos visibles según el ámbito activo y tus permisos.
- 2.
Elige un alérgeno editable
Selecciona un alérgeno propio. La app calcula el ámbito real del registro y sólo muestra acciones de edición o borrado si tienes `catalog:manage` sobre ese mismo ámbito.
- 3.
Abre la confirmación
Usa `Eliminar` desde el menú de fila o abre el detalle del alérgeno y pulsa `Eliminar` en el pie del formulario. Antylogic muestra una confirmación antes de ejecutar la acción destructiva.
- 4.
Confirma el borrado
Al confirmar, la app envía un `DELETE` sin cuerpo al endpoint del ámbito real: `/api/app/{orgId}/{locationId}/allergens/{allergenId}` para ubicación o `/api/app/{orgId}/allergens/{allergenId}` para organización.
- 5.
Revisa el resultado
Tras el éxito, la lista se refresca, el detalle del alérgeno eliminado deja de estar disponible y, si el borrado empezó desde el detalle, la app vuelve a la pestaña Alérgenos.
Validaciones y límites
- `catalog:view` permite consultar la lista o el detalle, pero no completar la eliminación.
- Los alérgenos de sistema no son editables ni eliminables desde la app.
- El botón `Eliminar` no aparece en modo creación, modo sólo lectura ni registro histórico.
- Un alérgeno de organización visto desde ubicación sólo se elimina si el usuario también tiene `catalog:manage` de organización.
- La ruta de ubicación no debe usarse para borrar un alérgeno de organización; el backend rechaza ámbitos no coincidentes.
- Para alérgenos no hay flujo de reemplazo ni reasignación manual de productos.
- La respuesta correcta del backend es `204 No Content`.
- Si falla la conservación de snapshots de catálogo, el borrado se aborta y el alérgeno permanece disponible.
- El borrado elimina las asociaciones en `product_allergens` por cascada, pero no elimina productos.
Resultado esperado
El alérgeno desaparece del ámbito correspondiente, sus asociaciones producto-alérgeno quedan retiradas y los catálogos históricos afectados conservan una versión congelada cuando corresponde.