<?php
/**
 * اسکریپت نصب دیتابیس از طریق PHP
 * این فایل را اجرا کنید تا دیتابیس به صورت خودکار ایجاد شود
 */

// تنظیمات دیتابیس
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = '3xui_reseller';

echo "<!DOCTYPE html>
<html lang='fa' dir='rtl'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>نصب دیتابیس</title>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
    <style>
        body { padding: 20px; background: #f5f7fa; }
        .card { max-width: 800px; margin: 0 auto; }
        pre { background: #f8f9fa; padding: 15px; border-radius: 5px; max-height: 400px; overflow-y: auto; }
    </style>
</head>
<body>
    <div class='container'>
        <div class='card'>
            <div class='card-header bg-primary text-white'>
                <h4>نصب دیتابیس سیستم مدیریت نمایندگان 3x-ui</h4>
            </div>
            <div class='card-body'>";

try {
    // اتصال به MySQL (بدون انتخاب دیتابیس)
    $pdo = new PDO("mysql:host=$db_host;charset=utf8mb4", $db_user, $db_pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<div class='alert alert-info'>✓ اتصال به MySQL موفق بود</div>";
    
    // خواندن فایل SQL
    $sql_file = __DIR__ . '/database.sql';
    if (!file_exists($sql_file)) {
        throw new Exception("فایل database.sql یافت نشد!");
    }
    
    $sql = file_get_contents($sql_file);
    
    // تقسیم دستورات SQL
    $statements = array_filter(
        array_map('trim', explode(';', $sql)),
        function($stmt) {
            return !empty($stmt) && !preg_match('/^--/', $stmt);
        }
    );
    
    echo "<div class='alert alert-info'>در حال اجرای " . count($statements) . " دستور SQL...</div>";
    
    $success_count = 0;
    $error_count = 0;
    $errors = [];
    
    foreach ($statements as $statement) {
        if (empty(trim($statement))) {
            continue;
        }
        
        try {
            $pdo->exec($statement);
            $success_count++;
        } catch (PDOException $e) {
            $error_count++;
            $errors[] = [
                'statement' => substr($statement, 0, 100) . '...',
                'error' => $e->getMessage()
            ];
        }
    }
    
    echo "<div class='alert alert-success'>";
    echo "<strong>✓ نصب با موفقیت انجام شد!</strong><br>";
    echo "دستورات موفق: $success_count<br>";
    if ($error_count > 0) {
        echo "خطاها: $error_count<br>";
    }
    echo "</div>";
    
    if ($error_count > 0) {
        echo "<div class='alert alert-warning'>";
        echo "<strong>خطاها:</strong><br>";
        echo "<pre>";
        foreach ($errors as $error) {
            echo "خطا: " . htmlspecialchars($error['error']) . "\n";
            echo "دستور: " . htmlspecialchars($error['statement']) . "\n\n";
        }
        echo "</pre>";
        echo "</div>";
    }
    
    // بررسی جداول ایجاد شده
    $pdo->exec("USE `$db_name`");
    $tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
    
    echo "<div class='alert alert-info'>";
    echo "<strong>جداول ایجاد شده:</strong><br>";
    echo "<ul>";
    foreach ($tables as $table) {
        echo "<li>$table</li>";
    }
    echo "</ul>";
    echo "</div>";
    
    // بررسی وجود ادمین
    $admin_count = $pdo->query("SELECT COUNT(*) FROM admins")->fetchColumn();
    echo "<div class='alert alert-success'>";
    echo "<strong>✓ تعداد ادمین‌ها در دیتابیس: $admin_count</strong><br>";
    if ($admin_count > 0) {
        echo "اطلاعات ورود پیش‌فرض:<br>";
        echo "نام کاربری: <strong>admin</strong><br>";
        echo "رمز عبور: <strong>admin123</strong><br>";
        echo "<small class='text-danger'>⚠️ پس از اولین ورود، رمز عبور را تغییر دهید!</small>";
    }
    echo "</div>";
    
    echo "<div class='alert alert-success mt-3'>";
    echo "<strong>✓ دیتابیس با موفقیت نصب شد!</strong><br>";
    echo "اکنون می‌توانید <a href='setup.php' class='alert-link'>اسکریپت setup.php</a> را اجرا کنید یا مستقیماً وارد سیستم شوید.";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div class='alert alert-danger'>";
    echo "<strong>✗ خطا در نصب:</strong><br>";
    echo htmlspecialchars($e->getMessage());
    echo "</div>";
    
    echo "<div class='alert alert-info mt-3'>";
    echo "<strong>راهنمای نصب دستی:</strong><br>";
    echo "1. وارد phpMyAdmin شوید<br>";
    echo "2. فایل <code>database.sql</code> را import کنید<br>";
    echo "3. یا از طریق خط فرمان:<br>";
    echo "<pre>mysql -u root -p < database.sql</pre>";
    echo "</div>";
}

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