<?php
if (session_status() == PHP_SESSION_NONE) { session_start(); }
header('Content-Type: application/json; charset=utf-8');
include 'db_connect.php'; 

// 🚀 اللمسة السحرية 1: جلب اسم المدرس بدقة عالية من عدة مصادر لمنع تسجيله باسم أدمن بالخطأ
$active_teacher = $_POST['teacher_name'] ?? $_SESSION['teacher_name'] ?? $_SESSION['admin_user'] ?? '';

// محاولة إنقاذ: إذا ضاعت الجلسة، نأخذ اسم المدرس من الرابط الذي أرسل الطلب
if (empty($active_teacher) && isset($_SERVER['HTTP_REFERER'])) {
    parse_str(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY) ?? '', $query_params);
    if (!empty($query_params['u'])) {
        $active_teacher = $query_params['u'];
    }
}

if (empty($active_teacher)) {
    $active_teacher = 'admin_ammar'; // الملاذ الأخير
}

// فك التشفير في حال كان الاسم يحتوي على مسافات أو حروف عربية (مهم جداً)
$active_teacher = urldecode($active_teacher);

// 🚀 اللمسة السحرية 2: جلب اسم المدرسة لضمان العزل المؤسساتي للدروس
$safe_teacher = $conn->real_escape_string($active_teacher);
$school_name = 'المدرسة العامة';
$school_q = $conn->query("SELECT school_name FROM teachers WHERE teacher_name = '$safe_teacher' LIMIT 1");
if ($school_q && $school_q->num_rows > 0) {
    $school_data = $school_q->fetch_assoc();
    $school_name = $school_data['school_name'] ?? 'المدرسة العامة';
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $title = $_POST['title'] ?? 'بدون عنوان';
    $class_name = $_POST['class_name'] ?? 'عام';
    $department = $_POST['department'] ?? 'عام'; 
    $branch = $_POST['branch'] ?? 'الكل';        
    $status = 'published';
    $date_added = date('Y-m-d H:i:s');
    $teacher_name = $active_teacher;
    $lesson_content = $_POST['content'] ?? ''; 
    $video_url = $_POST['video_url'] ?? '';
    if (empty(trim($video_url))) $video_url = '#';

    // 🔥 اللمسة السحرية: هل المدرس يقوم بتعديل درس موجود؟
    $edit_lesson_id = $_POST['edit_lesson_id'] ?? ''; 

    // رفع الـ PDF (فقط إذا رفع المدرس ملفاً جديداً)
    $pdf_file = '';
    $update_pdf_query = "";
    if (isset($_FILES['pdf_file']) && $_FILES['pdf_file']['error'] === UPLOAD_ERR_OK) {
        $pdf_dir = 'uploads/docs/';
        if(!is_dir($pdf_dir)) mkdir($pdf_dir, 0777, true);
        $pdf_file = time() . '_' . basename($_FILES['pdf_file']['name']);
        move_uploaded_file($_FILES['pdf_file']['tmp_name'], $pdf_dir . $pdf_file);
        $update_pdf_query = ", pdf_file = '$pdf_file'";
    }

    // رفع الفيديو (فقط إذا رفع المدرس فيديو جديد)
    $video_file = '';
    $update_video_query = "";
    if (isset($_FILES['video_file']) && $_FILES['video_file']['error'] === UPLOAD_ERR_OK) {
        $video_dir = 'uploads/videos/';
        if(!is_dir($video_dir)) mkdir($video_dir, 0777, true);
        $video_file = time() . '_' . basename($_FILES['video_file']['name']);
        move_uploaded_file($_FILES['video_file']['tmp_name'], $video_dir . $video_file);
        $update_video_query = ", video_file = '$video_file'";
    }

    // كود الحذف (بقي كما هو بدون أي تغيير)
    if (isset($_POST['action']) && $_POST['action'] === 'delete') {
        $lesson_id = $_POST['lesson_id'] ?? 0;
        if ($lesson_id > 0) {
            $sql = "DELETE FROM archived_lessons WHERE id = ?";
            $stmt = $conn->prepare($sql);
            $stmt->bind_param("i", $lesson_id);
            if ($stmt->execute()) {
                echo json_encode(['status' => 'success']);
            } else {
                echo json_encode(['status' => 'error', 'message' => $stmt->error]);
            }
            $stmt->close();
        } else {
            echo json_encode(['status' => 'error', 'message' => 'Invalid ID']);
        }
        exit; // نوقف التنفيذ هنا لكي لا يكمل كود الإضافة/التعديل
    }

    if (!empty($edit_lesson_id)) {
        // 🔄 وضع التعديل: تحديث الدرس فقط مع الحفاظ على المرفقات القديمة + تحديث المدرسة
        $sql = "UPDATE archived_lessons SET title=?, class_name=?, department=?, branch=?, lesson_content=?, video_url=?, school_name=? $update_pdf_query $update_video_query WHERE id=? AND teacher_name=?";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("sssssssis", $title, $class_name, $department, $branch, $lesson_content, $video_url, $school_name, $edit_lesson_id, $teacher_name);
        
        if ($stmt->execute()) {
            echo json_encode(["status" => "success", "lesson_id" => $edit_lesson_id]);
        } else {
            echo json_encode(["status" => "error", "message" => $stmt->error]);
        }
    } else {
        // 🆕 وضع الإضافة: إنشاء درس جديد مع ربطه بالمدرسة والمدرس
        $sql = "INSERT INTO archived_lessons (title, video_url, date_added, class_name, department, branch, status, teacher_name, school_name, lesson_content, pdf_file, video_file) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("ssssssssssss", $title, $video_url, $date_added, $class_name, $department, $branch, $status, $teacher_name, $school_name, $lesson_content, $pdf_file, $video_file);

        if ($stmt->execute()) {
            echo json_encode(["status" => "success", "lesson_id" => $stmt->insert_id]);
        } else {
            echo json_encode(["status" => "error", "message" => $stmt->error]);
        }
    }
    if(isset($stmt)) $stmt->close();
}
?>