Documento Diagrama de relaciones users Roles y permisos Catálogos incidents incident_activities incident_reopen_requests personal_access_tokens dashboard_widgets y user_dashboard_widgets MFA password_reset_codes admin_actions system_events failed_jobs incident_code_sequences incident_comments notifications
Los catálogos son datos, no código: agregar un estado o cambiar el flujo es insertar filas. Nunca se borran (se desactivan con is_active) y se referencian siempre por su code. Los colores no se guardan aquí: el frontend asocia cada code a un token de diseño.
priorities
Columna Tipo Restricciones Descripción idTINYINT UNSIGNED PK codeVARCHAR(30) UNIQUE, NOT NULL nameVARCHAR(50) NOT NULL levelTINYINT UNSIGNED UNIQUE, CHECK ≥ 1 Orden de gravedad: ordenar por prioridad es ordenar por este valor default_resolution_minutesINT UNSIGNED NOT NULL, CHECK > 0 Base para sugerir la fecha de vencimiento is_activeBOOLEAN NOT NULL
code Nombre level Resolución sugerida lowBaja 1 5 días mediumMedia 2 3 días highAlta 3 1 día criticalCrítica 4 4 horas
statuses
Columna Tipo Descripción idTINYINT UNSIGNED, PK codeVARCHAR(30), UNIQUE nameVARCHAR(50) sort_orderTINYINT UNSIGNED Orden de presentación is_initialBOOLEAN Estado con el que nace un incidente is_pendingBOOLEAN Trabajo pendiente: cuenta para “vencido” is_finalBOOLEAN Fin del ciclo de vida requires_noteBOOLEAN Llegar a este estado exige una nota (ADR-0071 ) is_activeBOOLEAN
code Nombre Inicial Pendiente Final Pide nota openAbierto ✓ ✓ in_progressEn progreso ✓ on_holdEn espera ✓ resolvedResuelto ✓ closedCerrado ✓ cancelledCancelado ✓ ✓
Las banderas describen el comportamiento sin depender del nombre del estado: “vencido” se calcula como due_date pasada y estado con is_pending.
status_transitions
Columna Referencia ON DELETE from_status_idstatuses.idRESTRICT to_status_idstatuses.idRESTRICT
PK (from_status_id, to_status_id), índice en to_status_id y CHECK que impide la transición de un estado hacia sí mismo.
stateDiagram-v2
[*] --> open
open --> in_progress
open --> cancelled
in_progress --> on_hold
in_progress --> resolved
in_progress --> cancelled
on_hold --> in_progress
on_hold --> cancelled
resolved --> closed
resolved --> in_progress
closed --> [*]
cancelled --> [*]
Cerrado y Cancelado no tienen transiciones de salida. Se reabren por un camino aparte, con solicitud y aprobación (incident_reopen_requests ).
activity_types
code Nombre createdCreado updatedEditado status_changedCambio de estado assignedAsignado unassignedSin asignar deletedEliminado restoredRestaurado reopen_requestedReapertura solicitada reopen_rejectedReapertura rechazada reopenedReabierto
Dónde está en el código