<?php
require_once __DIR__ . '/../includes/bootstrap.php';
require_admin();

$quizId = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT)
    ?: filter_input(INPUT_POST, 'quiz_id', FILTER_VALIDATE_INT)
    ?: 0;
$editing = $quizId > 0;
$errors = [];
$data = [
    'title' => '',
    'description' => '',
    'grade' => 'first_secondary',
    'sort_order' => 1,
    'is_free' => 0,
    'is_active' => 1,
];

if ($editing) {
    $stmt = db()->prepare('SELECT * FROM quizzes WHERE id = ? LIMIT 1');
    $stmt->execute([$quizId]);
    $quiz = $stmt->fetch();
    if (!$quiz) {
        flash('danger', 'الاختبار غير موجود.');
        redirect('admin/quizzes.php');
    }
    $data = $quiz;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    verify_csrf();
    $data['title'] = trim((string) ($_POST['title'] ?? ''));
    $data['description'] = trim((string) ($_POST['description'] ?? ''));
    $data['grade'] = (string) ($_POST['grade'] ?? '');
    $data['sort_order'] = max(1, (int) ($_POST['sort_order'] ?? 1));
    $data['is_free'] = isset($_POST['is_free']) ? 1 : 0;
    $data['is_active'] = isset($_POST['is_active']) ? 1 : 0;

    if (mb_strlen($data['title']) < 3) {
        $errors[] = 'اكتب عنوانًا واضحًا للاختبار.';
    }
    if (!in_array($data['grade'], ['first_secondary', 'second_secondary'], true)) {
        $errors[] = 'اختر الصف الدراسي.';
    }

    if (!$errors) {
        if ($editing) {
            $stmt = db()->prepare('UPDATE quizzes SET title = ?, description = ?, grade = ?, sort_order = ?, is_free = ?, is_active = ? WHERE id = ?');
            $stmt->execute([
                $data['title'],
                $data['description'] !== '' ? $data['description'] : null,
                $data['grade'],
                $data['sort_order'],
                $data['is_free'],
                $data['is_active'],
                $quizId,
            ]);
            flash('success', 'تم تعديل الاختبار بنجاح.');
            redirect('admin/quiz_questions.php?quiz_id=' . $quizId);
        }

        $stmt = db()->prepare('INSERT INTO quizzes (title, description, grade, sort_order, is_free, is_active, created_by) VALUES (?, ?, ?, ?, ?, ?, ?)');
        $stmt->execute([
            $data['title'],
            $data['description'] !== '' ? $data['description'] : null,
            $data['grade'],
            $data['sort_order'],
            $data['is_free'],
            $data['is_active'],
            $_SESSION['admin_id'],
        ]);
        $newQuizId = (int) db()->lastInsertId();
        flash('success', 'تم إنشاء الاختبار. أضف الأسئلة الآن.');
        redirect('admin/quiz_questions.php?quiz_id=' . $newQuizId);
    }
}

$pageTitle = $editing ? 'تعديل اختبار' : 'إضافة اختبار';
require_once __DIR__ . '/../includes/header.php';
?>
<div class="dashboard-head">
    <div>
        <h1><?= $editing ? 'تعديل الاختبار' : 'إضافة اختبار جديد' ?></h1>
        <p>حدد الصف والإتاحة، ثم أضف أسئلة الاختيار من متعدد.</p>
    </div>
    <a class="btn btn-outline" href="<?= e(url('admin/quizzes.php')) ?>">العودة للاختبارات</a>
</div>

<section class="card admin-form-card">
    <?php if ($errors): ?>
        <div class="errors"><?php foreach ($errors as $error): ?><div>• <?= e($error) ?></div><?php endforeach; ?></div>
    <?php endif; ?>

    <form method="post">
        <input type="hidden" name="csrf_token" value="<?= e(csrf_token()) ?>">
        <input type="hidden" name="quiz_id" value="<?= (int) $quizId ?>">
        <div class="form-grid">
            <div class="form-group full">
                <label for="title">عنوان الاختبار</label>
                <input id="title" name="title" value="<?= e((string) $data['title']) ?>" required placeholder="مثال: اختبار الدرس الأول — أساسيات البرمجة">
            </div>
            <div class="form-group">
                <label for="grade">الصف الدراسي</label>
                <select id="grade" name="grade" required>
                    <option value="first_secondary" <?= $data['grade'] === 'first_secondary' ? 'selected' : '' ?>>الصف الأول الثانوي</option>
                    <option value="second_secondary" <?= $data['grade'] === 'second_secondary' ? 'selected' : '' ?>>الصف الثاني الثانوي</option>
                </select>
            </div>
            <div class="form-group">
                <label for="sort_order">ترتيب الاختبار</label>
                <input id="sort_order" type="number" min="1" name="sort_order" value="<?= (int) $data['sort_order'] ?>" required>
            </div>
            <div class="form-group full">
                <label for="description">وصف أو تعليمات — اختياري</label>
                <textarea id="description" name="description" rows="5" placeholder="مثال: اختر إجابة واحدة لكل سؤال، وستظهر النتيجة والإجابات بعد الإرسال."><?= e((string) $data['description']) ?></textarea>
            </div>
            <div class="form-group full option-row">
                <label class="check-option"><input type="checkbox" name="is_free" <?= (int) $data['is_free'] === 1 ? 'checked' : '' ?>> <span>اختبار مجاني لكل طلاب هذا الصف</span></label>
                <label class="check-option"><input type="checkbox" name="is_active" <?= (int) $data['is_active'] === 1 ? 'checked' : '' ?>> <span>منشور ويظهر للطلاب</span></label>
            </div>
        </div>
        <button class="btn btn-primary" type="submit"><?= $editing ? 'حفظ التعديلات' : 'إنشاء الاختبار وإضافة الأسئلة' ?></button>
    </form>
</section>
<?php require_once __DIR__ . '/../includes/footer.php'; ?>
