-- Fechas institucionales aprobadas para la calendarización escolar 2026.
-- El parche es idempotente y reemplaza cualquier registro anterior de estos
-- tres códigos para evitar que una restauración o despliegue genere duplicados.

UPDATE `ie_fecha_especial` AS `f`
INNER JOIN `anio_lectivo` AS `a`
        ON `a`.`id_anio_lectivo` = `f`.`id_anio_lectivo`
SET `f`.`estado` = 0,
    `f`.`actualizado_en` = NOW()
WHERE `a`.`anio` = 2026
  AND `f`.`codigo` LIKE 'CAL-DEI-%'
  AND `f`.`codigo` <> 'CAL-DEI-20260430';

UPDATE `ie_fecha_especial` AS `f`
INNER JOIN `anio_lectivo` AS `a`
        ON `a`.`id_anio_lectivo` = `f`.`id_anio_lectivo`
SET `f`.`estado` = 0,
    `f`.`actualizado_en` = NOW()
WHERE `a`.`anio` = 2026
  AND `f`.`codigo` LIKE 'CAL-PAS-%'
  AND `f`.`codigo` <> 'CAL-PAS-20260925';

UPDATE `ie_fecha_especial` AS `f`
INNER JOIN `anio_lectivo` AS `a`
        ON `a`.`id_anio_lectivo` = `f`.`id_anio_lectivo`
SET `f`.`estado` = 0,
    `f`.`actualizado_en` = NOW()
WHERE `a`.`anio` = 2026
  AND `f`.`codigo` LIKE 'CAL-ANV-%'
  AND `f`.`codigo` <> 'CAL-ANV-20260921';

INSERT INTO `ie_fecha_especial`
    (`id_anio_lectivo`, `codigo`, `descripcion`, `tipo`, `fecha_inicio`, `fecha_fin`,
     `fuente`, `fuente_url`, `alerta_dias_previos`, `es_general`, `estado`, `creado_en`, `actualizado_en`)
SELECT `a`.`id_anio_lectivo`, 'CAL-DEI-20260430', 'Deporte escolar interno', 'INSTITUCIONAL',
       '2026-04-30', '2026-04-30', 'Calendarización APP UGEL H', NULL, 7, 0, 1, NOW(), NOW()
FROM `anio_lectivo` AS `a`
WHERE `a`.`anio` = 2026
ORDER BY `a`.`estado` DESC, `a`.`id_anio_lectivo` DESC
LIMIT 1
ON DUPLICATE KEY UPDATE
    `descripcion` = VALUES(`descripcion`),
    `tipo` = VALUES(`tipo`),
    `fecha_inicio` = VALUES(`fecha_inicio`),
    `fecha_fin` = VALUES(`fecha_fin`),
    `fuente` = VALUES(`fuente`),
    `fuente_url` = VALUES(`fuente_url`),
    `alerta_dias_previos` = VALUES(`alerta_dias_previos`),
    `es_general` = VALUES(`es_general`),
    `estado` = 1,
    `actualizado_en` = NOW();

INSERT INTO `ie_fecha_especial`
    (`id_anio_lectivo`, `codigo`, `descripcion`, `tipo`, `fecha_inicio`, `fecha_fin`,
     `fuente`, `fuente_url`, `alerta_dias_previos`, `es_general`, `estado`, `creado_en`, `actualizado_en`)
SELECT `a`.`id_anio_lectivo`, 'CAL-PAS-20260925', 'Paseo primaveral', 'INSTITUCIONAL',
       '2026-09-25', '2026-09-25', 'Calendarización APP UGEL H', NULL, 7, 0, 1, NOW(), NOW()
FROM `anio_lectivo` AS `a`
WHERE `a`.`anio` = 2026
ORDER BY `a`.`estado` DESC, `a`.`id_anio_lectivo` DESC
LIMIT 1
ON DUPLICATE KEY UPDATE
    `descripcion` = VALUES(`descripcion`),
    `tipo` = VALUES(`tipo`),
    `fecha_inicio` = VALUES(`fecha_inicio`),
    `fecha_fin` = VALUES(`fecha_fin`),
    `fuente` = VALUES(`fuente`),
    `fuente_url` = VALUES(`fuente_url`),
    `alerta_dias_previos` = VALUES(`alerta_dias_previos`),
    `es_general` = VALUES(`es_general`),
    `estado` = 1,
    `actualizado_en` = NOW();

INSERT INTO `ie_fecha_especial`
    (`id_anio_lectivo`, `codigo`, `descripcion`, `tipo`, `fecha_inicio`, `fecha_fin`,
     `fuente`, `fuente_url`, `alerta_dias_previos`, `es_general`, `estado`, `creado_en`, `actualizado_en`)
SELECT `a`.`id_anio_lectivo`, 'CAL-ANV-20260921', 'Aniversario institucional', 'INSTITUCIONAL',
       '2026-09-21', '2026-09-21', 'Calendarización APP UGEL H', NULL, 7, 0, 1, NOW(), NOW()
FROM `anio_lectivo` AS `a`
WHERE `a`.`anio` = 2026
ORDER BY `a`.`estado` DESC, `a`.`id_anio_lectivo` DESC
LIMIT 1
ON DUPLICATE KEY UPDATE
    `descripcion` = VALUES(`descripcion`),
    `tipo` = VALUES(`tipo`),
    `fecha_inicio` = VALUES(`fecha_inicio`),
    `fecha_fin` = VALUES(`fecha_fin`),
    `fuente` = VALUES(`fuente`),
    `fuente_url` = VALUES(`fuente_url`),
    `alerta_dias_previos` = VALUES(`alerta_dias_previos`),
    `es_general` = VALUES(`es_general`),
    `estado` = 1,
    `actualizado_en` = NOW();
