<?php 
/*
|--------------------------------------------------------------------------
| Inicio de sesion
|--------------------------------------------------------------------------
| Se inicia la sesion para validar si el usuario esta autenticado.
*/
session_start();

/*
|--------------------------------------------------------------------------
| Validacion de sesion
|--------------------------------------------------------------------------
| Si existe el id en sesion, se permite entrar a esta pagina.
| Si no existe, al final se redirige al login.
*/
if (isset($_SESSION['id'])) {

    /*
    |--------------------------------------------------------------------------
    | Conexion a la base de datos
    |--------------------------------------------------------------------------
    | Se carga el archivo donde debe existir la funcion conectar().
    */
    require_once('conex2.php');

    /*
    |--------------------------------------------------------------------------
    | Validacion de funcion conectar
    |--------------------------------------------------------------------------
    | Si la funcion conectar() no existe, se detiene la ejecucion.
    */
    if (!function_exists('conectar')) {
        die('Error: no existe la función conectar() en conex2.php');
    }

    /*
    |--------------------------------------------------------------------------
    | Creacion de conexion
    |--------------------------------------------------------------------------
    | Se obtiene la conexion a la base de datos.
    */
    $conexion = conectar();

    /*
    |--------------------------------------------------------------------------
    | Validacion de conexion
    |--------------------------------------------------------------------------
    | Si la conexion falla, se detiene la ejecucion.
    */
    if (!$conexion) {
        die('Error de conexión a la base de datos');
    }

    /*
    |--------------------------------------------------------------------------
    | Codificacion de caracteres
    |--------------------------------------------------------------------------
    | Se establece utf8 para manejar correctamente caracteres especiales.
    */
    if ($conexion instanceof mysqli) {
        $conexion->set_charset('utf8');
    }

    /*
    |--------------------------------------------------------------------------
    | Recepcion de clave de paciente
    |--------------------------------------------------------------------------
    | Se obtiene la clave del paciente desde la URL mediante el parametro p.
    */
    $miClavePaciente = isset($_GET['p']) ? trim($_GET['p']) : '';

    /*
    |--------------------------------------------------------------------------
    | Validacion de clave de paciente
    |--------------------------------------------------------------------------
    | Si no se recibe la clave del paciente, se detiene la ejecucion.
    */
    if ($miClavePaciente === '') {
        die('Clave de paciente no recibida');
    }

    /*
    |--------------------------------------------------------------------------
    | Consulta de paciente
    |--------------------------------------------------------------------------
    | Se busca el paciente por su clave y se arma su nombre completo.
    | Se usa consulta preparada para evitar inyeccion SQL.
    */
    $stmt = $conexion->prepare("
        SELECT 
            clave_paciente,
            CONCAT(apellido_paterno_paciente, ' ', apellido_materno_paciente, ' ', nombre_paciente) AS nombre
        FROM paciente
        WHERE clave_paciente = ?
        LIMIT 1
    ");

    /*
    |--------------------------------------------------------------------------
    | Validacion de preparacion
    |--------------------------------------------------------------------------
    | Si la consulta no se pudo preparar, se detiene la ejecucion.
    */
    if (!$stmt) {
        die('Error al preparar la consulta del paciente');
    }

    /*
    |--------------------------------------------------------------------------
    | Ejecucion de consulta
    |--------------------------------------------------------------------------
    | Se envia la clave del paciente como parametro y se ejecuta la consulta.
    */
    $stmt->bind_param('s', $miClavePaciente);
    $stmt->execute();

    /*
    |--------------------------------------------------------------------------
    | Obtencion de datos
    |--------------------------------------------------------------------------
    | Se obtiene el resultado de la consulta y se extrae la informacion del paciente.
    */
    $resultado = $stmt->get_result();
    $misDatos = $resultado ? $resultado->fetch_assoc() : null;

    /*
    |--------------------------------------------------------------------------
    | Cierre de consulta
    |--------------------------------------------------------------------------
    | Se libera la consulta preparada.
    */
    $stmt->close();

    /*
    |--------------------------------------------------------------------------
    | Validacion de paciente
    |--------------------------------------------------------------------------
    | Si no se encuentra el paciente, se detiene la ejecucion.
    */
    if (!$misDatos) {
        die('Paciente no encontrado');
    }
    ?>
    <!DOCTYPE html>
    <html lang="es">
    <head>
        <!-- Configuracion basica del documento -->
        <meta charset="UTF-8">

        <!-- Permite que la pagina se adapte a celulares y tablets -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <!-- Titulo que aparece en la pestana del navegador -->
        <title>Iniciar evaluación</title>

        <!-- Hoja de estilos de esta vista -->
        <link rel="stylesheet" href="styles/iniciarEvaluacion.css">
    </head>
    
    <body>

    <?php 
        /*
        |--------------------------------------------------------------------------
        | Encabezado de pagina
        |--------------------------------------------------------------------------
        | Se define el titulo que usara el header general del sistema.
        */
        $tituloPagina = 'Iniciar Evaluación';

        /*
        |--------------------------------------------------------------------------
        | Header reutilizable
        |--------------------------------------------------------------------------
        | Se carga el encabezado principal del sistema.
        */
        require_once('includes/header.php'); 
     ?>

        <!-- Contenido principal de la pagina -->
        <main class="page">

            <!-- Tarjeta principal para iniciar evaluacion -->
            <section class="evaluation-card">

                <!-- Encabezado interno con nombre del paciente -->
                <div class="evaluation-card__header">
                    <p class="evaluation-card__subtitle">Iniciar evaluación de:</p>

                    <h2 class="evaluation-card__name">
                        <?php echo htmlspecialchars($misDatos['nombre'], ENT_QUOTES, 'UTF-8'); ?>
                    </h2>
                </div>

                <!-- Formulario que envia los datos para comenzar la evaluacion visual -->
                <form action="evaluacionVisual.php" method="POST" class="evaluation-form">

                    <!-- Selector del mes que se va a iniciar -->
                    <div class="form-group form-group--select">
                        <label for="mesIniciar">Mes a iniciar la evaluación:</label>

                        <div class="select-shell">
                            <select name="mesIniciar" id="mesIniciar" required>
                                <?php for ($mes = 1; $mes <= 8; $mes++) { ?>
                                    <option value="<?php echo $mes; ?>"><?php echo $mes; ?></option>
                                <?php } ?>
                            </select>

                            <!-- Icono visual del select -->
                            <span class="select-shell__icon">⌄</span>
                        </div>

                        <!-- Texto de ayuda para el usuario -->
                        <p class="field-helper">Selecciona el mes en que deseas comenzar.</p>
                    </div>

                    <!-- Campo para capturar el area de procedencia -->
                    <div class="form-group">
                        <label for="areaProcedencia">Área de procedencia:</label>
                        <input type="text" name="areaProcedencia" id="areaProcedencia" autocomplete="off">
                    </div>

                    <!-- Acciones del formulario -->
                    <div class="form-actions">

                        <!-- Clave del paciente que se enviara de forma oculta -->
                        <input type="hidden" name="clavePaciente" value="<?php echo htmlspecialchars($miClavePaciente, ENT_QUOTES, 'UTF-8'); ?>">

                        <!-- Boton para iniciar la evaluacion -->
                        <input type="submit" name="btnIniciaEvaluacion" id="btnIniciaEvaluacion" value="Iniciar evaluación">
                    </div>
                </form>
            </section>
        </main>

    </body>
    </html>
    <?php
} else {
    /*
    |--------------------------------------------------------------------------
    | Redireccion si no hay sesion
    |--------------------------------------------------------------------------
    | Si el usuario no esta autenticado, se manda al login.
    */
    header('Location: login.php');
    exit;
}
?>