[LOGIC / BUSINESS] F-02.8 — Estado del Log (Activo / Solucionado)
Épica: EPIC-02 — Listado y Filtrado de Logs Activos
🏷️ Categoría
Categoría: Logic / BusinessSecundaria: UI / PresentationImpacta en: Equipo Fullstack (Livewire + Laravel)
📦 Dependencias
Backlogs que deben estar completados antes de implementar esta feature.
| Backlog | Motivo |
|---|---|
| F-02.1 | Componente LogsTable donde se añade el botón 'Solucionado' |
| F-03.1 | Vista detalle del log donde también aparece el botón |
Prioridad: Should
Descripción: Como administrador del sistema Quiero marcar un log como "Solucionado" con un clic rápido desde la tabla o el detalle Para que desaparezca de la vista de logs activos sin necesidad de archivarlo en el histórico con un comentario detallado
Criterios de Aceptación (Checklist):
- [ ] Escenario 1 (Marcar como solucionado): Dado que veo un log activo en la tabla, cuando pulso el botón "Solucionado" (icono de check), entonces el log cambia su estado a
solucionadoy desaparece de la lista de activos sin recargar la página. - [ ] Escenario 2 (Modal de confirmación): Dado que pulso "Solucionado", cuando se ejecuta la acción, entonces se muestra un modal de confirmación (Alpine.js
x-show) antes de proceder para evitar clics accidentales. - [ ] Escenario 3 (Sin comentario obligatorio): Dado que marco un log como solucionado, cuando se confirma, entonces no se requiere comentario ni descripción — la acción es inmediata (diferente del archivado en histórico).
- [ ] Escenario 4 (Diferencia con histórico): Dado que existen dos acciones sobre un log activo ("Guardar en Histórico" y "Solucionado"), cuando el admin abre el detalle, entonces ambos botones son visibles y claramente diferenciados.
- [ ] Escenario 5 (Campo en DB): El campo
resolvedde la tablalogsse usa como estado:false= activo,true= solucionado (soft-close). El panel filtra automáticamenteWHERE resolved = falseen la vista de activos. - [ ] Requisito Técnico: Livewire Action
markAsSolved(id)en el componenteLogsTableoLogDetail. EjecutaUPDATE logs SET resolved = true WHERE id = ?mediante Eloquent. El componente se re-renderiza y el log desaparece de la lista.
MoSCoW: SHOULDSprint: Sprint 2
Notas:
- Esta acción es un "soft close" rápido. El log NO pasa al histórico ni genera entrada en
archived_logs. - Si se quiere preservar el log en el histórico con comentarios, se usa el botón "Guardar en Histórico" (F-03.2).
resolved = truees un "soft close" rápido: el log deja de aparecer en la vista activa pero no genera entrada enarchived_logs. El archivado (F-03.2) hace un DELETE físico del log de la tablalogsy crea unarchived_logcon historial. Son dos acciones completamente distintas e incompatibles.