<?php
declare(strict_types=1);

require_once __DIR__ . '/../includes/auth.php';

require_admin_login();

$page_title = 'إضافة أدمن جديد';
$errors = [];

$full_name = '';
$username = '';
$email = '';
$phone = '';
$role = 'staff';
$status = 1;

if (is_post()) {
    $full_name = trim((string) post('full_name'));
    $username  = trim((string) post('username'));
    $email     = trim((string) post('email'));
    $phone     = trim((string) post('phone'));
    $password  = (string) post('password');
    $role      = trim((string) post('role', 'staff'));
    $status    = (int) post('status', 1);

    if ($full_name === '') {
        $errors[] = 'يرجى إدخال الاسم الكامل.';
    }

    if ($username === '') {
        $errors[] = 'يرجى إدخال اسم المستخدم.';
    } elseif (mb_strlen($username) < 3) {
        $errors[] = 'اسم المستخدم يجب أن يكون 3 أحرف أو أكثر.';
    }

    if ($password === '') {
        $errors[] = 'يرجى إدخال كلمة المرور.';
    } elseif (mb_strlen($password) < 6) {
        $errors[] = 'كلمة المرور يجب أن تكون 6 أحرف أو أكثر.';
    }

    if ($email !== '' && !filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $errors[] = 'صيغة الإيميل غير صحيحة.';
    }

    $allowed_roles = ['super_admin', 'admin', 'staff'];
    if (!in_array($role, $allowed_roles, true)) {
        $role = 'staff';
    }

    $status = $status === 1 ? 1 : 0;

    if (empty($errors)) {
        $stmt = $conn->prepare("SELECT id FROM admins WHERE username = ? LIMIT 1");
        $stmt->bind_param('s', $username);
        $stmt->execute();
        $exists = $stmt->get_result()->fetch_assoc();
        $stmt->close();

        if ($exists) {
            $errors[] = 'اسم المستخدم مستخدم مسبقاً.';
        }
    }

    if (empty($errors) && $email !== '') {
        $stmt = $conn->prepare("SELECT id FROM admins WHERE email = ? LIMIT 1");
        $stmt->bind_param('s', $email);
        $stmt->execute();
        $exists = $stmt->get_result()->fetch_assoc();
        $stmt->close();

        if ($exists) {
            $errors[] = 'الإيميل مستخدم مسبقاً.';
        }
    }

    if (empty($errors)) {
        $password_hash = password_hash($password, PASSWORD_DEFAULT);

        $stmt = $conn->prepare("
            INSERT INTO admins (full_name, username, email, phone, password_hash, role, status)
            VALUES (?, ?, ?, ?, ?, ?, ?)
        ");
        $stmt->bind_param(
            'ssssssi',
            $full_name,
            $username,
            $email,
            $phone,
            $password_hash,
            $role,
            $status
        );

        if ($stmt->execute()) {
            $stmt->close();
            set_flash('success', 'تم إضافة الأدمن بنجاح.');
            redirect_to(admin_url('admins/index.php'));
        } else {
            $errors[] = 'حدث خطأ أثناء حفظ البيانات.';
            $stmt->close();
        }
    }
}

include __DIR__ . '/../includes/header.php';
include __DIR__ . '/../includes/sidebar.php';
?>

<div class="topbar">
    <div>
        <h1>إضافة أدمن جديد</h1>
        <div class="topbar-meta">إنشاء حساب إدارة جديد داخل النظام</div>
    </div>
    <div class="page-actions" style="margin-bottom:0;">
        <a href="<?= admin_url('admins/index.php') ?>" class="btn btn-light">
            <i class="fa-solid fa-arrow-right"></i>
            رجوع
        </a>
    </div>
</div>

<?php if (!empty($errors)): ?>
    <div class="flash error">
        <?php foreach ($errors as $error): ?>
            <div style="margin-bottom:6px;"><?= e($error) ?></div>
        <?php endforeach; ?>
    </div>
<?php endif; ?>

<div class="card">
    <form method="post">
        <div class="form-grid">
            <div class="form-group">
                <label for="full_name">الاسم الكامل</label>
                <input type="text" id="full_name" name="full_name" value="<?= e($full_name) ?>" required>
            </div>

            <div class="form-group">
                <label for="username">اسم المستخدم</label>
                <input type="text" id="username" name="username" value="<?= e($username) ?>" required>
            </div>

            <div class="form-group">
                <label for="email">الإيميل</label>
                <input type="email" id="email" name="email" value="<?= e($email) ?>">
            </div>

            <div class="form-group">
                <label for="phone">الهاتف</label>
                <input type="text" id="phone" name="phone" value="<?= e($phone) ?>">
            </div>

            <div class="form-group">
                <label for="password">كلمة المرور</label>
                <input type="password" id="password" name="password" required>
            </div>

            <div class="form-group">
                <label for="role">الصلاحية</label>
                <select id="role" name="role" required>
                    <option value="super_admin" <?= $role === 'super_admin' ? 'selected' : '' ?>>Super Admin</option>
                    <option value="admin" <?= $role === 'admin' ? 'selected' : '' ?>>Admin</option>
                    <option value="staff" <?= $role === 'staff' ? 'selected' : '' ?>>Staff</option>
                </select>
            </div>

            <div class="form-group">
                <label for="status">الحالة</label>
                <select id="status" name="status">
                    <option value="1" <?= $status === 1 ? 'selected' : '' ?>>Active</option>
                    <option value="0" <?= $status === 0 ? 'selected' : '' ?>>Inactive</option>
                </select>
            </div>
        </div>

        <div style="margin-top:20px; display:flex; gap:10px; flex-wrap:wrap;">
            <button type="submit" class="btn btn-primary">
                <i class="fa-solid fa-floppy-disk"></i>
                حفظ الأدمن
            </button>

            <a href="<?= admin_url('admins/index.php') ?>" class="btn btn-light">
                إلغاء
            </a>
        </div>
    </form>
</div>

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