<?php
require_once '../config.php';

// التحقق من تسجيل الدخول
requireLogin();

// التحقق من الصلاحيات
requirePermission('admin');

// معالجة النموذج
$errors = [];
$success = false;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // التحقق من البيانات
    $username = trim($_POST['username'] ?? '');
    $password = trim($_POST['password'] ?? '');
    $confirm_password = trim($_POST['confirm_password'] ?? '');
    $full_name = trim($_POST['full_name'] ?? '');
    $email = trim($_POST['email'] ?? '');
    $role = trim($_POST['role'] ?? '');
    
    // التحقق من اسم المستخدم
    if (empty($username)) {
        $errors[] = 'يرجى إدخال اسم المستخدم';
    } else {
        // التحقق من عدم وجود اسم مستخدم مكرر
        $stmt = getDbConnection()->prepare("SELECT id FROM users WHERE username = ?");
        $stmt->execute([$username]);
        if ($stmt->fetch()) {
            $errors[] = 'اسم المستخدم موجود بالفعل، يرجى اختيار اسم آخر';
        }
    }
    
    // التحقق من كلمة المرور
    if (empty($password)) {
        $errors[] = 'يرجى إدخال كلمة المرور';
    } elseif (strlen($password) < 6) {
        $errors[] = 'يجب أن تكون كلمة المرور 6 أحرف على الأقل';
    } elseif ($password !== $confirm_password) {
        $errors[] = 'كلمات المرور غير متطابقة';
    }
    
    // التحقق من الاسم الكامل
    if (empty($full_name)) {
        $errors[] = 'يرجى إدخال الاسم الكامل';
    }
    
    // التحقق من البريد الإلكتروني
    if (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $errors[] = 'يرجى إدخال بريد إلكتروني صحيح';
    }
    
    // التحقق من الدور
    if (empty($role) || !in_array($role, ['admin', 'manager', 'user'])) {
        $errors[] = 'يرجى اختيار دور صحيح';
    }
    
    // إذا لم تكن هناك أخطاء، قم بإضافة المستخدم
    if (empty($errors)) {
        try {
            $db = getDbConnection();
            $stmt = $db->prepare("
                INSERT INTO users (username, password, full_name, email, role, created_at)
                VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
            ");
            
            // تشفير كلمة المرور
            $hashed_password = password_hash($password, PASSWORD_DEFAULT);
            
            $stmt->execute([$username, $hashed_password, $full_name, $email, $role]);
            
            $success = true;
            
            // إعادة تعيين القيم بعد النجاح
            $username = $full_name = $email = '';
            
        } catch (PDOException $e) {
            $errors[] = 'حدث خطأ أثناء إضافة المستخدم: ' . $e->getMessage();
        }
    }
}

// عنوان الصفحة
$pageTitle = 'إضافة مستخدم جديد';

// تضمين ملف الهيدر
include '../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4">
    <h1 class="h3 mb-0"><i class="fas fa-user-plus me-2"></i> إضافة مستخدم جديد</h1>
    <a href="<?php echo SITE_URL; ?>/settings/users.php" class="btn btn-secondary">
        <i class="fas fa-arrow-right"></i> العودة إلى قائمة المستخدمين
    </a>
</div>

<div class="card">
    <div class="card-body">
        <?php if ($success): ?>
            <div class="alert alert-success">
                <i class="fas fa-check-circle me-2"></i> تمت إضافة المستخدم بنجاح.
                <a href="<?php echo SITE_URL; ?>/settings/users.php" class="alert-link">العودة إلى قائمة المستخدمين</a>
            </div>
        <?php endif; ?>
        
        <?php if (!empty($errors)): ?>
            <div class="alert alert-danger">
                <ul class="mb-0">
                    <?php foreach ($errors as $error): ?>
                        <li><?php echo $error; ?></li>
                    <?php endforeach; ?>
                </ul>
            </div>
        <?php endif; ?>
        
        <form method="post" action="">
            <div class="row">
                <div class="col-md-6 mb-3">
                    <label for="username" class="form-label">اسم المستخدم <span class="text-danger">*</span></label>
                    <input type="text" class="form-control" id="username" name="username" value="<?php echo htmlspecialchars($username ?? ''); ?>" required>
                    <div class="form-text">سيستخدم هذا الاسم لتسجيل الدخول</div>
                </div>
                
                <div class="col-md-6 mb-3">
                    <label for="full_name" class="form-label">الاسم الكامل <span class="text-danger">*</span></label>
                    <input type="text" class="form-control" id="full_name" name="full_name" value="<?php echo htmlspecialchars($full_name ?? ''); ?>" required>
                </div>
            </div>
            
            <div class="row">
                <div class="col-md-6 mb-3">
                    <label for="password" class="form-label">كلمة المرور <span class="text-danger">*</span></label>
                    <input type="password" class="form-control" id="password" name="password" required>
                    <div class="form-text">يجب أن تكون كلمة المرور 6 أحرف على الأقل</div>
                </div>
                
                <div class="col-md-6 mb-3">
                    <label for="confirm_password" class="form-label">تأكيد كلمة المرور <span class="text-danger">*</span></label>
                    <input type="password" class="form-control" id="confirm_password" name="confirm_password" required>
                </div>
            </div>
            
            <div class="row">
                <div class="col-md-6 mb-3">
                    <label for="email" class="form-label">البريد الإلكتروني</label>
                    <input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($email ?? ''); ?>">
                </div>
                
                <div class="col-md-6 mb-3">
                    <label for="role" class="form-label">الدور <span class="text-danger">*</span></label>
                    <select class="form-select" id="role" name="role" required>
                        <option value="">اختر الدور</option>
                        <option value="admin" <?php echo isset($role) && $role === 'admin' ? 'selected' : ''; ?>>مدير</option>
                        <option value="manager" <?php echo isset($role) && $role === 'manager' ? 'selected' : ''; ?>>مشرف</option>
                        <option value="user" <?php echo isset($role) && $role === 'user' ? 'selected' : ''; ?>>مستخدم</option>
                    </select>
                    <div class="form-text">
                        <strong>مدير:</strong> جميع الصلاحيات
                        <br>
                        <strong>مشرف:</strong> إدارة المنخرطين والاشتراكات
                        <br>
                        <strong>مستخدم:</strong> عرض البيانات فقط
                    </div>
                </div>
            </div>
            
            <div class="mt-4">
                <button type="submit" class="btn btn-primary">
                    <i class="fas fa-save me-2"></i> حفظ المستخدم
                </button>
                <a href="<?php echo SITE_URL; ?>/settings/users.php" class="btn btn-secondary">
                    <i class="fas fa-times me-2"></i> إلغاء
                </a>
            </div>
        </form>
    </div>
</div>

<?php
// تضمين ملف الفوتر
include '../includes/footer.php';
?>
