-- 1) Aprobar todas las recalendarizaciones (estatus general, profesor y tutor = APROBADO).
-- 2) Enviar notificación "Recalendarización Confirmada" a profesor, alumno y tutores, como en approveRequest.

-- 1. Aprobar
UPDATE clase_recalendarizaciones
SET fk_id_estatus_general = 2,
    fk_id_estatus_profesor = 2,
    fk_id_estatus_tutor = 2,
    estado = 'APROBADO';

-- 2. Notificaciones "Recalendarización Confirmada" (profesor, alumno, padre principal, tutores de rel_alumno_tutor)
-- Profesores
INSERT INTO notificaciones (titulo, mensaje, tipo, leida, archivada, fk_id_usuario_destinatario, fecha_creacion, fk_id_archivo)
SELECT '✅ Recalendarización Confirmada', 'La clase de ' || COALESCE(m.nombre,'la materia') || ' ha sido confirmada para el ' || r.fecha_nueva::text || '.', 'sistema', false, false, c.fk_id_usuario_profesor, NOW(), NULL
FROM clase_recalendarizaciones r
JOIN clases c ON c.id_clase = r.fk_id_clase
LEFT JOIN cat_materias m ON m.id_cat_materia = c.fk_id_cat_materia
WHERE r.fk_id_estatus_general = 2;

-- Alumnos
INSERT INTO notificaciones (titulo, mensaje, tipo, leida, archivada, fk_id_usuario_destinatario, fecha_creacion, fk_id_archivo)
SELECT '✅ Recalendarización Confirmada', 'La clase de ' || COALESCE(m.nombre,'la materia') || ' ha sido confirmada para el ' || r.fecha_nueva::text || '.', 'sistema', false, false, c.fk_id_usuario_alumno, NOW(), NULL
FROM clase_recalendarizaciones r
JOIN clases c ON c.id_clase = r.fk_id_clase
LEFT JOIN cat_materias m ON m.id_cat_materia = c.fk_id_cat_materia
WHERE r.fk_id_estatus_general = 2 AND c.fk_id_usuario_alumno IS NOT NULL;

-- Padres (perfil_alumno.fk_id_usuario_padre_tutor)
INSERT INTO notificaciones (titulo, mensaje, tipo, leida, archivada, fk_id_usuario_destinatario, fecha_creacion, fk_id_archivo)
SELECT '✅ Recalendarización Confirmada', 'La clase de ' || COALESCE(m.nombre,'la materia') || ' ha sido confirmada para el ' || r.fecha_nueva::text || '.', 'sistema', false, false, p.fk_id_usuario_padre_tutor, NOW(), NULL
FROM clase_recalendarizaciones r
JOIN clases c ON c.id_clase = r.fk_id_clase
LEFT JOIN cat_materias m ON m.id_cat_materia = c.fk_id_cat_materia
JOIN perfil_alumno p ON p.fk_id_usuario = c.fk_id_usuario_alumno AND p.fk_id_usuario_padre_tutor IS NOT NULL
WHERE r.fk_id_estatus_general = 2;

-- Tutores adicionales (rel_alumno_tutor)
INSERT INTO notificaciones (titulo, mensaje, tipo, leida, archivada, fk_id_usuario_destinatario, fecha_creacion, fk_id_archivo)
SELECT '✅ Recalendarización Confirmada', 'La clase de ' || COALESCE(m.nombre,'la materia') || ' ha sido confirmada para el ' || r.fecha_nueva::text || '.', 'sistema', false, false, t.fk_id_tutor, NOW(), NULL
FROM clase_recalendarizaciones r
JOIN clases c ON c.id_clase = r.fk_id_clase
LEFT JOIN cat_materias m ON m.id_cat_materia = c.fk_id_cat_materia
JOIN rel_alumno_tutor t ON t.fk_id_alumno = c.fk_id_usuario_alumno AND t.activo = true
WHERE r.fk_id_estatus_general = 2;
