-- ======================================================== -- Live Quran Classroom Tables -- ======================================================== -- ===== Live Rooms ===== CREATE TABLE IF NOT EXISTS live_rooms ( id INT AUTO_INCREMENT PRIMARY KEY, room_code VARCHAR(20) NOT NULL UNIQUE, class_id INT, masjid_id INT, teacher_name VARCHAR(100), surah_number INT DEFAULT 1, surah_name VARCHAR(100) DEFAULT 'Al-Fatiha', status ENUM('live', 'ended') DEFAULT 'live', started_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, ended_at TIMESTAMP NULL, FOREIGN KEY (class_id) REFERENCES quran_classes(id) ON DELETE SET NULL, FOREIGN KEY (masjid_id) REFERENCES masjids(id) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ===== WebRTC Signaling ===== CREATE TABLE IF NOT EXISTS live_signals ( id INT AUTO_INCREMENT PRIMARY KEY, room_code VARCHAR(20) NOT NULL, sender VARCHAR(50) NOT NULL, recipient VARCHAR(50) NOT NULL, signal_type ENUM('offer', 'answer', 'ice_candidate', 'join_request') NOT NULL, signal_data TEXT NOT NULL, consumed TINYINT(1) DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ===== Teacher Pointer / Word Highlight ===== CREATE TABLE IF NOT EXISTS live_pointers ( id INT AUTO_INCREMENT PRIMARY KEY, room_code VARCHAR(20) NOT NULL, pointer_x DECIMAL(5,2) DEFAULT 0, pointer_y DECIMAL(5,2) DEFAULT 0, highlighted_ayah INT DEFAULT NULL, highlighted_word INT DEFAULT NULL, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;