-- ============================================================================
-- Tabla de Auditoría de Cambios de Acceso
-- ============================================================================
-- Registra todos los cambios de nivel y permisos realizados por administradores

CREATE TABLE IF NOT EXISTS chat.auth_audit_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
    admin_cedula VARCHAR(20) COMMENT 'Cédula del admin que hizo el cambio',
    admin_nombre VARCHAR(100) COMMENT 'Nombre del admin',
    target_cedula VARCHAR(20) COMMENT 'Cédula del usuario modificado',
    target_nombre VARCHAR(100) COMMENT 'Nombre del usuario modificado',
    action VARCHAR(50) COMMENT 'Tipo de acción: change_level, change_status, reset_password, etc',
    old_value VARCHAR(255) COMMENT 'Valor anterior',
    new_value VARCHAR(255) COMMENT 'Valor nuevo',
    ip_address VARCHAR(45) COMMENT 'IP del admin',
    
    INDEX idx_target (target_cedula),
    INDEX idx_timestamp (timestamp),
    INDEX idx_admin (admin_cedula),
    INDEX idx_action (action)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='Auditoría de cambios en niveles de acceso y permisos';

-- Ejemplo de uso:
-- INSERT INTO auth_audit_log (admin_cedula, admin_nombre, target_cedula, target_nombre, action, old_value, new_value, ip_address)
-- VALUES ('V-12345678', 'Admin User', 'V-87654321', 'Juan Perez', 'change_level', '1', '3', '192.168.1.100');
