ALTER TABLE usuarios_sistema
ADD notificaciones BIT DEFAULT 0,
    notificaciones_extra BIT DEFAULT 0;

CREATE TABLE tipos_notificaciones (
    id INT PRIMARY KEY IDENTITY,
    nombre NVARCHAR(255) NOT NULL,
    descripcion NVARCHAR(500) NULL
);

INSERT INTO tipos_notificaciones (nombre, descripcion) VALUES
('nuevas_solicitudes', 'Creación de nuevas solicitudes de importación'),
('registro_solicitud', 'Notificación inmediata al registrar una solicitud'),
('cambio_estado', 'Cambio de estado de solicitudes de importación'),
('resumen_diario', 'Resumen diario de solicitudes de importación'),
('alertas_tiempo', 'Alertas por tiempo excedido en estados críticos'),
('documentos_expediente', 'Incorporación de documentos al expediente electrónico'),
('nuevos_archivos', 'Aviso al agregarse nuevos archivos o documentos'),
('intentos_fallidos', 'Intentos fallidos de acceso'),
('bloqueo_cuenta', 'Bloqueo de cuenta');

CREATE TABLE preferencias_notificaciones_usuario (
    id_usuario INT PRIMARY KEY,
    nuevas_solicitudes BIT DEFAULT 0,
    registro_solicitud BIT DEFAULT 0,
    cambio_estado BIT DEFAULT 0,
    resumen_diario BIT DEFAULT 0,
    alertas_tiempo BIT DEFAULT 0,
    documentos_expediente BIT DEFAULT 0,
    nuevos_archivos BIT DEFAULT 0,
    intentos_fallidos BIT DEFAULT 0,
    bloqueo_cuenta BIT DEFAULT 0,
    FOREIGN KEY (id_usuario) REFERENCES usuarios_sistema(id_usuario)
);

ALTER TABLE preferencias_notificaciones_usuario 
ADD resumen_diario_hora TIME DEFAULT '08:00:00',
    resumen_diario_dias NVARCHAR(20) DEFAULT 'L-V'; -- L-V = Lunes a Viernes, o 'TODOS' para todos los días