<?php
// modelo/validar_login.php
session_start();

if (file_exists(__DIR__ . "/Db.php")) {
    require_once __DIR__ . "/Db.php";
} else {
    die("Error crítico: No se encuentra el archivo de base de datos Db.php en " . __DIR__);
}

$bd = new clsbdd();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $usuario = isset($_POST['usu_usuario']) ? $bd->esc($_POST['usu_usuario']) : '';
    $clave   = isset($_POST['usu_clave']) ? $bd->esc($_POST['usu_clave']) : '';

    if (empty($usuario) || empty($clave)) {
        header("Location: ../login.php?error=vacio");
        exit();
    }

    // =========================================================================
    // PASO 1: Personal Administrativo / Profesores
    // =========================================================================
    $sql = "SELECT u.*, r.rol_nombre FROM bas_usuarios u 
            INNER JOIN bas_roles r ON u.rol_id = r.rol_id 
            WHERE u.usu_usuario = '$usuario' AND u.usu_clave = '$clave' AND u.usu_estado = 1 LIMIT 1";
            
    $res = $bd->ejecutar($sql);

    if ($res && $res->num_rows > 0) {
        $user_data = $res->fetch_assoc();
        session_unset();
        
        $_SESSION['usu_id']     = $user_data['usu_id']; 
        $_SESSION['usu_nombre'] = $user_data['usu_nombre'];
        $_SESSION['usu_rol']    = $user_data['rol_nombre']; 
        
        session_write_close();
        header("Location: ../index.php");
        exit();
    }

    // =========================================================================
    // PASO 2: Portal de Padres (Validación multi-hija agrupada por cédula de representante)
    // =========================================================================
    // El padre digita su cédula en usuario y su cédula en contraseña
    if ($usuario === $clave && !empty($usuario)) {
        
        // Agrupamos por cédula del representante para validar un inicio de sesión único
        $sql_padre = "SELECT bas_rep_cedula, bas_rep_nombre 
                      FROM bas_bastoneras 
                      WHERE bas_rep_cedula = '$usuario' AND bas_estado = 1 
                      GROUP BY bas_rep_cedula LIMIT 1";
                      
        $res_padre = $bd->ejecutar($sql_padre);

        if ($res_padre && $res_padre->num_rows > 0) {
            $padre_data = $res_padre->fetch_assoc();

            session_unset();

            // Seteo correcto de las variables de sesión usando $padre_data
            $_SESSION['padre_cedula']   = $padre_data['bas_rep_cedula']; 
            $_SESSION['padre_nombre']   = $padre_data['bas_rep_nombre']; 
            $_SESSION['usu_id']         = "PADRE_" . $padre_data['bas_rep_cedula']; 
            $_SESSION['usu_nombre']     = $padre_data['bas_rep_nombre']; 
            $_SESSION['usu_rol']        = 'PADRE';
            
            session_write_close();
            header("Location: ../index.php?page=padres/ficha_alumno");
            exit();
        }
    }

    // Si fallan ambos accesos
    header("Location: ../login.php?error=1");
    exit();

} else {
    header("Location: ../login.php");
    exit();
}
?>