<?php
/**
 * سكريبت إعداد نظام اختبار البشرة
 * يقوم بإنشاء الجداول وإدراج البيانات الافتراضية
 */

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

header('Content-Type: text/html; charset=utf-8');

echo "<!DOCTYPE html>
<html lang='ar' dir='rtl'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>إعداد نظام اختبار البشرة</title>
    <style>
        body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 40px; }
        .container { max-width: 800px; margin: 0 auto; background: white; border-radius: 20px; padding: 40px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
        h1 { color: #667eea; text-align: center; margin-bottom: 30px; }
        .step { background: #f8f9fa; padding: 20px; margin: 15px 0; border-radius: 10px; border-right: 4px solid #667eea; }
        .success { color: #28a745; font-weight: bold; }
        .error { color: #dc3545; font-weight: bold; }
        .info { color: #17a2b8; }
        pre { background: #f4f4f4; padding: 15px; border-radius: 8px; overflow-x: auto; }
        .btn { display: inline-block; background: #667eea; color: white; padding: 12px 30px; border-radius: 8px; text-decoration: none; margin-top: 20px; }
        .btn:hover { background: #764ba2; }
    </style>
</head>
<body>
<div class='container'>";

echo "<h1>🧪 إعداد نظام اختبار البشرة</h1>";

try {
    $database = new Database();
    $conn = $database->getConnection();
    
    // قراءة ملف SQL
    echo "<div class='step'>";
    echo "<h3>📄 الخطوة 1: قراءة ملف SQL</h3>";
    
    $sql_file = __DIR__ . '/create_skin_quiz_table.sql';
    
    if (!file_exists($sql_file)) {
        throw new Exception("ملف SQL غير موجود: " . $sql_file);
    }
    
    $sql = file_get_contents($sql_file);
    echo "<p class='success'>✅ تم قراءة ملف SQL بنجاح</p>";
    echo "</div>";
    
    // تنفيذ الاستعلامات
    echo "<div class='step'>";
    echo "<h3>⚙️ الخطوة 2: تنفيذ الاستعلامات</h3>";
    
    // تنفيذ الملف كاملاً
    $success_count = 0;
    $error_count = 0;
    
    try {
        // تنفيذ SQL مباشرة
        $conn->exec($sql);
        echo "<p class='success'>✅ تم تنفيذ جميع الاستعلامات بنجاح</p>";
        $success_count = 1;
    } catch (PDOException $e) {
        // إذا فشل التنفيذ المباشر، نجرب تقسيم الاستعلامات
        echo "<p class='info'>ℹ️ جاري تنفيذ الاستعلامات بشكل منفصل...</p>";
        
        // تقسيم بناءً على CREATE TABLE و INSERT INTO
        $statements = [];
        
        // استخراج CREATE TABLE statements
        preg_match_all('/CREATE TABLE[^;]+;/is', $sql, $create_matches);
        if (!empty($create_matches[0])) {
            $statements = array_merge($statements, $create_matches[0]);
        }
        
        // استخراج INSERT INTO statements
        preg_match_all('/INSERT INTO[^;]+;/is', $sql, $insert_matches);
        if (!empty($insert_matches[0])) {
            $statements = array_merge($statements, $insert_matches[0]);
        }
        
        foreach ($statements as $statement) {
            $statement = trim($statement);
            if (empty($statement)) continue;
            
            try {
                $conn->exec($statement);
                $success_count++;
                
                // عرض نوع الاستعلام
                if (stripos($statement, 'CREATE TABLE') !== false) {
                    preg_match('/CREATE TABLE.*?`(\w+)`/i', $statement, $matches);
                    $table_name = $matches[1] ?? 'unknown';
                    echo "<p class='success'>✅ تم إنشاء جدول: <strong>{$table_name}</strong></p>";
                } elseif (stripos($statement, 'INSERT INTO') !== false) {
                    preg_match('/INSERT INTO.*?`(\w+)`/i', $statement, $matches);
                    $table_name = $matches[1] ?? 'unknown';
                    echo "<p class='success'>✅ تم إدراج بيانات في جدول: <strong>{$table_name}</strong></p>";
                }
                
            } catch (PDOException $e) {
                $error_count++;
                // تجاهل خطأ "الجدول موجود بالفعل"
                if (strpos($e->getMessage(), 'already exists') === false) {
                    echo "<p class='error'>❌ خطأ: " . $e->getMessage() . "</p>";
                } else {
                    echo "<p class='info'>ℹ️ الجدول موجود بالفعل</p>";
                    $success_count++;
                    $error_count--;
                }
            }
        }
    }
    
    echo "<p><strong>النتيجة:</strong> {$success_count} عملية ناجحة، {$error_count} خطأ</p>";
    echo "</div>";
    
    // التحقق من الجداول
    echo "<div class='step'>";
    echo "<h3>🔍 الخطوة 3: التحقق من الجداول</h3>";
    
    $tables = ['skin_quiz_results', 'skin_quiz_questions'];
    
    foreach ($tables as $table) {
        $stmt = $conn->query("SHOW TABLES LIKE '{$table}'");
        if ($stmt->rowCount() > 0) {
            // عد الصفوف
            $count_stmt = $conn->query("SELECT COUNT(*) as count FROM {$table}");
            $count = $count_stmt->fetch(PDO::FETCH_ASSOC)['count'];
            
            echo "<p class='success'>✅ جدول <strong>{$table}</strong> موجود ({$count} صف)</p>";
            
            // عرض بنية الجدول
            if ($table === 'skin_quiz_questions' && $count > 0) {
                echo "<p class='info'>📊 عدد الأسئلة المضافة: <strong>{$count}</strong></p>";
                
                // عرض توزيع الأسئلة حسب الفئة
                $cat_stmt = $conn->query("
                    SELECT category, COUNT(*) as count 
                    FROM skin_quiz_questions 
                    WHERE is_active = 1
                    GROUP BY category
                ");
                $categories = $cat_stmt->fetchAll(PDO::FETCH_ASSOC);
                
                echo "<ul>";
                foreach ($categories as $cat) {
                    $cat_names = [
                        'skin_type' => 'نوع البشرة',
                        'concerns' => 'المشاكل',
                        'routine' => 'الروتين',
                        'lifestyle' => 'نمط الحياة',
                        'goals' => 'الأهداف'
                    ];
                    $cat_name = $cat_names[$cat['category']] ?? $cat['category'];
                    echo "<li>{$cat_name}: {$cat['count']} سؤال</li>";
                }
                echo "</ul>";
            }
        } else {
            echo "<p class='error'>❌ جدول <strong>{$table}</strong> غير موجود</p>";
        }
    }
    
    echo "</div>";
    
    // معلومات إضافية
    echo "<div class='step'>";
    echo "<h3>📋 معلومات إضافية</h3>";
    echo "<p><strong>الجداول المنشأة:</strong></p>";
    echo "<ul>";
    echo "<li><code>skin_quiz_results</code> - لحفظ نتائج الاختبارات</li>";
    echo "<li><code>skin_quiz_questions</code> - لإدارة أسئلة الاختبار</li>";
    echo "</ul>";
    
    echo "<p><strong>الخطوات التالية:</strong></p>";
    echo "<ol>";
    echo "<li>إنشاء صفحة الاختبار للعملاء</li>";
    echo "<li>إنشاء API لمعالجة النتائج</li>";
    echo "<li>إنشاء لوحة تحكم الأدمن</li>";
    echo "</ol>";
    echo "</div>";
    
    echo "<div style='text-align: center; margin-top: 30px;'>";
    echo "<p class='success' style='font-size: 24px;'>🎉 تم إعداد النظام بنجاح!</p>";
    echo "<a href='../admin/skin-quiz/index.php' class='btn'>الذهاب إلى لوحة التحكم</a>";
    echo "<a href='../public/skin-quiz.php' class='btn' style='background: #28a745; margin-right: 10px;'>تجربة الاختبار</a>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div class='step'>";
    echo "<h3 class='error'>❌ حدث خطأ</h3>";
    echo "<p class='error'>" . $e->getMessage() . "</p>";
    echo "<pre>" . $e->getTraceAsString() . "</pre>";
    echo "</div>";
}

echo "</div>
</body>
</html>";
?>
