<?php
session_start();
require_once('../config/db.php');

// 1. استدعاء الهيدر لتفعيل نظام الترجمة والاتجاهات
include('../includes/header.php'); 

// ✅ التحقق من تسجيل الدخول
if (!isset($_SESSION['user'])) {
    header('Location: ../auth/login.php');
    exit;
}

$id = $_GET['id'] ?? null;
if (!$id || !is_numeric($id)) {
    header('Location: list.php');
    exit;
}

$error = '';
$success = '';

// 2. جلب بيانات الواجب الحالي
$stmt = $conn->prepare("SELECT * FROM assignments WHERE id = ?");
$stmt->execute([$id]);
$assignment = $stmt->fetch();

if (!$assignment) {
    header('Location: list.php');
    exit;
}

// جلب قوائم الطلاب والدورات للمساعدة في القوائم المنسدلة
$students = $conn->query("SELECT id, full_name FROM students ORDER BY full_name ASC")->fetchAll();
$courses = $conn->query("SELECT id, course_name FROM courses ORDER BY course_name ASC")->fetchAll();

// 3. معالجة طلب التحديث
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'] ?? '');

    if (empty($student_id) || empty($course_id)) {
        $error = __('error_missing_fields');
    } else {
        try {
            $stmt = $conn->prepare("UPDATE assignments SET student_id = ?, course_id = ?, exam_date = ?, assignment_details = ? WHERE id = ?");
            if ($stmt->execute([$student_id, $course_id, $exam_date, $details, $id])) {
                $success = __('success_update_assignment_msg');
                
                // تحديث البيانات المعروضة في الفورم فوراً بعد النجاح
                $assignment['student_id'] = $student_id;
                $assignment['course_id'] = $course_id;
                $assignment['exam_date'] = $exam_date;
                $assignment['assignment_details'] = $details;
            } else {
                $error = __('error_db_update');
            }
        } 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 sm:px-6 lg:px-8">
        
        <div class="bg-white dark:bg-gray-800 shadow-2xl rounded-2xl p-8 border-t-8 border-blue-600 dark:border-blue-500 transform hover:scale-[1.01] transition duration-300">
            
            <h2 class="text-3xl font-extrabold mb-8 text-center text-blue-700 dark:text-blue-400 border-b pb-4">
                <i class="fas fa-edit <?= $dir == 'rtl' ? 'ml-2' : 'mr-2' ?>"></i> 
                <?= __('edit') ?>: <?= htmlspecialchars($assignment['assignment_details'] ?? __('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-lg 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-lg 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 for="student_id" 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" id="student_id" required
                        class="w-full border-2 border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 text-gray-900 dark:text-gray-100 rounded-xl px-4 py-3 focus:outline-none focus:ring-4 focus:ring-blue-500/50 transition shadow-sm">
                        <?php foreach($students as $s): ?>
                            <option value="<?= $s['id'] ?>" <?= $s['id'] == $assignment['student_id'] ? 'selected' : '' ?>>
                                <?= htmlspecialchars($s['full_name']) ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <div>
                    <label for="course_id" 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 text-gray-900 dark:text-gray-100 rounded-xl px-4 py-3 focus:outline-none focus:ring-4 focus:ring-blue-500/50 transition shadow-sm">
                        <?php foreach($courses as $c): ?>
                            <option value="<?= $c['id'] ?>" <?= $c['id'] == $assignment['course_id'] ? 'selected' : '' ?>>
                                <?= htmlspecialchars($c['course_name']) ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <div>
                    <label for="exam_date" class="block mb-2 font-bold text-gray-700 dark:text-gray-300">
                        <?= __('exam_date') ?>
                    </label>
                    <input type="date" name="exam_date" id="exam_date"
                        value="<?= htmlspecialchars($assignment['exam_date'] ?? '') ?>"
                        class="w-full border-2 border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 text-gray-900 dark:text-gray-100 rounded-xl px-4 py-3 focus:outline-none focus:ring-4 focus:ring-blue-500/50 transition shadow-sm">
                </div>

                <div>
                    <label for="details" class="block mb-2 font-bold text-gray-700 dark:text-gray-300">
                        <?= __('notes') ?>
                    </label>
                    <textarea name="details" id="details" rows="4" placeholder="<?= __('notes') ?>"
                        class="w-full border-2 border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 text-gray-900 dark:text-gray-100 rounded-xl px-4 py-3 focus:outline-none focus:ring-4 focus:ring-blue-500/50 transition shadow-sm"><?= htmlspecialchars($assignment['assignment_details']) ?></textarea>
                </div>

                <div class="flex flex-col sm:flex-row justify-between items-center pt-4 gap-4">
                    <button type="submit"
                        class="bg-blue-600 text-white w-full sm:w-auto px-10 py-4 rounded-xl hover:bg-blue-700 transition font-extrabold shadow-lg transform hover:scale-[1.02] order-1">
                        <i class="fas fa-save <?= $dir == 'rtl' ? 'ml-2' : 'mr-2' ?>"></i> <?= __('save') ?>
                    </button>
                    
                     <a href="list.php"
                        class="w-full sm:w-auto text-center bg-gray-300 text-gray-800 font-bold px-8 py-4 rounded-xl hover:bg-gray-400 transition shadow-md flex items-center justify-center order-2">
                        <i class="fas <?= $dir == 'rtl' ? 'fa-arrow-right ml-2' : 'fa-arrow-left mr-2' ?>"></i> <?= __('back_to_list') ?>
                    </a>
                </div>
            </form>
        </div>
    </div>
</div>

<?php include('../includes/footer.php'); ?>