-- Tabla de notificaciones para el sistema
-- Ejecutar en phpMyAdmin o con: mysql -u root institutoAyudantias < notificaciones.sql

CREATE TABLE IF NOT EXISTS notificaciones (
    idNotificacion INT AUTO_INCREMENT PRIMARY KEY,
    idUsuarioDestino INT NOT NULL,
    idUsuarioOrigen INT NOT NULL,
    tipo ENUM('confirmacion', 'rechazo', 'edicion', 'movimiento') NOT NULL,
    mensaje TEXT NOT NULL,
    idAyudantia INT,
    leida TINYINT(1) DEFAULT 0,
    fechaCreacion DATETIME DEFAULT CURRENT_TIMESTAMP,
    fechaLeida DATETIME NULL,
    FOREIGN KEY (idUsuarioDestino) REFERENCES usuarios(idUsuario) ON DELETE CASCADE,
    FOREIGN KEY (idUsuarioOrigen) REFERENCES usuarios(idUsuario) ON DELETE CASCADE,
    FOREIGN KEY (idAyudantia) REFERENCES ayudantias(idAyudantia) ON DELETE CASCADE,
    INDEX idx_usuario_destino (idUsuarioDestino),
    INDEX idx_leida (leida),
    INDEX idx_fecha_creacion (fechaCreacion)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Índice compuesto para consultas eficientes de notificaciones no leídas por usuario
CREATE INDEX idx_usuario_leida ON notificaciones(idUsuarioDestino, leida);
