// محرك المزامنة المخصص للوسائل التعليمية (SyncClient1.js)
const MediaSyncEngine = {
    interval: null,
    lastUrl: null,

    // 🚀 1. دالة البث (يستخدمها المدرس فقط)
    broadcast: function(tid, actionName, url, type) {
        let payload = JSON.stringify({ action: actionName, url: url, type: type, timestamp: Date.now() });
        let formData = new FormData();
        formData.append('action', 'set');
        formData.append('tid', tid);
        formData.append('data', payload);
        
        // نوجه الطلب لملفك الحقيقي
        fetch('../zoom_api/media_sync.php', { method: 'POST', body: formData })
        .catch(err => console.error("Sync Error:", err));
    },

    // 🚀 2. دالة الاستماع (يستخدمها الطالب فقط)
    listen: function(tid, callback) {
        if (this.interval) clearInterval(this.interval);
        this.interval = setInterval(() => {
            fetch(`../zoom_api/media_sync.php?action=get&tid=${tid}`)
            .then(res => res.json())
            .then(data => {
                // إذا كان هناك ملف جديد ولم نعرضه بعد
                if (data && data.action && data.url !== this.lastUrl) {
                    this.lastUrl = data.url;
                    callback(data); // إرسال البيانات للطالب لعرضها
                } 
                // إذا قام المدرس بالمسح
                else if (data && (data.action === 'CLEAR' || data.action === 'NONE') && this.lastUrl !== null) {
                    this.lastUrl = null;
                    callback({ action: 'CLEAR' });
                }
            }).catch(e => { /* كتم الأخطاء لكي لا يتشوه الكونسل */ });
        }, 1000);
    }
};