<?php
$pageTitle = 'إضافة صلاحية جديدة';
include __DIR__ . '/../../includes/header.php';

// التحقق من الصلاحيات
checkLogin();
// تأكد أن المستخدم لديه صلاحية لإضافة صلاحيات (مثل 'manage_roles' أو 'add_permissions')
if (!hasPermission('manage_roles')) { // يمكنك تغيير 'manage_roles' إلى صلاحية مخصصة لإضافة الصلاحيات إذا كانت لديك واحدة
    header('Location: ' . SITE_URL . '/pages/errors/access_denied.php');
    exit();
}

$db = getDB(); // افتراض أن دالة getDB() متاحة لجلب اتصال قاعدة البيانات
$errors = [];
$success_message = '';

// قيم النموذج الافتراضية أو المرسلة
$permission_name = '';
$description = '';
$module = '';

// قائمة بالموديلات المقترحة (يمكنك تعديلها حسب احتياجات نظامك)
$suggested_modules = [
    'users',
    'roles',
    'documents',
    'settings',
    'reports',
    'notifications',
    'attendance',
    'payroll',
    'employees',
    'general' // موديل عام للصلاحيات غير المصنفة
];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // تنظيف وتجهيز البيانات المدخلة
    $permission_name = trim($_POST['permission_name'] ?? '');
    $description = trim($_POST['description'] ?? '');
    $module = trim($_POST['module'] ?? '');

    // التحقق من صحة البيانات
    if (empty($permission_name)) {
        $errors[] = 'اسم الصلاحية مطلوب.';
    }
    if (empty($module)) {
        $errors[] = 'الموديل مطلوب.';
    }

    // التحقق مما إذا كانت الصلاحية موجودة بالفعل
    if (empty($errors)) {
        $existing_permission = $db->selectOne("SELECT id FROM permissions WHERE permission_name = ?", [$permission_name]);
        if ($existing_permission) {
            $errors[] = 'اسم الصلاحية هذا موجود بالفعل. يرجى اختيار اسم آخر.';
        }
    }

    if (empty($errors)) {
        try {
            // إدراج الصلاحية الجديدة في قاعدة البيانات
            $db->insert(
                "INSERT INTO permissions (permission_name, description, module, created_at) VALUES (?, ?, ?, NOW())",
                [$permission_name, $description, $module]
            );

            // رسالة نجاح وإعادة تعيين الحقول
            $_SESSION['success_message'] = 'تمت إضافة الصلاحية بنجاح.';
            // إعادة توجيه لمنع إرسال النموذج مرة أخرى عند تحديث الصفحة
            header('Location: ' . SITE_URL . '/pages/roles/permissions.php');
            exit();

        } catch (Exception $e) {
            $errors[] = 'خطأ في قاعدة البيانات عند إضافة الصلاحية: ' . $e->getMessage();
            error_log("Error adding permission: " . $e->getMessage()); // لتسجيل الأخطاء
        }
    }
}

// إذا كان هناك أخطاء بعد الإرسال، احتفظ بالقيم المرسلة لعرضها في النموذج
$permission_name = $_POST['permission_name'] ?? $permission_name;
$description = $_POST['description'] ?? $description;
$module = $_POST['module'] ?? $module;

?>

<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 $pageTitle; ?></h3>
                </div>
                <div class="card-body">
                    <?php if (isset($_SESSION['success_message'])): ?>
                        <div class="alert alert-success">
                            <?php echo htmlspecialchars($_SESSION['success_message']);
                            unset($_SESSION['success_message']); ?>
                        </div>
                    <?php endif; ?>

                    <?php if (!empty($errors)): ?>
                        <div class="alert alert-danger">
                            <ul>
                                <?php foreach ($errors as $error): ?>
                                    <li><?php echo htmlspecialchars($error); ?></li>
                                <?php endforeach; ?>
                            </ul>
                        </div>
                    <?php endif; ?>

                    <form action="" method="POST">
                        <div class="form-group mb-3">
                            <label for="permission_name" class="form-label">اسم الصلاحية (مثال: create_user):</label>
                            <input type="text" class="form-control" id="permission_name" name="permission_name" value="<?php echo htmlspecialchars($permission_name); ?>" required>
                        </div>
                        <div class="form-group mb-3">
                            <label for="description" class="form-label">الوصف (ما تفعله الصلاحية بوضوح):</label>
                            <textarea class="form-control" id="description" name="description" rows="3"><?php echo htmlspecialchars($description); ?></textarea>
                        </div>
                        <div class="form-group mb-3">
                            <label for="module" class="form-label">الموديل (القسم الذي تنتمي إليه الصلاحية):</label>
                            <select class="form-control" id="module" name="module" required>
                                <option value="">اختر موديل</option>
                                <?php foreach ($suggested_modules as $mod): ?>
                                    <option value="<?php echo htmlspecialchars($mod); ?>" <?php echo ($module === $mod) ? 'selected' : ''; ?>>
                                        <?php echo htmlspecialchars(ucwords(str_replace('_', ' ', $mod))); ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                            <small class="form-text text-muted">مثال: users, roles, documents</small>
                        </div>

                        <button type="submit" class="btn btn-primary">إضافة الصلاحية</button>
                        <a href="<?php echo SITE_URL; ?>/pages/roles/index.php" class="btn btn-secondary">العودة إلى الأدوار</a>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

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