[LOGIC / BUSINESS] F-03.2 — Archivar Log en Histórico
Épica: EPIC-03 — Detalle y Archivado de un Log
🏷️ Categoría
Categoría: Logic / BusinessSecundaria: DataImpacta en: Equipo Fullstack (Livewire + Laravel + Base de Datos)
📦 Dependencias
Backlogs que deben estar completados antes de implementar esta feature.
| Backlog | Motivo |
|---|---|
| F-03.1 | Vista detalle del log con botón 'Archivar en Histórico' visible |
| F-03.3 | Editor TipTap instalado y operativo para el comentario inicial obligatorio |
| F-00.2 | Tablas archived_logs y comments disponibles |
| F-05.5 | Usuario autenticado disponible para asignar archived_by_id y aplicar Policy |
Prioridad: Must
Descripción: Como administrador del sistema Quiero poder archivar un log activo en el histórico añadiendo un comentario inicial obligatorio Para documentar la resolución del error y mantener trazabilidad de las acciones tomadas
Criterios de Aceptación (Checklist):
- [ ] Escenario 1 (Happy Path): Dado que estoy en la vista detalle de un log activo y he escrito un comentario, cuando pulso "Archivar en Histórico", entonces el log se mueve al histórico, desaparece de la vista activa y el primer comentario queda asociado.
- [ ] Escenario 2 (Comentario obligatorio): Dado que intento archivar un log sin haber escrito ningún comentario, cuando pulso "Archivar", entonces se muestra un error de validación y no se ejecuta la acción.
- [ ] Escenario 3 (Confirmación): Dado que pulso "Archivar en Histórico", cuando se muestra el diálogo de confirmación, entonces debo confirmar la acción antes de que sea irreversible.
- [ ] Escenario 4 (Auditoría): Dado que el archivado se completa, cuando consulto el histórico, entonces el registro muestra
archived_atyarchived_by(nombre/id del admin). - [ ] Requisito Técnico: Operación atómica en una transacción DB: INSERT en
archived_logs+ INSERT encomments+DELETE FROM logs WHERE id = ?. El log original se elimina físicamente delogsdentro de la misma transacción. El usuario de DB del panel no tiene permiso DELETE directo sobrearchived_logs(STRIDE T-DB-01). El comentario se sanitiza en backend antes de persistir (STRIDE T-RTE-01).