<?php //25w13b
require_once("../../functions.php");
$pag = basename($_SERVER['PHP_SELF']);
gen_plantilla(true, $pag, false, false, '', false, false);

// Solo admin puede editar festivos
if ($_SESSION['tipo_usuario'] != 'admin') {
    crear_notificacion('error', 'No tienes permisos para realizar esta acción');
    exit;
}

$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT);
$fecha_inicio = filter_input(INPUT_POST, 'fecha_inicio', FILTER_SANITIZE_SPECIAL_CHARS);
$fecha_fin = filter_input(INPUT_POST, 'fecha_fin', FILTER_SANITIZE_SPECIAL_CHARS);
$tipo_dia = filter_input(INPUT_POST, 'tipo_dia', FILTER_SANITIZE_NUMBER_INT);

if (empty($id) || empty($fecha_inicio) || empty($fecha_fin)) {
    crear_notificacion('error', 'Faltan campos obligatorios');
    exit;
}

if ($fecha_fin < $fecha_inicio) {
    crear_notificacion('error', 'La fecha fin debe ser igual o posterior a la fecha inicio');
    exit;
}

// Verificar que el festivo existe
$festivo = consulta('SELECT * FROM dias_inhabiles WHERE id=?;', [$id], true);
if (empty($festivo)) {
    crear_notificacion('error', 'No se ha encontrado el festivo');
    exit;
}

// Actualizar
$resultado = consulta(
    'UPDATE dias_inhabiles SET fecha_entrada=?, fecha_termina=?, id_motivo=? WHERE id=?;',
    [$fecha_inicio, $fecha_fin, $tipo_dia, $id],
    false
);

if ($resultado) {
    crear_log(
        'info',
        'Festivo modificado',
        $pag,
        "Se ha modificado el festivo ID:$id. Nuevas fechas: $fecha_inicio - $fecha_fin, tipo: $tipo_dia"
    );
    crear_notificacion('correcto', 'Festivo modificado correctamente');
} else {
    crear_log('error', 'Error al modificar festivo', $pag, "No se pudo modificar el festivo ID:$id");
    crear_notificacion('error', 'Error al modificar el festivo');
}
