<?php
/**
 * Script de diagnóstico para probar el login
 */

require_once __DIR__ . '/shared/config/database.php';

echo "=== DIAGNÓSTICO DEL SISTEMA DE LOGIN ===\n\n";

try {
    $pdo = getDB();

    // 1. Verificar usuarios en la base de datos
    echo "1. USUARIOS EN LA BASE DE DATOS:\n";
    $stmt = $pdo->query('SELECT id, username, password FROM usuarios');
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "   - ID: {$row['id']}, Username: {$row['username']}\n";
        echo "     Password hash: " . substr($row['password'], 0, 20) . "...\n";
    }

    echo "\n2. PROBANDO CONTRASEÑAS:\n";

    // 2. Probar admin
    echo "\n   Probando usuario 'admin' con contraseña 'admin':\n";
    $stmt = $pdo->prepare("SELECT id, username, password FROM usuarios WHERE username = ?");
    $stmt->execute(['admin']);
    $user_admin = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($user_admin) {
        echo "   - Usuario encontrado en BD: ✓\n";
        echo "   - Hash almacenado: " . substr($user_admin['password'], 0, 30) . "...\n";

        $test_password = 'admin';
        $verify_result = password_verify($test_password, $user_admin['password']);
        echo "   - password_verify('admin', hash): " . ($verify_result ? "✓ CORRECTO" : "✗ INCORRECTO") . "\n";

        // Generar nuevo hash para comparar
        $new_hash = password_hash('admin', PASSWORD_DEFAULT);
        echo "   - Nuevo hash generado: " . substr($new_hash, 0, 30) . "...\n";
        echo "   - Verificar nuevo hash: " . (password_verify('admin', $new_hash) ? "✓" : "✗") . "\n";
    } else {
        echo "   - Usuario NO encontrado en BD: ✗\n";
    }

    // 3. Probar topico
    echo "\n   Probando usuario 'topico' con contraseña 'topico':\n";
    $stmt = $pdo->prepare("SELECT id, username, password FROM usuarios WHERE username = ?");
    $stmt->execute(['topico']);
    $user_topico = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($user_topico) {
        echo "   - Usuario encontrado en BD: ✓\n";
        echo "   - Hash almacenado: " . substr($user_topico['password'], 0, 30) . "...\n";

        $test_password = 'topico';
        $verify_result = password_verify($test_password, $user_topico['password']);
        echo "   - password_verify('topico', hash): " . ($verify_result ? "✓ CORRECTO" : "✗ INCORRECTO") . "\n";
    } else {
        echo "   - Usuario NO encontrado en BD: ✗\n";
    }

    echo "\n3. PROBANDO CLASE AUTH:\n";
    require_once __DIR__ . '/shared/includes/auth.php';

    $auth = new Auth();

    echo "   Intentando login con admin/admin:\n";
    $result = $auth->login('admin', 'admin');
    echo "   - Success: " . ($result['success'] ? "✓" : "✗") . "\n";
    echo "   - Message: " . $result['message'] . "\n";

    if (!$result['success']) {
        echo "\n   Intentando login con topico/topico:\n";
        $result2 = $auth->login('topico', 'topico');
        echo "   - Success: " . ($result2['success'] ? "✓" : "✗") . "\n";
        echo "   - Message: " . $result2['message'] . "\n";
    }

    echo "\n=== FIN DEL DIAGNÓSTICO ===\n";

} catch (Exception $e) {
    echo "ERROR: " . $e->getMessage() . "\n";
    echo "Trace: " . $e->getTraceAsString() . "\n";
}
?>
