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
activity_types PK id tinyint ⁺ UQ code varchar(30) name varchar(50) created_at? timestamp updated_at? timestamp incident_activities PK id bigint ⁺ FK incident_id bigint ⁺ FK user_id bigint ⁺ FK activity_type_id tinyint ⁺ changes? json note? varchar(1000) ip_address? varchar(45) user_agent? varchar(255) created_at timestamp incident_code_sequences PK year smallint ⁺ last_number int ⁺ incident_comments PK id bigint ⁺ UQ ulid char(26) FK incident_id bigint ⁺ FK user_id bigint ⁺ body? varchar(2000) created_at timestamp deleted_at? timestamp incident_reopen_requests PK id bigint ⁺ FK incident_id bigint ⁺ FK requested_by bigint ⁺ reason varchar(1000) status varchar(10) FK decided_by? bigint ⁺ decision_note? varchar(1000) decided_at? timestamp created_at? timestamp updated_at? timestamp UQ pending_incident_id? bigint ⁺ incidents PK id bigint ⁺ UQ ulid char(26) UQ code varchar(20) title varchar(150) description text FK priority_id tinyint ⁺ FK status_id tinyint ⁺ FK created_by bigint ⁺ FK assigned_to? bigint ⁺ due_date datetime resolved_at? timestamp lock_version int ⁺ created_at? timestamp updated_at? timestamp deleted_at? timestamp priorities PK id tinyint ⁺ UQ code varchar(30) name varchar(50) UQ level tinyint ⁺ default_resolution_minutes int ⁺ is_active tinyint(1) created_at? timestamp updated_at? timestamp status_transitions PK from_status_id tinyint ⁺ PK to_status_id tinyint ⁺ statuses PK id tinyint ⁺ UQ code varchar(30) name varchar(50) sort_order tinyint ⁺ is_initial tinyint(1) is_pending tinyint(1) is_final tinyint(1) requires_note tinyint(1) is_active tinyint(1) created_at? timestamp updated_at? timestamp permissions PK id smallint ⁺ UQ code varchar(60) name varchar(80) created_at? timestamp updated_at? timestamp role_permission PK role_id smallint ⁺ PK permission_id smallint ⁺ roles PK id smallint ⁺ UQ code varchar(60) name varchar(80) UQ level tinyint ⁺ is_system tinyint(1) created_at? timestamp updated_at? timestamp user_permissions PK user_id bigint ⁺ PK permission_id smallint ⁺ effect varchar(5) FK granted_by bigint ⁺ created_at timestamp user_role PK user_id bigint ⁺ PK role_id smallint ⁺ users PK id bigint ⁺ UQ ulid char(26) given_names varchar(80) family_names varchar(80) name? varchar(161) UQ email varchar(191) password varchar(255) is_active tinyint(1) mfa_grace_used tinyint ⁺ last_login_at? timestamp created_at? timestamp updated_at? timestamp mfa_policies PK role_id smallint ⁺ is_required tinyint(1) grace_logins tinyint ⁺ created_at? timestamp updated_at? timestamp password_reset_codes PK id bigint ⁺ FK user_id bigint ⁺ code_hash char(64) attempts tinyint ⁺ expires_at timestamp ticket_hash? char(64) ticket_expires_at? timestamp used_at? timestamp created_at timestamp personal_access_tokens PK id bigint ⁺ tokenable_type varchar(20) FK tokenable_id bigint ⁺ name varchar(100) UQ token char(64) abilities? text last_used_at? datetime expires_at? datetime created_at? timestamp updated_at? timestamp user_mfa_factors PK id bigint ⁺ FK user_id bigint ⁺ method varchar(20) secret text confirmed_at? timestamp last_used_step? bigint ⁺ created_at? timestamp updated_at? timestamp user_recovery_codes PK id bigint ⁺ FK user_id bigint ⁺ code_hash char(64) used_at? timestamp created_at timestamp dashboard_widgets PK id smallint ⁺ UQ code varchar(40) name varchar(60) description varchar(200) kind varchar(10) FK permission_id? smallint ⁺ sort_order smallint ⁺ min_w tinyint ⁺ max_w tinyint ⁺ min_h tinyint ⁺ max_h tinyint ⁺ default_w tinyint ⁺ default_h tinyint ⁺ is_active tinyint(1) in_default_layout tinyint(1) created_at? timestamp updated_at? timestamp notification_types PK id tinyint ⁺ UQ code varchar(40) name varchar(80) category varchar(20) created_at? timestamp updated_at? timestamp notifications PK id bigint ⁺ UQ ulid char(26) FK user_id bigint ⁺ FK notification_type_id tinyint ⁺ FK incident_id bigint ⁺ FK comment_id? bigint ⁺ FK activity_id? bigint ⁺ occurrences smallint ⁺ read_at? timestamp created_at timestamp pending_comment_incident_id? bigint ⁺ user_dashboard_widgets PK user_id bigint ⁺ PK dashboard_widget_id smallint ⁺ x tinyint ⁺ y smallint ⁺ w tinyint ⁺ h tinyint ⁺ is_visible tinyint(1) created_at? timestamp updated_at? timestamp admin_action_types PK id tinyint ⁺ UQ code varchar(40) name varchar(80) created_at? timestamp updated_at? timestamp admin_actions PK id bigint ⁺ FK user_id bigint ⁺ FK admin_action_type_id tinyint ⁺ FK target_user_id? bigint ⁺ FK target_role_id? smallint ⁺ details? json ip_address? varchar(45) user_agent? varchar(255) created_at timestamp failed_jobs PK id bigint ⁺ UQ uuid varchar(255) connection text queue text payload longtext exception longtext failed_at timestamp system_event_types PK id tinyint ⁺ UQ code varchar(40) name varchar(80) category varchar(20) severity varchar(10) created_at? timestamp updated_at? timestamp system_events PK id bigint ⁺ FK system_event_type_id tinyint ⁺ UQ fingerprint char(64) message varchar(255) context? json occurrences int ⁺ first_seen_at timestamp last_seen_at timestamp trace_id? varchar(64) status varchar(15) FK status_changed_by? bigint ⁺ status_changed_at? timestamp Arrastra el fondo para moverte, usa la rueda o los botones para acercar y arrastra una tabla para acomodarla. Elige una tabla para ver sus relaciones.