<?php
/**
 * Admin/auth/debug_login.php
 * ملف تشخيصي مؤقت — يُحذف بعد التحقق
 */
header('Content-Type: application/json; charset=UTF-8');
error_reporting(E_ALL);
ini_set('display_errors', '1');

$checks = [];

// 1. التحقق من ملف bootstrap
$bootstrapPath = __DIR__ . '/../../core/bootstrap.php';
$checks['bootstrap_exists'] = file_exists($bootstrapPath);

// 2. محاولة تحميل bootstrap مع التقاط الأخطاء
try {
    ob_start();
    require_once $bootstrapPath;
    $bootstrapOutput = ob_get_clean();
    $checks['bootstrap_loaded'] = true;
    $checks['bootstrap_output'] = $bootstrapOutput ?: '(clean)';
} catch (Throwable $e) {
    ob_end_clean();
    $checks['bootstrap_loaded'] = false;
    $checks['bootstrap_error'] = $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine();
}

// 3. التحقق من الدوال المطلوبة
$checks['filterRequest_exists'] = function_exists('filterRequest');
$checks['jsonError_exists'] = function_exists('jsonError');
$checks['sendWhatsAppFromServer_exists'] = function_exists('sendWhatsAppFromServer');

// 4. التحقق من قاعدة البيانات
try {
    $con = Database::get('main');
    $checks['db_connected'] = true;
    
    // التحقق من بنية الجدول
    $stmt = $con->query("DESCRIBE adminUser");
    $columns = $stmt->fetchAll(PDO::FETCH_COLUMN);
    $checks['adminUser_columns'] = $columns;
    
    // هل يوجد جدول token_verification_admin؟
    $stmt2 = $con->query("SHOW TABLES LIKE 'token_verification_admin'");
    $checks['token_verification_admin_exists'] = $stmt2->rowCount() > 0;
    
    if (!$checks['token_verification_admin_exists']) {
        $checks['CRITICAL'] = 'Table token_verification_admin does NOT exist! This is why login fails.';
    }
} catch (Throwable $e) {
    $checks['db_connected'] = false;
    $checks['db_error'] = $e->getMessage();
}

// 5. التحقق من PHP error log الأخير
$logPath = '/home/siro-api/logs/php_errors.log';
if (file_exists($logPath)) {
    $lines = file($logPath);
    $checks['last_5_errors'] = array_map('trim', array_slice($lines, -5));
} else {
    $logPath2 = __DIR__ . '/../../logs/php_errors.log';
    if (file_exists($logPath2)) {
        $lines = file($logPath2);
        $checks['last_5_errors'] = array_map('trim', array_slice($lines, -5));
    } else {
        $checks['error_log'] = 'Log file not found';
    }
}

// 6. نسخة PHP
$checks['php_version'] = PHP_VERSION;

echo json_encode($checks, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
