<?php
// إخفاء الأخطاء النصية لضمان استجابة JSON نظيفة
error_reporting(0);
ini_set('display_errors', 0);

session_start();
require_once 'db_connect.php';

header('Content-Type: application/json; charset=utf-8');

try {
    if (!isset($conn)) {
        throw new Exception("لا يوجد اتصال بقاعدة البيانات.");
    }

    // جلب اسم المدرسة من الجلسة (لجلب إشعارات هذه المدرسة فقط)
    $school_name = isset($_SESSION['school_name']) ? $conn->real_escape_string($_SESSION['school_name']) : '';

    // ==========================================
    // 🚀 الحل الدقيق بناءً على قاعدة بياناتك 🚀
    // ==========================================
    // اكتشفنا أن الفئة المستهدفة مخزنة في عمود "student_id"
    // لذا سنجلب فقط الصفوف التي يكون فيها student_id:
    // 1. "جميع المدرسين"
    // 2. أو يحتوي على كلمة "مدرس" أو "كادر" (للاحتياط)
    
    $query = "SELECT * FROM notifications 
              WHERE school_name = '$school_name' 
              AND (
                  student_id = 'جميع المدرسين' 
                  OR student_id LIKE '%مدرس%' 
                  OR student_id LIKE '%كادر%'
              )
              ORDER BY id DESC LIMIT 50";

    $result = $conn->query($query);
    $notifications = [];

    // مصفوفة لمنع التكرار (في حال ضغط الإدارة على الإرسال مرتين)
    $seen_messages = [];

    if ($result && $result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            
            // منع التكرار بناءً على نص الرسالة وعنوانها
            $msg_hash = md5($row['message'] . $row['title']);
            
            if (!isset($seen_messages[$msg_hash])) {
                $seen_messages[$msg_hash] = true; // تسجيلها كـ "تم رؤيتها"
                
                $notifications[] = [
                    'id' => $row['id'],
                    'title' => isset($row['title']) && !empty($row['title']) ? htmlspecialchars($row['title']) : 'إشعار إداري',
                    'message' => htmlspecialchars($row['message']),
                    'created_at' => date('Y-m-d h:i A', strtotime($row['created_at'])),
                    'is_read' => isset($row['is_read']) ? $row['is_read'] : 0 
                ];
            }
        }
    }

    echo json_encode([
        'status' => 'success', 
        'notifications' => $notifications
    ]);

} catch (Exception $e) {
    echo json_encode([
        'status' => 'error', 
        'message' => $e->getMessage()
    ]);
}
?>