<?php
error_reporting(0); // منع أي تحذيرات تفسد جودة البيانات المرسلة
if (session_status() == PHP_SESSION_NONE) { session_start(); }
header('Content-Type: application/json; charset=utf-8');
include_once 'db_connect.php';
mysqli_set_charset($conn, 'utf8mb4');

// تفعيل جدول الإشعارات v2 النظيف
$conn->query("CREATE TABLE IF NOT EXISTS live_alerts_v2 (
    id INT AUTO_INCREMENT PRIMARY KEY,
    teacher_id VARCHAR(100),
    target_stage VARCHAR(100),
    target_dept VARCHAR(100),
    specific_students TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)");

$action = $_REQUEST['action'] ?? '';

// أ. المدرس يرسل الإشعار وبدء البث
if ($action === 'send') {
    $stage = $conn->real_escape_string(trim($_POST['stage'] ?? 'الكل'));
    $dept = $conn->real_escape_string(trim($_POST['dept'] ?? 'الكل'));
    $specific = $conn->real_escape_string(trim($_POST['specific_students'] ?? ''));
    $t_id = $conn->real_escape_string(trim($_POST['tid'] ?? $_SESSION['teacher_long_id'] ?? '0'));

    if (!empty($t_id) && $t_id !== '0') {
        // تنظيف شامل وتفريغ مسبق لبدء حصة جديدة ناصعة البياض (يقتل أشباح البث القديم)
        $conn->query("DELETE FROM live_alerts_v2 WHERE teacher_id = '$t_id'");
        $conn->query("DELETE FROM live_waiting_room WHERE teacher_id = '$t_id'");
        $conn->query("DELETE FROM live_chat WHERE teacher_id = '$t_id'");
        
        $sql = "INSERT INTO live_alerts_v2 (teacher_id, target_stage, target_dept, specific_students) VALUES ('$t_id', '$stage', '$dept', '$specific')";
        if($conn->query($sql)) {
            echo json_encode(['success' => true]);
        } else {
            echo json_encode(['success' => false, 'error' => $conn->error]);
        }
    } else {
        echo json_encode(['success' => false, 'error' => 'Invalid Teacher ID']);
    }
    exit;
}

// ب. الطالب يبحث عن إشعاره (المطابقة الدقيقة والذكية)
if ($action === 'check') {
    $sid = trim($conn->real_escape_string($_REQUEST['sid'] ?? ''));
    $s_stage = trim($conn->real_escape_string($_REQUEST['stage'] ?? ''));
    $s_dept = trim($conn->real_escape_string($_REQUEST['dept'] ?? ''));

    $is_live = false;
    $live_tid = "";

    // حذف الإشعارات القديمة
    $conn->query("DELETE FROM live_alerts_v2 WHERE created_at < NOW() - INTERVAL 90 MINUTE");
    
    $res = $conn->query("SELECT * FROM live_alerts_v2 ORDER BY id DESC LIMIT 1"); // جلب آخر بث فقط

    if ($res && $res->num_rows > 0) {
        $row = $res->fetch_assoc();
        
        // 🚀 القاعدة الذهبية: هل المدرس اختار طلاباً محددين بالاسم؟
        if (!empty($row['specific_students'])) {
            // نعم، اختار طلاباً. إذن نتحقق فقط مما إذا كان هذا الطالب أحدهم.
            if (strpos($row['specific_students'], $sid) !== false) {
                $is_live = true; 
                $live_tid = $row['teacher_id'];
            }
            // ملاحظة: إذا لم يكن في القائمة، لا تفعل شيئاً (يُمنع الإشعار عنه، ولا يذهب إلى فحص المراحل).
        } 
        else {
            // لا، المدرس لم يحدد أي طلاب بالاسم (الحقل فارغ).
            // إذن نعتمد على مطابقة المراحل والأقسام.
            $t_stage = trim($row['target_stage']);
            $t_dept = trim($row['target_dept']);

            $stage_match = ($t_stage === 'الكل' || $t_stage === 'all' || $t_stage == $s_stage || empty($t_stage));
            $dept_match = ($t_dept === 'الكل' || $t_dept === 'all' || $t_dept == $s_dept || empty($t_dept));

            if ($stage_match && $dept_match) {
                $is_live = true; 
                $live_tid = $row['teacher_id'];
            }
        }
    }
    
    // إرجاع النتيجة
    echo json_encode(['is_live' => $is_live, 'tid' => $live_tid]);
    exit;
}
// ج. 🚀 التنظيف الصارم عند إغلاق البث (هدم الجسور لعدم بقاء الإشعار معلقاً)
if ($action === 'end_stream') {
    $t_id = trim($conn->real_escape_string($_REQUEST['tid'] ?? ''));
    
    // خطة طوارئ: إذا أرسل المتصفح رقم المدرس ككلمة نصية فارغة، نسحبها من الجلسة
    if (empty($t_id) || $t_id === 'null' || $t_id === 'undefined') {
        $t_id = $_SESSION['teacher_long_id'] ?? '';
    }

    if (!empty($t_id)) {
        // إبادة تامة وفورية للإشعارات، الغرف، والشاتات لضمان السكوت المطلق للرادار عند الطلاب
        $conn->query("DELETE FROM live_alerts_v2 WHERE teacher_id LIKE '%$t_id%'");
        $conn->query("DELETE FROM live_waiting_room WHERE teacher_id LIKE '%$t_id%'");
        $conn->query("DELETE FROM live_chat WHERE teacher_id LIKE '%$t_id%'");
    } else {
        // تصفير وقائي شامل إذا فُقدت كل المعرفات فجأة لعدم إزعاج الطلاب
        $conn->query("TRUNCATE TABLE live_alerts_v2");
        $conn->query("TRUNCATE TABLE live_waiting_room");
    }
    echo json_encode(['success' => true]);
    exit;
}
?>