<?php
session_start();
require_once('../config/db.php');

// 1. استدعاء الهيدر لتفعيل دالة __() ومتغير الاتجاه $dir
include('../includes/header.php');

// 2. التحقق من تسجيل الدخول
if (!isset($_SESSION['user'])) {
    header('Location: ../auth/login.php');
    exit;
}

$error = '';
$success = '';

// 3. جلب قائمة الطلاب لعرضها في القائمة المنسدلة
$students = $conn->query("SELECT id, full_name FROM students ORDER BY full_name ASC")->fetchAll(PDO::FETCH_ASSOC);

// 4. معالجة طلب الحفظ عند إرسال الفورم
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $student_id = $_POST['student_id'] ?? '';
    $course_id  = $_POST['course_id'] ?? ''; 
    
    // الحل لمشكلة الخطأ: تحويل النص الفارغ إلى NULL قبل الإرسال لقاعدة البيانات
    $exam_date  = !empty($_POST['exam_date']) ? $_POST['exam_date'] : null;
    
    $details    = trim($_POST['details'] ?? '');
    $teacher_id = $_SESSION['user']['id'];

    if (empty($student_id) || empty($course_id)) {
        $error = __('error_missing_fields');
    } else {
        try {
            $stmt = $conn->prepare("INSERT INTO assignments (student_id, course_id, teacher_id, exam_date, assignment_details) VALUES (?, ?, ?, ?, ?)");
            
            // تمرير القيم للمصفوفة (PDO سيقوم بمعالجة الـ null بشكل صحيح)
            if ($stmt->execute([$student_id, $course_id, $teacher_id, $exam_date, $details])) {
                $success = __('success_add_assignment_msg');
            } else {
                $error = __('error_db_insert');
            }
        } catch (PDOException $e) {
            // في حال وجود خطأ تقني يظهر للمدرس بشكل منظم
            $error = __('error_db_general') . ": " . $e->getMessage();
        }
    }
}
?>

<?php include('../includes/navbar.php'); ?>

<div class="min-h-screen bg-gray-100 dark:bg-gray-900 pb-16 font-[Cairo]" dir="<?= $dir ?>">
    <div class="max-w-xl mx-auto py-10 px-4">
        <div class="bg-white dark:bg-gray-800 shadow-2xl rounded-2xl p-8 border-t-8 border-indigo-600 transform hover:scale-[1.01] transition duration-300">
            
            <h2 class="text-3xl font-extrabold mb-8 text-center text-indigo-700 dark:text-indigo-400 border-b pb-4">
                <i class="fas fa-plus-circle <?= $dir == 'rtl' ? 'ml-2' : 'mr-2' ?>"></i> 
                <?= __('add_new_assignment') ?>
            </h2>

            <?php if ($error): ?>
                <div class="bg-red-100 dark:bg-red-900 text-red-700 dark:text-red-300 p-4 rounded-xl mb-6 shadow border border-red-300">
                    <i class="fas fa-times-circle <?= $dir == 'rtl' ? 'ml-2' : 'mr-2' ?>"></i> <?= $error ?>
                </div>
            <?php elseif ($success): ?>
                <div class="bg-green-100 dark:bg-green-900 text-green-700 dark:text-green-300 p-4 rounded-xl mb-6 shadow border border-green-300">
                    <i class="fas fa-check-circle <?= $dir == 'rtl' ? 'ml-2' : 'mr-2' ?>"></i> <?= $success ?>
                </div>
            <?php endif; ?>

            <form method="POST" action="" class="space-y-6">
                <div>
                    <label class="block mb-2 font-bold text-gray-700 dark:text-gray-300"><?= __('student_name') ?> <span class="text-red-500">*</span></label>
                    <select name="student_id" required onchange="fetchCourses(this.value)" class="w-full border-2 border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 dark:text-white rounded-xl px-4 py-3 focus:ring-4 focus:ring-indigo-500/50 outline-none transition shadow-sm">
                        <option value=""><?= __('select_student') ?></option>
                        <?php foreach($students as $s): ?>
                            <option value="<?= $s['id'] ?>"><?= htmlspecialchars($s['full_name']) ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <div>
                    <label class="block mb-2 font-bold text-gray-700 dark:text-gray-300"><?= __('course') ?> <span class="text-red-500">*</span></label>
                    <select name="course_id" id="course_id" required class="w-full border-2 border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 dark:text-white rounded-xl px-4 py-3 focus:ring-4 focus:ring-indigo-500/50 outline-none transition shadow-sm">
                        <option value=""><?= __('select_first') ?></option>
                    </select>
                </div>

                <div>
                    <label class="block mb-2 font-bold text-gray-700 dark:text-gray-300"><?= __('exam_date') ?></label>
                    <input type="date" name="exam_date" class="w-full border-2 border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 dark:text-white rounded-xl px-4 py-3 outline-none focus:ring-4 focus:ring-indigo-500/50 transition shadow-sm">
                </div>

                <div>
                    <label class="block mb-2 font-bold text-gray-700 dark:text-gray-300"><?= __('notes') ?></label>
                    <textarea name="details" rows="3" placeholder="<?= __('notes') ?>" class="w-full border-2 border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 dark:text-white rounded-xl px-4 py-3 outline-none focus:ring-4 focus:ring-indigo-500/50 transition shadow-sm"></textarea>
                </div>

                <div class="flex flex-col sm:flex-row gap-4 pt-4">
                    <button type="submit" class="flex-1 bg-indigo-600 text-white py-4 rounded-xl font-extrabold shadow-lg hover:bg-indigo-700 transition transform hover:scale-[1.02]">
                        <i class="fas fa-save <?= $dir == 'rtl' ? 'ml-2' : 'mr-2' ?>"></i> <?= __('save') ?>
                    </button>
                    <a href="list.php" class="flex-1 bg-gray-200 dark:bg-gray-700 text-gray-800 dark:text-gray-200 text-center py-4 rounded-xl font-bold hover:bg-gray-300 dark:hover:bg-gray-600 transition shadow-md">
                        <?= __('back_to_list') ?>
                    </a>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
    /**
     * وظيفة جلب دورات الطالب المختار تلقائياً
     */
    function fetchCourses(studentId) {
        const courseSelect = document.getElementById('course_id');
        
        // تصفير القائمة وإظهار حالة التحميل
        courseSelect.innerHTML = '<option value="">...</option>';
        
        if(!studentId) {
            courseSelect.innerHTML = '<option value=""><?= __("select_first") ?></option>';
            return;
        }
        
        // جلب البيانات من ملف منفصل (يجب أن يكون لديك ملف جلب البيانات)
        fetch(`get_student_courses.php?student_id=${studentId}`)
            .then(res => res.json())
            .then(data => {
                if (data.length > 0) {
                    courseSelect.innerHTML = data.map(c => `<option value="${c.id}">${c.course_name}</option>`).join('');
                } else {
                    courseSelect.innerHTML = '<option value=""><?= __("no_courses_found") ?></option>';
                }
            })
            .catch(() => {
                courseSelect.innerHTML = '<option value=""><?= __("operation_error") ?></option>';
            });
    }
</script>

<?php include('../includes/footer.php'); ?>