<?php
// El header.php se encargará de llamar a secure_session_start()
// que ahora contiene toda la lógica de configuración e inicio de sesión.

$page_title = 'Libro de Matrícula';
include __DIR__ . '/header.php';

// Proteger la página para que solo los roles autorizados puedan acceder
require_role(['administrador', 'digitador', 'convivencia', 'inspector']);

require_once __DIR__ . '/../config/db_auto.php';
include __DIR__ . '/navbar.php';

// Inicializar variables para evitar errores si la consulta falla
$tipos_ensenanza = [];
$available_years = [];

try {
    // Obtenemos los tipos de enseñanza para poblar el primer filtro
    $stmt_tipos = $pdo->query("SELECT id, nombre FROM tipo_ensenanza ORDER BY id");
    $tipos_ensenanza = $stmt_tipos->fetchAll(PDO::FETCH_ASSOC);

    // Obtenemos los años disponibles para el filtro de año
    $stmt_years = $pdo->query("SELECT DISTINCT anio FROM matriculas ORDER BY anio DESC");
    $available_years = $stmt_years->fetchAll(PDO::FETCH_COLUMN);

    // Asegurarnos de que el año actual esté siempre en la lista para ser seleccionado por defecto.
    $current_year = date('Y');
    if (!in_array($current_year, $available_years)) {
        $available_years[] = $current_year;
    }
    // Volver a ordenar los años de forma descendente después de añadir el año actual.
    rsort($available_years, SORT_NUMERIC);
} catch (Exception $e) {
    // Si hay un error de base de datos, lo mostraremos en la página en lugar de una pantalla en blanco.
    echo '<div class="container mt-5"><div class="alert alert-danger"><strong>Error Crítico:</strong> No se pudo cargar la configuración inicial de la página. <br><pre>' . htmlspecialchars($e->getMessage()) . '</pre></div></div>';
    include __DIR__ . '/views/footer.php';
    exit; // Detenemos la ejecución para no mostrar una página rota.
}

?>
<div class="container py-4" id="libroMatriculaContainer" data-user-rol="<?php echo strtolower($_SESSION['rol'] ?? ''); ?>">
    <h2 class="mb-4" style="color:#484A67;">Libro de Matrícula</h2>

    <!-- Filtros -->
    <div class="card mb-4 shadow-sm">
        <div class="card-body">
            <h5 class="card-title">Filtrar Alumnos</h5>
            <div class="row g-3 align-items-end">
                <div class="col-md-4">
                    <label for="filtro_anio" class="form-label">Año Escolar</label>
                    <select class="form-select" id="filtro_anio">
                        <option value="">Seleccione...</option>
                        <?php foreach ($available_years as $year) : ?>
                            <option value="<?= htmlspecialchars($year) ?>">
                                <?= htmlspecialchars($year) ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="col-md-4">
                    <label for="filtro_tipo_ensenanza" class="form-label">Tipo de enseñanza</label>
                    <select class="form-select" id="filtro_tipo_ensenanza">
                        <option value="">Seleccione...</option>
                        <?php foreach ($tipos_ensenanza as $tipo) : ?>
                            <option value="<?= htmlspecialchars($tipo['id']) ?>"><?= htmlspecialchars($tipo['nombre']) ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>
                <div class="col-md-4">
                    <label for="filtro_grado" class="form-label">Grado</label>
                    <select class="form-select" id="filtro_grado" disabled>
                        <option value="">Seleccione tipo de enseñanza</option>
                    </select>
                </div>
            </div>
        </div>
    </div>

    <!-- Contenedor para la tabla de alumnos -->
    <div id="contenedorAlumnos">
        <div class="alert alert-info">Por favor, seleccione un año y un grado para ver los alumnos matriculados.</div>
    </div>
</div>

<!-- Modal para Dar de Baja Matrícula -->
<div class="modal fade" id="modalRetirarMatricula" tabindex="-1" aria-labelledby="modalRetirarLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="modalRetirarLabel">Dar de Baja Matrícula</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button>
            </div>
            <div class="modal-body">
                <p>Estás a punto de dar de baja la matrícula de <strong id="nombreAlumnoRetirar"></strong>.</p>
                <form id="formRetirarMatricula">
                    <input type="hidden" id="matriculaIdRetirar">
                    <div class="mb-3">
                        <label for="fechaRetiro" class="form-label">Fecha de Retiro</label>
                        <input type="date" class="form-control" id="fechaRetiro" required>
                    </div>
                    <div class="mb-3">
                        <label for="motivoRetiro" class="form-label">Motivo del Retiro</label>
                        <textarea class="form-control" id="motivoRetiro" rows="3" required></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
                <button type="button" class="btn btn-danger" id="btnConfirmarRetiro">Confirmar Baja</button>
            </div>
        </div>
    </div>
</div>

<!-- Modal para Vista Previa de Ficha -->
<div class="modal fade" id="modalVistaPrevia" tabindex="-1" aria-labelledby="modalVistaPreviaLabel" aria-hidden="true">
    <div class="modal-dialog modal-xl modal-dialog-scrollable">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="modalVistaPreviaLabel">Vista Previa de Ficha</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body" id="contenidoVistaPrevia">
                <!-- El contenido se cargará aquí dinámicamente -->
                <div class="text-center p-5">
                    <div class="spinner-border" role="status"><span class="visually-hidden">Cargando...</span></div>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
            </div>
        </div>
    </div>
</div>

<?php include __DIR__ . '/footer.php'; ?>