<?php
// DIAGNOSTICO INTEGRAL SYSTEM - BITACORA
// Ejecutar este archivo para ver el error real
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo "<h1>Diagnóstico de Bitácora</h1>";

// 1. Verificar Rutas
echo "<h3>1. Verificando Archivos</h3>";
$archivos = [
    "../config/Conexion.php",
    "../modelos/Bitacora.php"
];

foreach ($archivos as $arch) {
    if (file_exists(__DIR__ . "/" . $arch)) {
        echo "<div style='color:green'>✔ Existe: $arch</div>";
    } else {
        echo "<div style='color:red'>✘ FALTA: $arch (FATAL)</div>";
        exit;
    }
}

// 2. Probar Conexion
echo "<h3>2. Probando Conexión BD</h3>";
try {
    require_once "../config/Conexion.php";
    if (isset($conexion) && $conexion->ping()) {
        echo "<div style='color:green'>✔ Conexión a Base de Datos EXITOSA</div>";
    } else {
        echo "<div style='color:red'>✘ Falló la conexión (Variable invalida)</div>";
    }
} catch (Throwable $e) {
    echo "<div style='color:red'>✘ EXCEPCIÓN en Conexion.php: " . $e->getMessage() . "</div>";
    exit;
}

// 3. Probar Modelo Bitacora
echo "<h3>3. Probando Modelo Bitacora</h3>";
try {
    require_once "../modelos/Bitacora.php";
    if (class_exists('Bitacora')) {
        echo "<div style='color:green'>✔ Clase Bitacora cargada correctamente</div>";
    } else {
        echo "<div style='color:red'>✘ La clase 'Bitacora' NO existe después de incluir el archivo.</div>";
        exit;
    }

    $bitacora = new Bitacora();
    echo "<div style='color:green'>✔ Instancia de Bitacora creada</div>";

} catch (Throwable $e) {
    echo "<div style='color:red'>✘ EXCEPCIÓN al instanciar Bitacora: " . $e->getMessage() . "</div>";
    exit;
}

// 4. Probar Consulta SQL (Listar datos de prueba)
echo "<h3>4. Probando Consulta SQL (Listar)</h3>";
$idpersona_test = 1; // ID Dummy
echo "Probando listarHistorial($idpersona_test)...<br>";

try {
    $rspta = $bitacora->listarHistorial($idpersona_test);

    if ($rspta === false) {
        global $conexion;
        echo "<div style='color:red'>✘ ERROR SQL: " . $conexion->error . "</div>";
    } else {
        echo "<div style='color:green'>✔ Consulta ejecutada correctamente.</div>";
        $count = $rspta->num_rows;
        echo "Filas retornadas: $count (Esto es normal si no hay datos, lo importante es que no dio error)";
    }
} catch (Throwable $e) {
    echo "<div style='color:red'>✘ EXCEPCIÓN al ejecutar consulta: " . $e->getMessage() . "</div>";
}

echo "<hr><h3>Diagnóstico Finalizado</h3>";
?>