<?php
// إعدادات التثبيت
$requirements = [
    'php_version' => '7.0.0',
    'extensions' => ['mysqli', 'pdo_mysql'],
    'writable_folders' => ['uploads', 'config.php']
];

// التحقق من خطوات التثبيت
$step = isset($_GET['step']) ? (int)$_GET['step'] : 1;

// معالجة إرسال النموذج
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if ($step === 2) {
        // معالجة بيانات قاعدة البيانات
        $dbHost = $_POST['db_host'];
        $dbUser = $_POST['db_user'];
        $dbPass = $_POST['db_pass'];
        $dbName = $_POST['db_name'];
        
        // التحقق من صحة الإدخال
        if (empty($dbName) || !preg_match('/^[a-z0-9_]+$/i', $dbName)) {
            $error = "اسم قاعدة البيانات يجب أن يحتوي فقط على أحرف إنجليزية وأرقام وشرطة سفلية";
        } else {
            // محاولة الاتصال بخادم قاعدة البيانات
            try {
                $db = new mysqli($dbHost, $dbUser, $dbPass);
                
                if ($db->connect_error) {
                    throw new Exception("فشل الاتصال بالخادم: " . $db->connect_error);
                }
                
                // إنشاء قاعدة البيانات إذا لم تكن موجودة
                $createDbQuery = "CREATE DATABASE IF NOT EXISTS `$dbName` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci";
                if (!$db->query($createDbQuery)) {
                    throw new Exception("فشل إنشاء قاعدة البيانات: " . $db->error);
                }
                
                // اختيار قاعدة البيانات الجديدة
                $db->select_db($dbName);
                
                // استيراد بيانات SQL
                $sql = file_get_contents('database.sql');
                if ($db->multi_query($sql)) {
                    // الانتظار حتى تنتهي جميع الاستعلامات
                    while ($db->more_results()) {
                        $db->next_result();
                    }
                } else {
                    throw new Exception("فشل استيراد البيانات: " . $db->error);
                }
                
                // إنشاء ملف الإعدادات
                $configContent = "<?php\n";
                $configContent .= "define('DB_HOST', '$dbHost');\n";
                $configContent .= "define('DB_USER', '$dbUser');\n";
                $configContent .= "define('DB_PASS', '$dbPass');\n";
                $configContent .= "define('DB_NAME', '$dbName');\n";
                
                if (!file_put_contents('config.php', $configContent)) {
                    throw new Exception("فشل إنشاء ملف الإعدادات. تأكد من صلاحيات الكتابة.");
                }
                
                // إنشاء ملف قفل لمنع إعادة التثبيت
                file_put_contents('installed.lock', 'تم التثبيت في ' . date('Y-m-d H:i:s'));
                
                // الانتقال إلى الخطوة النهائية
                header('Location: install.php?step=3');
                exit;
            } catch (Exception $e) {
                $error = $e->getMessage();
                
                // حذف قاعدة البيانات إذا فشل التثبيت
                if (isset($db) && !empty($dbName)) {
                    $db->query("DROP DATABASE IF EXISTS `$dbName`");
                }
            }
        }
    }
}
?>

<!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: Arial, sans-serif; line-height: 1.6; max-width: 800px; margin: 0 auto; padding: 20px; background-color: #f5f5f5; }
        .install-container { background: white; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        .step { display: none; }
        .step.active { display: block; }
        .error { color: #d9534f; background: #fdf7f7; padding: 10px; border-radius: 4px; border: 1px solid #ebccd1; }
        .success { color: #3c763d; }
        .form-group { margin-bottom: 15px; }
        label { display: block; margin-bottom: 5px; font-weight: bold; }
        input { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; }
        button { background: #337ab7; color: white; border: none; padding: 10px 15px; border-radius: 4px; cursor: pointer; }
        button:hover { background: #286090; }
        .requirements-list { list-style: none; padding: 0; }
        .requirements-list li { padding: 8px 0; border-bottom: 1px solid #eee; }
        .requirement-met:before { content: "✓ "; color: green; }
        .requirement-not-met:before { content: "✗ "; color: red; }
    </style>
</head>
<body>
    <div class="install-container">
        <h1>تثبيت برنامج المبيعات</h1>
        
        <?php if (file_exists('installed.lock')): ?>
        <div class="error">
            <h2>تم تثبيت البرنامج مسبقاً</h2>
            <p>لإعادة التثبيت، يرجى حذف ملف installed.lock أولاً.</p>
            <p>إذا كنت بحاجة إلى مساعدة، الرجاء التواصل مع الدعم الفني.</p>
        </div>
        <?php else: ?>
        
        <?php if ($step === 1): ?>
        <div class="step active">
            <h2>الخطوة 1: التحقق من متطلبات النظام</h2>
            
            <p>قبل البدء في التثبيت، يرجى التأكد من أن الخادم يستوفي المتطلبات التالية:</p>
            
            <ul class="requirements-list">
                <li class="<?php echo version_compare(PHP_VERSION, $requirements['php_version'], '>=') ? 'requirement-met' : 'requirement-not-met'; ?>">
                    إصدار PHP <?php echo $requirements['php_version']; ?> أو أحدث (الإصدار الحالي: <?php echo PHP_VERSION; ?>)
                </li>
                
                <?php foreach ($requirements['extensions'] as $ext): ?>
                <li class="<?php echo extension_loaded($ext) ? 'requirement-met' : 'requirement-not-met'; ?>">
                    امتداد PHP: <?php echo $ext; ?>
                </li>
                <?php endforeach; ?>
                
                <?php foreach ($requirements['writable_folders'] as $folder): ?>
                <li class="<?php echo is_writable($folder) || (!file_exists($folder) && is_writable(dirname($folder))) ? 'requirement-met' : 'requirement-not-met'; ?>">
                    صلاحية كتابة للملف/المجلد: <?php echo $folder; ?>
                </li>
                <?php endforeach; ?>
            </ul>
            
            <?php
            $allRequirementsMet = version_compare(PHP_VERSION, $requirements['php_version'], '>=');
            foreach ($requirements['extensions'] as $ext) {
                $allRequirementsMet = $allRequirementsMet && extension_loaded($ext);
            }
            foreach ($requirements['writable_folders'] as $folder) {
                $allRequirementsMet = $allRequirementsMet && (is_writable($folder) || (!file_exists($folder) && is_writable(dirname($folder))));
            }
            
            if ($allRequirementsMet): ?>
                <div style="text-align: left; margin-top: 20px;">
                    <a href="install.php?step=2" class="button">التالي &raquo;</a>
                </div>
            <?php else: ?>
                <div class="error" style="margin-top: 20px;">
                    لا يمكن المتابعة حتى يتم تلبية جميع متطلبات النظام.
                    <br>يرجى التواصل مع مدير الخادم أو مزود الاستضافة لتثبيت المتطلبات الناقصة.
                </div>
            <?php endif; ?>
        </div>
        <?php endif; ?>
        
        <?php if ($step === 2): ?>
        <div class="step active">
            <h2>الخطوة 2: إعداد قاعدة البيانات</h2>
            
            <?php if (isset($error)): ?>
                <div class="error"><?php echo $error; ?></div>
            <?php endif; ?>
            
            <form method="post">
                <div class="form-group">
                    <label for="db_host">خادم قاعدة البيانات:</label>
                    <input type="text" id="db_host" name="db_host" value="localhost" required>
                    <small>عادةً يكون localhost أو 127.0.0.1</small>
                </div>
                
                <div class="form-group">
                    <label for="db_user">اسم مستخدم قاعدة البيانات:</label>
                    <input type="text" id="db_user" name="db_user" required>
                    <small>عادةً يكون root على الخوادم المحلية</small>
                </div>
                
                <div class="form-group">
                    <label for="db_pass">كلمة مرور قاعدة البيانات:</label>
                    <input type="password" id="db_pass" name="db_pass">
                    <small>اتركه فارغاً إذا لم يكن هناك كلمة مرور</small>
                </div>
                
                <div class="form-group">
                    <label for="db_name">اسم قاعدة البيانات الجديدة:</label>
                    <input type="text" id="db_name" name="db_name" required>
                    <small>سيتم إنشاء هذه القاعدة تلقائياً إذا لم تكن موجودة</small>
                </div>
                
                <div style="text-align: left; margin-top: 20px;">
                    <button type="submit">تثبيت قاعدة البيانات</button>
                </div>
            </form>
        </div>
        <?php endif; ?>
        
        <?php if ($step === 3): ?>
        <div class="step active">
            <h2 style="color: green;">تم التثبيت بنجاح!</h2>
            
            <div style="background: #dff0d8; padding: 15px; border-radius: 4px; border: 1px solid #d6e9c6; margin-bottom: 20px;">
                <p>تم تثبيت برنامج المبيعات وقاعدة البيانات بنجاح.</p>
                <p>يمكنك الآن <a href="index.php">الذهاب إلى الصفحة الرئيسية</a>.</p>
            </div>
            
            <h3>إرشادات أمان مهمة:</h3>
            <ul>
                <li>تم إنشاء ملف <strong>installed.lock</strong> لمنع إعادة التثبيت</li>
                <li>لإعادة التثبيت لاحقاً، يجب حذف ملف installed.lock أولاً</li>
                <li>غير كلمة مرور مستخدم قاعدة البيانات إذا كانت كلمة مرور ضعيفة</li>
                <li>احتفظ بنسخة احتياطية من ملف config.php في مكان آمن</li>
            </ul>
            
            <div class="error" style="margin-top: 20px;">
                <strong>تحذير أمني:</strong> يجب حذف ملف install.php من الخادم بعد اكتمال التثبيت!
            </div>
        </div>
        <?php endif; ?>
        
        <?php endif; ?>
    </div>
</body>
</html>