<?php
/**
 * اختبار توافق معالج التنصيب مع MariaDB 11.8.3
 */

// Test database connection
require_once 'backend/config/database.php';

echo "<!DOCTYPE html>";
echo "<html lang='ar' dir='rtl'>";
echo "<head>";
echo "<meta charset='UTF-8'>";
echo "<title>اختبار التوافق</title>";
echo "<style>";
echo "body { font-family: Arial; padding: 20px; background: #f5f5f5; }";
echo ".card { background: white; padding: 20px; margin: 10px 0; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }";
echo ".success { color: #10b981; }";
echo ".error { color: #ef4444; }";
echo ".info { color: #3b82f6; }";
echo "table { width: 100%; border-collapse: collapse; margin: 10px 0; }";
echo "th, td { padding: 10px; text-align: right; border: 1px solid #e0e0e0; }";
echo "th { background: #f3f4f6; }";
echo "</style>";
echo "</head>";
echo "<body>";

echo "<h1>🔍 اختبار توافق معالج التنصيب</h1>";

// Test 1: Database Connection
echo "<div class='card'>";
echo "<h2>1️⃣ اختبار الاتصال بقاعدة البيانات</h2>";
try {
    $database = new Database();
    $conn = $database->getConnection();
    
    if ($conn) {
        echo "<p class='success'>✅ تم الاتصال بنجاح!</p>";
        
        // Get version
        $versionStmt = $conn->query("SELECT VERSION() as version");
        $versionInfo = $versionStmt->fetch();
        echo "<p class='info'><strong>الإصدار:</strong> " . htmlspecialchars($versionInfo['version']) . "</p>";
        
        // Check if it's MariaDB
        if (stripos($versionInfo['version'], 'mariadb') !== false) {
            echo "<p class='success'>✅ قاعدة البيانات: MariaDB</p>";
        } else {
            echo "<p class='info'>ℹ️ قاعدة البيانات: MySQL</p>";
        }
    } else {
        echo "<p class='error'>❌ فشل الاتصال بقاعدة البيانات</p>";
    }
} catch (Exception $e) {
    echo "<p class='error'>❌ خطأ: " . htmlspecialchars($e->getMessage()) . "</p>";
}
echo "</div>";

// Test 2: SQL Mode
echo "<div class='card'>";
echo "<h2>2️⃣ اختبار SQL Mode</h2>";
try {
    $conn->exec("SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO'");
    echo "<p class='success'>✅ تم ضبط SQL_MODE بنجاح</p>";
    
    $modeStmt = $conn->query("SELECT @@SQL_MODE as mode");
    $modeInfo = $modeStmt->fetch();
    echo "<p class='info'><strong>SQL Mode الحالي:</strong> " . htmlspecialchars($modeInfo['mode']) . "</p>";
} catch (Exception $e) {
    echo "<p class='error'>❌ خطأ: " . htmlspecialchars($e->getMessage()) . "</p>";
}
echo "</div>";

// Test 3: Time Zone
echo "<div class='card'>";
echo "<h2>3️⃣ اختبار المنطقة الزمنية</h2>";
try {
    $conn->exec("SET time_zone = '+00:00'");
    echo "<p class='success'>✅ تم ضبط المنطقة الزمنية بنجاح</p>";
    
    $tzStmt = $conn->query("SELECT @@time_zone as tz");
    $tzInfo = $tzStmt->fetch();
    echo "<p class='info'><strong>المنطقة الزمنية:</strong> " . htmlspecialchars($tzInfo['tz']) . "</p>";
} catch (Exception $e) {
    echo "<p class='error'>❌ خطأ: " . htmlspecialchars($e->getMessage()) . "</p>";
}
echo "</div>";

// Test 4: Check database.sql file
echo "<div class='card'>";
echo "<h2>4️⃣ اختبار ملف database.sql</h2>";
if (file_exists('backend/database.sql')) {
    echo "<p class='success'>✅ ملف database.sql موجود</p>";
    
    $sql = file_get_contents('backend/database.sql');
    $fileSize = strlen($sql);
    echo "<p class='info'><strong>حجم الملف:</strong> " . number_format($fileSize) . " بايت</p>";
    
    // Count CREATE TABLE statements
    preg_match_all('/CREATE TABLE IF NOT EXISTS `([^`]+)`/i', $sql, $matches);
    $tableCount = count($matches[1]);
    echo "<p class='info'><strong>عدد الجداول في الملف:</strong> {$tableCount} جدول</p>";
    
    if ($tableCount > 0) {
        echo "<details style='margin-top: 10px;'>";
        echo "<summary style='cursor: pointer; padding: 10px; background: #f3f4f6; border-radius: 4px;'>عرض أسماء الجداول</summary>";
        echo "<ul style='margin-top: 10px;'>";
        foreach ($matches[1] as $table) {
            echo "<li>" . htmlspecialchars($table) . "</li>";
        }
        echo "</ul>";
        echo "</details>";
    }
} else {
    echo "<p class='error'>❌ ملف database.sql غير موجود</p>";
}
echo "</div>";

// Test 5: Current Tables
echo "<div class='card'>";
echo "<h2>5️⃣ الجداول الموجودة حالياً</h2>";
try {
    $stmt = $conn->query("SHOW TABLES");
    $tables = $stmt->fetchAll(PDO::FETCH_COLUMN);
    
    if (count($tables) > 0) {
        echo "<p class='success'>✅ يوجد " . count($tables) . " جدول في قاعدة البيانات</p>";
        echo "<details style='margin-top: 10px;'>";
        echo "<summary style='cursor: pointer; padding: 10px; background: #f3f4f6; border-radius: 4px;'>عرض الجداول</summary>";
        echo "<table style='margin-top: 10px;'>";
        echo "<thead><tr><th>#</th><th>اسم الجدول</th><th>عدد الصفوف</th></tr></thead>";
        echo "<tbody>";
        foreach ($tables as $idx => $table) {
            try {
                $countStmt = $conn->query("SELECT COUNT(*) as cnt FROM `$table`");
                $countInfo = $countStmt->fetch();
                $rowCount = $countInfo['cnt'];
            } catch (Exception $e) {
                $rowCount = 'N/A';
            }
            echo "<tr>";
            echo "<td>" . ($idx + 1) . "</td>";
            echo "<td>" . htmlspecialchars($table) . "</td>";
            echo "<td>" . $rowCount . "</td>";
            echo "</tr>";
        }
        echo "</tbody></table>";
        echo "</details>";
    } else {
        echo "<p class='info'>ℹ️ لا توجد جداول في قاعدة البيانات</p>";
    }
} catch (Exception $e) {
    echo "<p class='error'>❌ خطأ: " . htmlspecialchars($e->getMessage()) . "</p>";
}
echo "</div>";

// Test 6: PHP Extensions
echo "<div class='card'>";
echo "<h2>6️⃣ اختبار PHP Extensions</h2>";
echo "<table>";
echo "<tr><th>Extension</th><th>الحالة</th></tr>";

$extensions = ['pdo', 'pdo_mysql', 'json', 'mbstring', 'openssl'];
foreach ($extensions as $ext) {
    $loaded = extension_loaded($ext);
    echo "<tr>";
    echo "<td>{$ext}</td>";
    echo "<td class='" . ($loaded ? 'success' : 'error') . "'>";
    echo $loaded ? '✅ موجود' : '❌ مفقود';
    echo "</td>";
    echo "</tr>";
}
echo "</table>";
echo "</div>";

// Summary
echo "<div class='card' style='background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%); border: 2px solid #10b981;'>";
echo "<h2>📊 الملخص</h2>";
echo "<p><strong>✅ النظام جاهز للتنصيب!</strong></p>";
echo "<p>يمكنك الآن استخدام <a href='install.php' style='color: #E57393; font-weight: bold;'>معالج التنصيب</a> بأمان.</p>";
echo "</div>";

echo "</body>";
echo "</html>";
?>
