<?php
require_once __DIR__ . '/includes/bootstrap.php';

if (student_logged_in()) {
    redirect('student/dashboard.php');
}

$errors = [];
$data = [
    'full_name' => '',
    'phone' => '',
    'school_name' => '',
    'grade' => '',
];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    verify_csrf();

    $data['full_name'] = trim((string) ($_POST['full_name'] ?? ''));
    $data['phone'] = normalize_phone((string) ($_POST['phone'] ?? ''));
    $data['school_name'] = trim((string) ($_POST['school_name'] ?? ''));
    $data['grade'] = (string) ($_POST['grade'] ?? '');
    $password = (string) ($_POST['password'] ?? '');
    $passwordConfirmation = (string) ($_POST['password_confirmation'] ?? '');

    if (mb_strlen($data['full_name']) < 3) {
        $errors[] = 'اكتب اسم الطالب كاملًا.';
    }
    if (!valid_phone($data['phone'])) {
        $errors[] = 'اكتب رقم هاتف صحيحًا مكوّنًا من 10 إلى 15 رقمًا.';
    }
    if (mb_strlen($data['school_name']) < 2) {
        $errors[] = 'اكتب اسم المدرسة.';
    }
    if (!in_array($data['grade'], ['first_secondary', 'second_secondary'], true)) {
        $errors[] = 'اختر الصف الدراسي.';
    }
    if (strlen($password) < 8) {
        $errors[] = 'كلمة المرور يجب ألا تقل عن 8 أحرف.';
    }
    if ($password !== $passwordConfirmation) {
        $errors[] = 'تأكيد كلمة المرور غير مطابق.';
    }

    if (!$errors) {
        $stmt = db()->prepare('SELECT id FROM students WHERE phone = ? LIMIT 1');
        $stmt->execute([$data['phone']]);
        if ($stmt->fetch()) {
            $errors[] = 'رقم الهاتف مسجل بالفعل.';
        }
    }

    if (!$errors) {
        $stmt = db()->prepare(
            'INSERT INTO students (full_name, phone, school_name, grade, password_hash, account_status)
             VALUES (?, ?, ?, ?, ?, "pending")'
        );
        $stmt->execute([
            $data['full_name'],
            $data['phone'],
            $data['school_name'],
            $data['grade'],
            password_hash($password, PASSWORD_DEFAULT),
        ]);

        flash('success', 'تم إرسال طلب التسجيل بنجاح. حسابك قيد مراجعة الإدارة.');
        redirect('login.php');
    }
}

$pageTitle = 'إنشاء حساب';
require_once __DIR__ . '/includes/header.php';
?>
<section class="auth-layout">
    <?php
    $showcaseTag = 'ابدأ رحلتك';
    $showcaseTitle = 'انضم إلى كودو';
    $showcaseText = 'أنشئ حسابك، واختر صفك الدراسي، ثم انتظر موافقة الإدارة لبدء التعلّم.';
    require __DIR__ . '/includes/auth_showcase.php';
    ?>

    <section class="card auth-card">
        <div class="auth-heading">
            <span class="auth-eyebrow">طالب جديد</span>
            <h1>إنشاء حساب طالب</h1>
            <p>بعد إرسال الطلب، يراجع الأدمن بياناتك ويقوم بتفعيل الحساب.</p>
        </div>

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

        <form method="post" novalidate>
            <input type="hidden" name="csrf_token" value="<?= e(csrf_token()) ?>">
            <div class="form-grid">
                <div class="form-group full">
                    <label for="full_name">اسم الطالب بالكامل</label>
                    <input id="full_name" name="full_name" value="<?= e($data['full_name']) ?>" required autocomplete="name" placeholder="اكتب الاسم بالكامل">
                </div>

                <div class="form-group">
                    <label for="phone">رقم الهاتف عليه واتساب</label>
                    <input id="phone" name="phone" value="<?= e($data['phone']) ?>" required inputmode="tel" autocomplete="tel" placeholder="01xxxxxxxxx">
                </div>

                <div class="form-group">
                    <label for="school_name">المدرسة التابع لها</label>
                    <input id="school_name" name="school_name" value="<?= e($data['school_name']) ?>" required placeholder="اسم المدرسة">
                </div>

                <div class="form-group full">
                    <label for="grade">الصف الدراسي</label>
                    <select id="grade" name="grade" required>
                        <option value="">اختر الصف الدراسي</option>
                        <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="password">كلمة المرور</label>
                    <input id="password" type="password" name="password" required autocomplete="new-password" placeholder="8 أحرف على الأقل">
                </div>

                <div class="form-group">
                    <label for="password_confirmation">تأكيد كلمة المرور</label>
                    <input id="password_confirmation" type="password" name="password_confirmation" required autocomplete="new-password" placeholder="أعد كتابة كلمة المرور">
                </div>
            </div>
            <button class="btn btn-primary auth-submit" type="submit">إرسال طلب التسجيل</button>
        </form>
        <p class="auth-footer-note">لديك حساب بالفعل؟ <a href="<?= e(url('login.php')) ?>">تسجيل الدخول</a></p>
    </section>
</section>
<?php require_once __DIR__ . '/includes/footer.php'; ?>
