<?php
$pageTitle = 'إعدادات النظام';
include __DIR__ . '/../../includes/header.php';

// التحقق من الصلاحيات
checkLogin();
if (!hasPermission('system_settings')) {
    header('Location: ' . SITE_URL . '/pages/errors/access_denied.php');
    exit();
}

$db = getDB();

// جلب الإعدادات الحالية من قاعدة البيانات
$settings = [];
try {
    $settings_data = $db->select("SELECT setting_key, setting_value FROM system_settings");

    if (is_array($settings_data)) {
        foreach ($settings_data as $setting) {
            $settings[$setting['setting_key']] = $setting['setting_value'];
        }
    }
} catch (Exception $e) {
    $errors[] = 'خطأ في قاعدة البيانات أثناء جلب الإعدادات: ' . $e->getMessage();
}

// معالجة طلب POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Check if the form is for importing data
    if (isset($_POST['import_data_form'])) {
        $upload_dir = __DIR__ . '/../../uploads/imports/';
        if (!is_dir($upload_dir)) {
            mkdir($upload_dir, 0755, true);
        }

        if (isset($_FILES['import_file']) && $_FILES['import_file']['error'] === UPLOAD_ERR_OK) {
            $file_name = $_FILES['import_file']['name'];
            $file_tmp_name = $_FILES['import_file']['tmp_name'];
            $file_type = $_FILES['import_file']['type'];
            $file_ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));

            $allowed_extensions = ['csv', 'xls', 'xlsx'];
            if (!in_array($file_ext, $allowed_extensions)) {
                $errors[] = "نوع الملف غير مدعوم. يرجى رفع ملفات بصيغة CSV أو Excel.";
            } else {
                $destination = $upload_dir . basename($file_name);
                if (move_uploaded_file($file_tmp_name, $destination)) {
                    // Placeholder for actual import logic
                    $_SESSION['success_message'] = "تم رفع الملف بنجاح. سيتم البدء في عملية الاستيراد.";
                    header('Location: ' . SITE_URL . '/pages/settings/index.php?tab=data_import');
                    exit();
                } else {
                    $errors[] = "حدث خطأ أثناء رفع الملف.";
                }
            }
        } else {
            $errors[] = "يرجى اختيار ملف لتحميله.";
        }
    } else {
        // Your existing settings update logic
        $site_name = trim($_POST['site_name'] ?? '');
        $site_description = trim($_POST['site_description'] ?? '');
        $admin_email = trim($_POST['admin_email'] ?? '');
        $timezone = $_POST['timezone'] ?? 'Asia/Riyadh';
        $language = $_POST['language'] ?? 'ar';
        $items_per_page = filter_var($_POST['items_per_page'] ?? 20, FILTER_VALIDATE_INT, ['options' => ['min_range' => 1]]);
        $allow_registration = isset($_POST['allow_registration']) ? 1 : 0;
        $email_verification = isset($_POST['email_verification']) ? 1 : 0;
        $session_timeout = filter_var($_POST['session_timeout'] ?? 60, FILTER_VALIDATE_INT, ['options' => ['min_range' => 5, 'max_range' => 1440]]);
        $backup_enabled = isset($_POST['backup_enabled']) ? 1 : 0;
        $backup_frequency = $_POST['backup_frequency'] ?? 'daily';
        $two_factor_auth = isset($_POST['two_factor_auth']) ? 1 : 0;
        $max_login_attempts = filter_var($_POST['max_login_attempts'] ?? 5, FILTER_VALIDATE_INT, ['options' => ['min_range' => 1, 'max_range' => 10]]);
        $lockout_duration = filter_var($_POST['lockout_duration'] ?? 15, FILTER_VALIDATE_INT, ['options' => ['min_range' => 1, 'max_range' => 60]]);
        $maintenance_mode = isset($_POST['maintenance_mode']) ? 1 : 0;
        
        // ⚡️ إضافة إعدادات مسارات أدوات النسخ الاحتياطي/الاستعادة
        $mysqldump_path = trim($_POST['mysqldump_path'] ?? '');
        $mysql_path = trim($_POST['mysql_path'] ?? '');

        $errors = [];


        // يمكن إضافة المزيد من التحقق هنا للتأكد من صلاحية المسار

        if (empty($errors)) {
            try {
                $db->beginTransaction();

                $settings_to_update = [
                    'site_name' => $site_name,
                    'site_description' => $site_description,
                    'admin_email' => $admin_email,
                    'timezone' => $timezone,
                    'language' => $language,
                    'items_per_page' => $items_per_page,
                    'allow_registration' => $allow_registration,
                    'email_verification' => $email_verification,
                    'session_timeout' => $session_timeout,
                    'backup_enabled' => $backup_enabled,
                    'backup_frequency' => $backup_frequency,
                    'two_factor_auth' => $two_factor_auth,
                    'max_login_attempts' => $max_login_attempts,
                    'lockout_duration' => $lockout_duration,
                    'maintenance_mode' => $maintenance_mode,
                    // ⚡️ إضافة إعدادات مسارات الأدوات
                    'mysqldump_path' => $mysqldump_path,
                    'mysql_path' => $mysql_path
                ];

                foreach ($settings_to_update as $key => $value) {
                    $existing = $db->selectOne("SELECT id FROM system_settings WHERE setting_key = ?", [$key]);
                    if ($existing) {
                        $db->update("UPDATE system_settings SET setting_value = ? WHERE setting_key = ?", [$value, $key]);
                    } else {
                        $db->insert("INSERT INTO system_settings (setting_key, setting_value) VALUES (?, ?)", [$key, $value]);
                    }
                }

                $db->commit();
                $_SESSION['success_message'] = 'تم حفظ إعدادات النظام بنجاح.';
                header('Location: ' . SITE_URL . '/pages/settings/index.php');
                exit();
            } catch (Exception $e) {
                $db->rollBack();
                $errors[] = 'خطأ في قاعدة البيانات: ' . $e->getMessage();
            }
        }
    }
}
?>

<div class="container-fluid">
    <div class="row">
        <div class="col-lg-12">
            <div class="card">
                <div class="card-header">
                    <h3 class="card-title"><?php echo htmlspecialchars($pageTitle); ?></h3>
                </div>
                <div class="card-body">
                    <?php if (!empty($errors)): ?>
                        <div class="alert alert-danger alert-dismissible fade show" role="alert">
                            <h4 class="alert-heading">خطأ!</h4>
                            <ul>
                                <?php foreach ($errors as $error): ?>
                                    <li><?php echo htmlspecialchars($error); ?></li>
                                <?php endforeach; ?>
                            </ul>
                            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                        </div>
                    <?php endif; ?>

                    <?php if (isset($_SESSION['success_message'])): ?>
                        <div class="alert alert-success alert-dismissible fade show" role="alert">
                            <?php echo htmlspecialchars($_SESSION['success_message']); ?>
                            <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                        </div>
                        <?php unset($_SESSION['success_message']); ?>
                    <?php endif; ?>

                    <div class="row">
                        <div class="col-md-3">
                            <div class="list-group" id="settings-tabs" role="tablist">
                                <a href="#general" class="list-group-item list-group-item-action active" data-bs-toggle="tab">
                                    <i class="fas fa-cog me-2"></i>الإعدادات العامة
                                </a>
                                <a href="#users" class="list-group-item list-group-item-action" data-bs-toggle="tab">
                                    <i class="fas fa-users me-2"></i>إعدادات المستخدمين
                                </a>
                                <a href="#db_management" class="list-group-item list-group-item-action" data-bs-toggle="tab">
                                    <i class="fas fa-database me-2"></i>إدارة قاعدة البيانات
                                </a>
                                <a href="#security" class="list-group-item list-group-item-action" data-bs-toggle="tab">
                                    <i class="fas fa-shield-alt me-2"></i>الأمان
                                </a>
                                <a href="#maintenance" class="list-group-item list-group-item-action" data-bs-toggle="tab">
                                    <i class="fas fa-tools me-2"></i>الصيانة
                                </a>
                                <a href="#data_import" class="list-group-item list-group-item-action" data-bs-toggle="tab">
                                    <i class="fas fa-file-upload me-2"></i>استيراد البيانات
                                </a>
                            </div>
                        </div>

                        <div class="col-md-9">
                            <div class="tab-content" id="settings-tabs-content">

                                <div class="tab-pane fade show active" id="general" role="tabpanel">
                                    <form action="" method="POST">
                                        <h5 class="mb-3">الإعدادات العامة</h5>
                                        <div class="form-group mb-3">
                                            <label for="site_name" class="form-label">اسم الموقع:</label>
                                            <input type="text" class="form-control" id="site_name" name="site_name" value="<?php echo htmlspecialchars($settings['site_name'] ?? 'نظام إدارة الموارد البشرية'); ?>" required>
                                        </div>
                                        <div class="form-group mb-3">
                                            <label for="site_description" class="form-label">وصف الموقع:</label>
                                            <textarea class="form-control" id="site_description" name="site_description" rows="3"><?php echo htmlspecialchars($settings['site_description'] ?? 'نظام شامل لإدارة الموارد البشرية والمالية'); ?></textarea>
                                        </div>
                                        <div class="form-group mb-3">
                                            <label for="admin_email" class="form-label">البريد الإلكتروني للمدير:</label>
                                            <input type="email" class="form-control" id="admin_email" name="admin_email" value="<?php echo htmlspecialchars($settings['admin_email'] ?? 'admin@example.com'); ?>" required>
                                        </div>
                                        <div class="row">
                                            <div class="col-md-6">
                                                <div class="form-group mb-3">
                                                    <label for="timezone" class="form-label">المنطقة الزمنية:</label>
                                                    <select class="form-control" id="timezone" name="timezone">
                                                        <option value="Asia/Baghdad" <?php echo ($settings['timezone'] ?? '') === 'Asia/Baghdad' ? 'selected' : ''; ?>>بغداد</option>
                                                        <option value="Asia/Riyadh" <?php echo ($settings['timezone'] ?? 'Asia/Riyadh') === 'Asia/Riyadh' ? 'selected' : ''; ?>>الرياض</option>
                                                        <option value="Asia/Dubai" <?php echo ($settings['timezone'] ?? '') === 'Asia/Dubai' ? 'selected' : ''; ?>>دبي</option>
                                                        <option value="Asia/Kuwait" <?php echo ($settings['timezone'] ?? '') === 'Asia/Kuwait' ? 'selected' : ''; ?>>الكويت</option>
                                                        <option value="Africa/Cairo" <?php echo ($settings['timezone'] ?? '') === 'Africa/Cairo' ? 'selected' : ''; ?>>القاهرة</option>
                                                    </select>
                                                </div>
                                            </div>
                                            <div class="col-md-6">
                                                <div class="form-group mb-3">
                                                    <label for="language" class="form-label">اللغة:</label>
                                                    <select class="form-control" id="language" name="language">
                                                        <option value="ar" <?php echo ($settings['language'] ?? 'ar') === 'ar' ? 'selected' : ''; ?>>العربية</option>
                                                        <option value="en" <?php echo ($settings['language'] ?? '') === 'en' ? 'selected' : ''; ?>>English</option>
                                                    </select>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="form-group mb-3">
                                            <label for="items_per_page" class="form-label">عدد العناصر في الصفحة:</label>
                                            <input type="number" class="form-control" id="items_per_page" name="items_per_page" value="<?php echo htmlspecialchars($settings['items_per_page'] ?? '20'); ?>" min="1" max="100">
                                        </div>
                                        <button type="submit" class="btn btn-primary mt-3">
                                            <i class="fas fa-save me-2"></i>حفظ الإعدادات العامة
                                        </button>
                                    </form>
                                </div>

                                <div class="tab-pane fade" id="users" role="tabpanel">
                                    <form action="" method="POST">
                                        <h5 class="mb-3">إعدادات المستخدمين</h5>
                                        <div class="form-check mb-3">
                                            <input class="form-check-input" type="checkbox" id="allow_registration" name="allow_registration" value="1" <?php echo ($settings['allow_registration'] ?? 0) ? 'checked' : ''; ?>>
                                            <label class="form-check-label" for="allow_registration">السماح بالتسجيل الجديد</label>
                                        </div>
                                        <div class="form-check mb-3">
                                            <input class="form-check-input" type="checkbox" id="email_verification" name="email_verification" value="1" <?php echo ($settings['email_verification'] ?? 0) ? 'checked' : ''; ?>>
                                            <label class="form-check-label" for="email_verification">تفعيل التحقق من البريد الإلكتروني</label>
                                        </div>
                                        <div class="form-group mb-3">
                                            <label for="session_timeout" class="form-label">انتهاء صلاحية الجلسة (بالدقائق):</label>
                                            <input type="number" class="form-control" id="session_timeout" name="session_timeout" value="<?php echo htmlspecialchars($settings['session_timeout'] ?? '60'); ?>" min="5" max="1440">
                                        </div>
                                        <button type="submit" class="btn btn-primary mt-3">
                                            <i class="fas fa-save me-2"></i>حفظ إعدادات المستخدمين
                                        </button>
                                    </form>
                                </div>

                                <div class="tab-pane fade" id="db_management" role="tabpanel">
                                    <form action="" method="POST">
                                        <h5 class="mb-3">إدارة قاعدة البيانات</h5>
                                        <p>هنا يمكنك إدارة النسخ الاحتياطية لقاعدة البيانات الخاصة بك.</p>
                                        <div class="form-check mb-3">
                                            <input class="form-check-input" type="checkbox" id="backup_enabled" name="backup_enabled" value="1" <?php echo ($settings['backup_enabled'] ?? 0) ? 'checked' : ''; ?>>
                                            <label class="form-check-label" for="backup_enabled">تفعيل النسخ الاحتياطي التلقائي</label>
                                        </div>
                                        <div class="form-group mb-3">
                                            <label for="backup_frequency" class="form-label">تكرار النسخ الاحتياطي:</label>
                                            <select class="form-control" id="backup_frequency" name="backup_frequency">
                                                <option value="daily" <?php echo ($settings['backup_frequency'] ?? 'daily') === 'daily' ? 'selected' : ''; ?>>يومياً</option>
                                                <option value="weekly" <?php echo ($settings['backup_frequency'] ?? '') === 'weekly' ? 'selected' : ''; ?>>أسبوعياً</option>
                                                <option value="monthly" <?php echo ($settings['backup_frequency'] ?? '') === 'monthly' ? 'selected' : ''; ?>>شهرياً</option>
                                            </select>
                                        </div>
                                        <!-- ⚡️ إضافة حقول إدخال لمسارات الأدوات -->
                                  
                             
                                        
                                        <div class="mb-3">
                                   
    <a href="<?php echo SITE_URL; ?>/pages/settings/backup_data_only.php" class="btn btn-info me-2">
        <i class="fas fa-download me-2"></i>نسخ قاعدة البيانات فقط
    </a>

    <!-- زر لتنزيل مجلد كامل من السيرفر -->
    <a href="<?php echo SITE_URL; ?>/pages/settings/download_folder.php" class="btn btn-warning">
        <i class="fas fa-folder me-2"></i>تنزيل مجلد كامل
    </a>
                                      
                                     
                                 
                                        </div>
                                        <button type="submit" class="btn btn-primary mt-3">
                                            <i class="fas fa-save me-2"></i>حفظ إعدادات النسخ الاحتياطي
                                        </button>
                                    </form>
                                </div>

                                <div class="tab-pane fade" id="security" role="tabpanel">
                                    <form action="" method="POST">
                                        <h5 class="mb-3">إعدادات الأمان</h5>
                                        <div class="form-check mb-3">
                                            <input class="form-check-input" type="checkbox" id="two_factor_auth" name="two_factor_auth" value="1" <?php echo ($settings['two_factor_auth'] ?? 0) ? 'checked' : ''; ?>>
                                            <label class="form-check-label" for="two_factor_auth">تفعيل المصادقة الثنائية</label>
                                        </div>
                                        <div class="form-group mb-3">
                                            <label for="max_login_attempts" class="form-label">الحد الأقصى لمحاولات تسجيل الدخول:</label>
                                            <input type="number" class="form-control" id="max_login_attempts" name="max_login_attempts" value="<?php echo htmlspecialchars($settings['max_login_attempts'] ?? '5'); ?>" min="1" max="10">
                                        </div>
                                        <div class="form-group mb-3">
                                            <label for="lockout_duration" class="form-label">مدة الحظر (بالدقائق):</label>
                                            <input type="number" class="form-control" id="lockout_duration" name="lockout_duration" value="<?php echo htmlspecialchars($settings['lockout_duration'] ?? '15'); ?>" min="1" max="60">
                                        </div>
                                        <button type="submit" class="btn btn-primary mt-3">
                                            <i class="fas fa-save me-2"></i>حفظ إعدادات الأمان
                                        </button>
                                    </form>
                                </div>

                                <div class="tab-pane fade" id="maintenance" role="tabpanel">
                                    <form action="" method="POST">
                                        <h5 class="mb-3">وضع الصيانة</h5>
                                        <div class="form-check mb-3">
                                            <input class="form-check-input" type="checkbox" id="maintenance_mode" name="maintenance_mode" value="1" <?php echo ($settings['maintenance_mode'] ?? 0) ? 'checked' : ''; ?>>
                                            <label class="form-check-label" for="maintenance_mode">تفعيل وضع الصيانة</label>
                                        </div>
                                        <button type="submit" class="btn btn-primary mt-3">
                                            <i class="fas fa-save me-2"></i>حفظ إعدادات الصيانة
                                        </button>
                                    </form>
                                </div>
                                
                                <div class="tab-pane fade" id="data_import" role="tabpanel">
                                    <form action="" method="POST" enctype="multipart/form-data">
                                        <input type="hidden" name="import_data_form" value="1">
                                        <h5 class="mb-3">استيراد البيانات</h5>
                                        <p>هنا يمكنك استيراد البيانات من ملفات خارجية مثل CSV أو Excel.</p>
                                        <div class="form-group mb-3">
                                            <label for="import_file" class="form-label">اختر ملفاً:</label>
                                            <input type="file" class="form-control" id="import_file" name="import_file" accept=".csv, .xls, .xlsx" required>
                                        </div>
                                        <div class="alert alert-info" role="alert">
                                            <i class="fas fa-info-circle me-2"></i>
                                            <strong>ملاحظة:</strong> يجب أن يتبع الملف المرفوع تنسيقاً محدداً. يرجى التأكد من أن الأعمدة مطابقة لقاعدة البيانات.
                                        </div>
                                        <button type="submit" class="btn btn-success mt-3">
                                            <i class="fas fa-upload me-2"></i>استيراد
                                        </button>
                                    </form>
                                </div>
                                
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
    document.addEventListener('DOMContentLoaded', function() {
        var urlParams = new URLSearchParams(window.location.search);
        var activeTab = urlParams.get('tab');

        if (activeTab) {
            var tabToActivate = document.querySelector(`#settings-tabs a[href="#${activeTab}"]`);
            if (tabToActivate) {
                var bsTab = new bootstrap.Tab(tabToActivate);
                bsTab.show();
            }
        }
        
        var triggerTabList = [].slice.call(document.querySelectorAll('#settings-tabs a'))
        triggerTabList.forEach(function (triggerEl) {
            var tabTrigger = new bootstrap.Tab(triggerEl)
            triggerEl.addEventListener('click', function (event) {
                event.preventDefault();
                tabTrigger.show();

                // Update URL without reloading
                var newUrl = new URL(window.location.href);
                newUrl.searchParams.set('tab', this.getAttribute('href').substring(1));
                window.history.pushState({ path: newUrl.href }, '', newUrl.href);
            });
        });
    });
</script>

<?php include __DIR__ . '/../../includes/footer.php'; ?>
