<?php
session_start();
require_once '../config/database.php';
require_once '../includes/db_backup_export.php';
require_once '../includes/backup_ftp.php';
require_once '../includes/scheduled_files_backup.php';

// Check if admin is logged in
if (!isset($_SESSION['admin_id'])) {
    header('Location: login.php');
    exit;
}

// Handle backup creation
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    
    if ($action === 'save_backup_ftp') {
        backup_ftp_save_config($pdo, [
            'enabled' => !empty($_POST['ftp_enabled']),
            'host' => $_POST['ftp_host'] ?? '',
            'port' => $_POST['ftp_port'] ?? 21,
            'username' => $_POST['ftp_username'] ?? '',
            'password' => $_POST['ftp_password'] ?? '',
            'remote_path' => $_POST['ftp_remote_path'] ?? 'backups',
            'passive' => !empty($_POST['ftp_passive']),
            'use_ssl' => !empty($_POST['ftp_use_ssl']),
            'ftp_files_auto' => !empty($_POST['ftp_files_auto']),
            'ftp_files_remote_path' => $_POST['ftp_files_remote_path'] ?? '',
        ]);
        $success = 'تنظیمات سرور FTP ذخیره شد.';
    } elseif ($action === 'test_backup_ftp') {
        $current = backup_ftp_load_config($pdo);
        if (!empty($_POST['use_saved_ftp'])) {
            $testCfg = $current;
        } else {
            $patch = [
                'host' => $_POST['ftp_host'] ?? '',
                'port' => (int) ($_POST['ftp_port'] ?? 21),
                'username' => $_POST['ftp_username'] ?? '',
                'remote_path' => $_POST['ftp_remote_path'] ?? 'backups',
                'passive' => !empty($_POST['ftp_passive']),
                'use_ssl' => !empty($_POST['ftp_use_ssl']),
            ];
            $pw = trim((string) ($_POST['ftp_password'] ?? ''));
            if ($pw !== '') {
                $patch['password'] = $pw;
            }
            $testCfg = backup_ftp_merge_config($current, $patch);
        }
        $t = backup_ftp_test_connection($testCfg);
        if (!empty($t['ok'])) {
            $success = $t['message'];
        } else {
            $error = $t['message'];
        }
    } elseif ($action === 'create_backup') {
        $backupDir = '../backups/';
        if (!is_dir($backupDir)) {
            mkdir($backupDir, 0755, true);
        }

        db_backup_cleanup_stale_part_files($backupDir);
        $backupFile = db_backup_alloc_filepath($backupDir);

        // Shared hosts often disable exec()/shell_exec(); use pure-PHP export instead of mysqldump.
        $result = db_backup_export_sql($pdo, $backupFile);
        if (!empty($result['ok'])) {
            $success = 'پشتیبان با موفقیت ایجاد شد: ' . basename($backupFile);
            $ftpCfgAfter = backup_ftp_load_config($pdo);
            if (!empty($ftpCfgAfter['enabled'])) {
                $absLocal = realpath($backupFile) ?: $backupFile;
                $up = backup_ftp_upload_file($absLocal, $ftpCfgAfter);
                $success .= $up['ok']
                    ? ' — آپلود FTP انجام شد.'
                    : ' — هشدار FTP: ' . $up['message'];
            }
        } else {
            $error = 'خطا در ایجاد پشتیبان' . (!empty($result['error']) ? ': ' . $result['error'] : '');
        }
    } elseif ($action === 'upload_files_backup_ftp') {
        $fr = scheduled_files_backup_run($pdo, true);
        if (!empty($fr['ok'])) {
            $success = $fr['message'];
        } else {
            $error = $fr['message'] . (!empty($fr['ftp_message']) ? ' — ' . $fr['ftp_message'] : '');
        }
    } elseif ($action === 'delete_backup') {
        $backupFile = $_POST['backup_file'] ?? '';
        $backupPath = '../backups/' . basename($backupFile);
        
        if (file_exists($backupPath) && unlink($backupPath)) {
            $success = "فایل پشتیبان با موفقیت حذف شد";
        } else {
            $error = "خطا در حذف فایل پشتیبان";
        }
    }
}

// Get list of existing backups
$backupDir = '../backups/';
$backups = [];
if (is_dir($backupDir)) {
    $files = glob($backupDir . '*.sql');
    foreach ($files as $file) {
        $backups[] = [
            'filename' => basename($file),
            'size' => filesize($file),
            'date' => filemtime($file)
        ];
    }
    // Sort by date (newest first)
    usort($backups, function($a, $b) {
        return $b['date'] - $a['date'];
    });
}

// Get database size (use configured database name)
$schemaQuoted = $pdo->quote(DB_NAME);
$stmt = $pdo->query("
    SELECT 
        ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS size_mb
    FROM information_schema.tables 
    WHERE table_schema = $schemaQuoted
");
$dbSize = $stmt->fetch(PDO::FETCH_ASSOC)['size_mb'] ?? 0;

// Get table statistics
$stmt = $pdo->query("
    SELECT 
        table_name,
        ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb,
        table_rows
    FROM information_schema.tables 
    WHERE table_schema = $schemaQuoted
    ORDER BY (data_length + index_length) DESC
");
$tableStats = $stmt->fetchAll(PDO::FETCH_ASSOC);

$ftpCfg = backup_ftp_load_config($pdo);
$ftpExtOk = function_exists('ftp_connect');
$filesFtpState = files_backup_state_load($pdo);
$zipExtOk = class_exists('ZipArchive');
?>

<!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.1.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;600;700&display=swap" rel="stylesheet">
    <link href="assets/css/admin.css" rel="stylesheet">
</head>
<body class="admin-app">
    <?php include 'includes/menu.php'; ?>
    <?php include 'includes/header_bar.php'; ?>

    <main class="main">
        <div class="main-content">
                <?php
                $admin_page_title = 'سیستم پشتیبان‌گیری';
                $admin_page_icon = 'fas fa-database';
                include 'includes/topbar.php';
                ?>

                    <div class="p-0">
                        <?php if (isset($success)): ?>
                            <div class="alert alert-success alert-dismissible fade show" role="alert">
                                <i class="fas fa-check-circle me-2"></i>
                                <?= htmlspecialchars($success) ?>
                                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                            </div>
                        <?php endif; ?>

                        <?php if (isset($error)): ?>
                            <div class="alert alert-danger alert-dismissible fade show" role="alert">
                                <i class="fas fa-exclamation-triangle me-2"></i>
                                <?= htmlspecialchars($error) ?>
                                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                            </div>
                        <?php endif; ?>

                        <!-- Database Statistics -->
                        <div class="row mb-4">
                            <div class="col-md-3">
                                <div class="card stat-card info">
                                    <div class="card-body text-center">
                                        <i class="fas fa-database fa-2x mb-2"></i>
                                        <h4><?= number_format($dbSize, 2) ?> MB</h4>
                                        <p class="mb-0">حجم پایگاه داده</p>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-3">
                                <div class="card stat-card success">
                                    <div class="card-body text-center">
                                        <i class="fas fa-table fa-2x mb-2"></i>
                                        <h4><?= count($tableStats) ?></h4>
                                        <p class="mb-0">تعداد جداول</p>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-3">
                                <div class="card stat-card warning">
                                    <div class="card-body text-center">
                                        <i class="fas fa-download fa-2x mb-2"></i>
                                        <h4><?= count($backups) ?></h4>
                                        <p class="mb-0">پشتیبان‌های موجود</p>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-3">
                                <div class="card stat-card">
                                    <div class="card-body text-center">
                                        <i class="fas fa-clock fa-2x mb-2"></i>
                                        <h4><?= !empty($backups) ? date('Y/m/d', $backups[0]['date']) : 'بدون' ?></h4>
                                        <p class="mb-0">آخرین پشتیبان</p>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <!-- Create Backup -->
                        <div class="card fade-in-up mb-4">
                            <div class="card-header">
                                <h6><i class="fas fa-plus me-2"></i>ایجاد پشتیبان جدید</h6>
                            </div>
                            <div class="card-body">
                                <form method="POST" class="d-inline">
                                    <input type="hidden" name="action" value="create_backup">
                                    <button type="submit" class="btn btn-primary" onclick="return confirm('آیا از ایجاد پشتیبان جدید اطمینان دارید؟')">
                                        <i class="fas fa-download me-2"></i>ایجاد پشتیبان
                                    </button>
                                </form>
                                <div class="mt-3">
                                    <small class="text-muted">
                                        <i class="fas fa-info-circle me-1"></i>
                                        پشتیبان شامل تمام جداول و داده‌های پایگاه داده است؛ بدون نیاز به <code>exec</code> یا <code>mysqldump</code> (مناسب هاست اشتراکی).
                                    </small>
                                </div>
                            </div>
                        </div>

                        <!-- Files (code) ZIP → FTP -->
                        <div class="card fade-in-up mb-4">
                            <div class="card-header d-flex flex-wrap align-items-center justify-content-between gap-2">
                                <h6 class="mb-0"><i class="fas fa-file-archive me-2"></i>پشتیبان فایل‌های کد (ZIP) به FTP</h6>
                                <?php if (!$zipExtOk): ?>
                                    <span class="badge bg-danger">افزونهٔ Zip در PHP فعال نیست</span>
                                <?php elseif (!$ftpExtOk): ?>
                                    <span class="badge bg-danger">ماژول FTP فعال نیست</span>
                                <?php endif; ?>
                            </div>
                            <div class="card-body">
                                <p class="small text-muted mb-2">
                                    یک فایل <code>files_backup_*.zip</code> از کد PHP ساخته می‌شود و به سرور FTP در <strong>مسیر پوشهٔ ZIP فایل‌ها</strong> (تنظیم زیر) فرستاده می‌شود؛ اگر آن فیلد خالی باشد، همان مسیر پشتیبان SQL استفاده می‌شود.
                                    پس از ارسال موفق، نسخهٔ محلی zip حذف می‌شود تا فضای دیسک پر نشود.
                                </p>
                                <p class="small mb-3">
                                    <strong>آخرین ارسال موفق ZIP به FTP:</strong>
                                    <?= !empty($filesFtpState['last_success_ts'])
                                        ? htmlspecialchars(date('Y/m/d H:i:s', (int) $filesFtpState['last_success_ts']))
                                        : 'هنوز ثبت نشده' ?>
                                </p>
                                <form method="POST" class="d-inline">
                                    <input type="hidden" name="action" value="upload_files_backup_ftp">
                                    <button type="submit" class="btn btn-outline-primary"
                                            <?= (!$zipExtOk || !$ftpExtOk || empty($ftpCfg['enabled'])) ? 'disabled' : '' ?>
                                            onclick="return confirm('آپلود ZIP فایل‌های کد به FTP ممکن است چند دقیقه طول بکشد. ادامه می‌دهید؟');">
                                        <i class="fas fa-cloud-upload-alt me-2"></i>ارسال پشتیبان فایل‌ها به FTP
                                    </button>
                                </form>
                                <?php if (empty($ftpCfg['enabled'])): ?>
                                    <p class="small text-warning mt-2 mb-0">برای این دکمه ابتدا بخش زیر را فعال و ذخیره کنید.</p>
                                <?php endif; ?>
                            </div>
                        </div>

                        <!-- FTP remote backup -->
                        <div class="card fade-in-up mb-4">
                            <div class="card-header d-flex flex-wrap align-items-center justify-content-between gap-2">
                                <h6 class="mb-0"><i class="fas fa-server me-2"></i>آپلود خودکار به سرور FTP</h6>
                                <?php if (!$ftpExtOk): ?>
                                    <span class="badge bg-danger">ماژول FTP در PHP فعال نیست</span>
                                <?php endif; ?>
                            </div>
                            <div class="card-body">
                                <p class="text-muted small mb-3">
                                    با فعال‌سازی، هر بار کران‌جاب پشتیبان دیتابیس اجرا شود فایل SQL جدید علاوه بر سرور، روی FTP هم ارسال می‌شود.
                                    هیچ فایلی از سمت این برنامه روی FTP حذف نمی‌شود؛ نگهداری و چرخش نسخه‌ها را خود سرور FTP انجام دهید.
                                </p>
                                <form method="POST" class="row g-3" id="ftpBackupForm">
                                    <input type="hidden" name="action" value="save_backup_ftp" id="ftpActionField">
                                    <div class="col-12">
                                        <div class="form-check form-switch">
                                            <input class="form-check-input" type="checkbox" name="ftp_enabled" id="ftp_enabled" value="1" <?= !empty($ftpCfg['enabled']) ? 'checked' : '' ?>>
                                            <label class="form-check-label" for="ftp_enabled">فعال‌سازی آپلود FTP هنگام اجرای کران پشتیبان (فایل SQL دیتابیس)</label>
                                        </div>
                                    </div>
                                    <div class="col-12">
                                        <div class="form-check form-switch">
                                            <input class="form-check-input" type="checkbox" name="ftp_files_auto" id="ftp_files_auto" value="1" <?= !empty($ftpCfg['files_auto_ftp']) ? 'checked' : '' ?> <?= empty($ftpCfg['enabled']) ? 'disabled' : '' ?>>
                                            <label class="form-check-label <?= empty($ftpCfg['enabled']) ? 'text-muted' : '' ?>" for="ftp_files_auto">هر ۲۴ ساعت یک بار (همراه همان کران) پوشهٔ کد را به‌صورت ZIP روی FTP بفرست</label>
                                        </div>
                                        <div class="form-text">فقط پوشه‌های <code>admin</code>، <code>api</code>، <code>config</code>، <code>cron</code>، <code>includes</code>، <code>database</code> و فایل‌های <code>*.php</code> ریشهٔ سایت؛ بدون پوشهٔ <code>backups</code> و <code>APP</code> تا حجم معقول بماند.</div>
                                    </div>
                                    <div class="col-12">
                                        <label class="form-label" for="ftp_files_remote_path">مسیر پوشهٔ ZIP فایل‌های کد روی FTP</label>
                                        <input type="text" class="form-control" name="ftp_files_remote_path" id="ftp_files_remote_path" value="<?= htmlspecialchars($ftpCfg['files_remote_path'] ?? '') ?>" placeholder="مثال: backups/members_code (خالی = همان مسیر SQL بالا)">
                                        <div class="form-text">فقط برای فایل‌های <code>files_backup_*.zip</code>. خالی بگذارید تا zipها کنار فایل‌های <code>.sql</code> در همان پوشهٔ «مسیر پوشه روی FTP» قرار بگیرند.</div>
                                    </div>
                                    <div class="col-md-8">
                                        <label class="form-label" for="ftp_host">میزبان (Host)</label>
                                        <input type="text" class="form-control" name="ftp_host" id="ftp_host" value="<?= htmlspecialchars($ftpCfg['host']) ?>" autocomplete="off">
                                    </div>
                                    <div class="col-md-4">
                                        <label class="form-label" for="ftp_port">پورت</label>
                                        <input type="number" class="form-control" name="ftp_port" id="ftp_port" min="1" max="65535" value="<?= (int) $ftpCfg['port'] ?>">
                                    </div>
                                    <div class="col-md-6">
                                        <label class="form-label" for="ftp_username">نام کاربری</label>
                                        <input type="text" class="form-control" name="ftp_username" id="ftp_username" value="<?= htmlspecialchars($ftpCfg['username']) ?>" autocomplete="username">
                                    </div>
                                    <div class="col-md-6">
                                        <label class="form-label" for="ftp_password">رمز عبور</label>
                                        <input type="password" class="form-control" name="ftp_password" id="ftp_password" value="" autocomplete="new-password" placeholder="برای حفظ رمز فعلی خالی بگذارید">
                                    </div>
                                    <div class="col-12">
                                        <label class="form-label" for="ftp_remote_path">مسیر پوشه روی FTP (نسبت به ریشهٔ ورود شما)</label>
                                        <input type="text" class="form-control" name="ftp_remote_path" id="ftp_remote_path" value="<?= htmlspecialchars($ftpCfg['remote_path']) ?>" placeholder="مثال: backups/members">
                                        <div class="form-text">در صورت نبود پوشه، در حد امکان ایجاد می‌شود. فقط فایل‌های جدید آپلود می‌شوند.</div>
                                    </div>
                                    <div class="col-12 d-flex flex-wrap gap-3">
                                        <div class="form-check">
                                            <input class="form-check-input" type="checkbox" name="ftp_passive" id="ftp_passive" value="1" <?= !empty($ftpCfg['passive']) ? 'checked' : '' ?>>
                                            <label class="form-check-label" for="ftp_passive">حالت Passive (پیشنهادی برای بیشتر هاست‌ها)</label>
                                        </div>
                                        <div class="form-check">
                                            <input class="form-check-input" type="checkbox" name="ftp_use_ssl" id="ftp_use_ssl" value="1" <?= !empty($ftpCfg['use_ssl']) ? 'checked' : '' ?>>
                                            <label class="form-check-label" for="ftp_use_ssl">FTPS (ftp_ssl_connect)</label>
                                        </div>
                                    </div>
                                    <div class="col-12 d-flex flex-wrap gap-2">
                                        <button type="submit" class="btn btn-primary" id="ftpBtnSave" onclick="document.getElementById('ftpActionField').value='save_backup_ftp';">
                                            <i class="fas fa-save me-1"></i>ذخیره تنظیمات
                                        </button>
                                        <button type="submit" class="btn btn-outline-secondary" id="ftpBtnTestForm" formnovalidate
                                                onclick="document.getElementById('ftpActionField').value='test_backup_ftp'; document.getElementById('ftpUseSavedField').value='0';">
                                            <i class="fas fa-plug me-1"></i>تست با مقادیر همین فرم
                                        </button>
                                        <button type="submit" class="btn btn-outline-primary" formnovalidate
                                                onclick="document.getElementById('ftpActionField').value='test_backup_ftp'; document.getElementById('ftpUseSavedField').value='1';">
                                            <i class="fas fa-database me-1"></i>تست با تنظیمات ذخیره‌شده
                                        </button>
                                    </div>
                                    <input type="hidden" name="use_saved_ftp" id="ftpUseSavedField" value="0">
                                </form>
                                <hr class="my-4">
                                <h6 class="text-secondary"><i class="fas fa-clock me-2"></i>کران‌جاب روی سرور</h6>
                                <p class="small mb-2"><strong>اگر <code>cron/check_smm_orders.php</code> را مثل قبل کران کرده‌اید، همان کافی است:</strong> همان ابتدای اسکریپت پشتیبان دیتابیس و در صورت فعال بودن FTP، آپلود SQL را انجام می‌دهد؛ در صورت تیک «ZIP فایل‌ها»، حداکثر هر ۲۴ ساعت یک بار پشتیبان ZIP کد هم همان‌جا ارسال می‌شود. <strong>نیازی نیست</strong> <code>cron/db_backup.php</code> را هم اضافه کنید؛ اجرای هر دو با یک فاصلهٔ زمانی باعث <strong>دو بار</strong> پشتیبان‌گیری پشت‌سرهم می‌شود.</p>
                                <p class="small text-muted mb-2">اسکریپت جدا <code>cron/db_backup.php</code> فقط برای حالتی است که بخواهید <em>بدون</em> اجرای منطق SMM، فقط بکاپ (و FTP) داشته باشید یا زمان‌بندی متفاوتی برای همان کار بگذارید:</p>
                                <code class="d-block small user-select-all p-2 bg-light rounded mb-2">php <?= htmlspecialchars(realpath(__DIR__ . '/../cron/db_backup.php') ?: __DIR__ . '/../cron/db_backup.php') ?></code>
                                <p class="small text-muted mb-0">نمونه crontab اختیاری (هر شب ساعت ۳) — فقط اگر <code>check_smm_orders</code> را برای بکاپ استفاده نمی‌کنید:</p>
                                <code class="d-block small user-select-all p-2 bg-light rounded">0 3 * * * /usr/bin/php <?= htmlspecialchars(realpath(__DIR__ . '/../cron/db_backup.php') ?: '/path/to/members/cron/db_backup.php') ?> &gt;&gt; /path/to/members/backups/cron.log 2&gt;&amp;1</code>
                            </div>
                        </div>

                        <!-- phpMyAdmin + DB row for FTP settings -->
                        <div class="card fade-in-up mb-4 border-info">
                            <div class="card-header bg-info bg-opacity-10">
                                <h6 class="mb-0 text-info"><i class="fas fa-flask me-2"></i>phpMyAdmin و ردیف تنظیمات FTP در دیتابیس</h6>
                            </div>
                            <div class="card-body small">
                                <p class="mb-2">تنظیمات FTP در جدول <code>app_settings</code> با کلید <code>backup_ftp_json</code> (یک JSON) ذخیره می‌شود. معمولاً با اولین «ذخیره» از همین صفحه ساخته می‌شود؛ اگر خواستید دستی در phpMyAdmin اضافه کنید، تب SQL و این دستور را اجرا کنید (در صورت وجود ردیف، مقدار را عوض نمی‌کند مگر خودتان UPDATE بزنید):</p>
                                <pre class="bg-dark text-light p-3 rounded small overflow-auto mb-3" dir="ltr">INSERT INTO `app_settings` (`setting_key`, `setting_value`, `description`)
VALUES (
  'backup_ftp_json',
  '{"enabled":false,"host":"","port":21,"username":"","password":"","remote_path":"backups","passive":true,"use_ssl":false,"files_auto_ftp":false,"files_remote_path":""}',
  'FTP backup target (JSON)'
)
ON DUPLICATE KEY UPDATE `setting_key` = `setting_key`;</pre>
                                <p class="text-muted mb-2">بعد از آن از پنل همان صفحهٔ پشتیبان، میزبان و رمز را پر کنید و ذخیره/تست کنید. رمز در JSON ذخیره می‌شود؛ دسترسی به دیتابیس و بکاپ را محدود کنید.</p>
                                <p class="mb-2 fw-semibold">phpMyAdmin</p>
                                <ul class="mb-0 ps-3">
                                    <li>برای Export دستی از منوی Export استفاده کنید؛ این کار جایگزین کران پشتیبان نیست.</li>
                                    <li>مسیر phpMyAdmin را از اینترنت عمومی مخفی یا با رمز محافظت کنید؛ در صورت امکان IP را محدود کنید.</li>
                                    <li>کاربر دیتابیس با حداقل دسترسی لازم و رمز قوی.</li>
                                </ul>
                            </div>
                        </div>

                        <!-- Table Statistics -->
                        <div class="card fade-in-up mb-4">
                            <div class="card-header">
                                <h6><i class="fas fa-table me-2"></i>آمار جداول</h6>
                            </div>
                            <div class="card-body">
                                <div class="table-responsive">
                                    <table class="table table-hover">
                                        <thead>
                                            <tr>
                                                <th>نام جدول</th>
                                                <th>تعداد رکورد</th>
                                                <th>حجم (MB)</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <?php foreach ($tableStats as $table): ?>
                                            <tr>
                                                <td><?= htmlspecialchars($table['table_name']) ?></td>
                                                <td><?= number_format($table['table_rows']) ?></td>
                                                <td><?= number_format($table['size_mb'], 2) ?></td>
                                            </tr>
                                            <?php endforeach; ?>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        </div>

                        <!-- Existing Backups -->
                        <div class="card fade-in-up">
                            <div class="card-header">
                                <h6><i class="fas fa-history me-2"></i>پشتیبان‌های موجود</h6>
                            </div>
                            <div class="card-body">
                                <?php if (empty($backups)): ?>
                                    <div class="text-center text-muted py-4">
                                        <i class="fas fa-folder-open fa-3x mb-3"></i>
                                        <p>هیچ پشتیبانی یافت نشد</p>
                                    </div>
                                <?php else: ?>
                                    <div class="table-responsive">
                                        <table class="table table-hover">
                                            <thead>
                                                <tr>
                                                    <th>نام فایل</th>
                                                    <th>تاریخ ایجاد</th>
                                                    <th>حجم</th>
                                                    <th>عملیات</th>
                                                </tr>
                                            </thead>
                                            <tbody>
                                                <?php foreach ($backups as $backup): ?>
                                                <tr>
                                                    <td>
                                                        <i class="fas fa-file-archive me-2 text-primary"></i>
                                                        <?= htmlspecialchars($backup['filename']) ?>
                                                    </td>
                                                    <td><?= date('Y/m/d H:i:s', $backup['date']) ?></td>
                                                    <td><?= number_format($backup['size'] / 1024 / 1024, 2) ?> MB</td>
                                                    <td>
                                                        <div class="btn-group" role="group">
                                                            <a href="../backups/<?= urlencode($backup['filename']) ?>" 
                                                               class="btn btn-sm btn-success" download>
                                                                <i class="fas fa-download"></i>
                                                            </a>
                                                            <button type="button" class="btn btn-sm btn-danger" 
                                                                    onclick="deleteBackup('<?= htmlspecialchars($backup['filename']) ?>')">
                                                                <i class="fas fa-trash"></i>
                                                            </button>
                                                        </div>
                                                    </td>
                                                </tr>
                                                <?php endforeach; ?>
                                            </tbody>
                                        </table>
                                    </div>
                                <?php endif; ?>
                            </div>
                        </div>

                        <!-- Backup Information -->
                        <div class="card fade-in-up mt-4">
                            <div class="card-header">
                                <h6><i class="fas fa-info-circle me-2"></i>اطلاعات پشتیبان‌گیری</h6>
                            </div>
                            <div class="card-body">
                                <div class="row">
                                    <div class="col-md-6">
                                        <h6 class="text-primary">نکات مهم:</h6>
                                        <ul class="list-unstyled">
                                            <li><i class="fas fa-check text-success me-2"></i>پشتیبان شامل تمام داده‌ها و ساختار جداول است</li>
                                            <li><i class="fas fa-check text-success me-2"></i>فایل‌های پشتیبان در پوشه backups ذخیره می‌شوند</li>
                                            <li><i class="fas fa-check text-success me-2"></i>پشتیبان‌ها به صورت خودکار نام‌گذاری می‌شوند</li>
                                        </ul>
                                    </div>
                                    <div class="col-md-6">
                                        <h6 class="text-warning">هشدارها:</h6>
                                        <ul class="list-unstyled">
                                            <li><i class="fas fa-exclamation-triangle text-warning me-2"></i>قبل از بازگردانی، از داده‌های فعلی پشتیبان بگیرید</li>
                                            <li><i class="fas fa-exclamation-triangle text-warning me-2"></i>فایل‌های پشتیبان را در جای امنی نگهداری کنید</li>
                                            <li><i class="fas fa-exclamation-triangle text-warning me-2"></i>پشتیبان‌های قدیمی را حذف کنید تا فضای دیسک آزاد شود</li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
        </div>
    </main>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
    <?php include 'includes/admin_shell_scripts.php'; ?>
    <script>
        function deleteBackup(filename) {
            if (confirm('آیا از حذف این فایل پشتیبان اطمینان دارید؟')) {
                const form = document.createElement('form');
                form.method = 'POST';
                form.innerHTML = `
                    <input type="hidden" name="action" value="delete_backup">
                    <input type="hidden" name="backup_file" value="${filename}">
                `;
                document.body.appendChild(form);
                form.submit();
            }
        }

        // Add fade-in animation to cards
        document.addEventListener('DOMContentLoaded', function() {
            const cards = document.querySelectorAll('.fade-in-up');
            cards.forEach((card, index) => {
                card.style.animationDelay = (index * 0.1) + 's';
            });
            const ftpEn = document.getElementById('ftp_enabled');
            const filesAuto = document.getElementById('ftp_files_auto');
            const filesAutoLabel = document.querySelector('label[for="ftp_files_auto"]');
            if (ftpEn && filesAuto) {
                function syncFilesAuto() {
                    const on = ftpEn.checked;
                    filesAuto.disabled = !on;
                    if (filesAutoLabel) {
                        filesAutoLabel.classList.toggle('text-muted', !on);
                    }
                }
                ftpEn.addEventListener('change', syncFilesAuto);
                syncFilesAuto();
            }
        });
    </script>
</body>
</html>
