-- Create patient_queue table CREATE TABLE IF NOT EXISTS patient_queue ( id INT AUTO_INCREMENT PRIMARY KEY, patient_id INT NOT NULL, department_id INT NOT NULL, doctor_id INT NULL, visit_id INT NULL, token_number INT NOT NULL, status ENUM('waiting', 'serving', 'completed', 'cancelled') DEFAULT 'waiting', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (patient_id) REFERENCES patients(id) ON DELETE CASCADE, FOREIGN KEY (department_id) REFERENCES departments(id) ON DELETE CASCADE, FOREIGN KEY (doctor_id) REFERENCES doctors(id) ON DELETE SET NULL, FOREIGN KEY (visit_id) REFERENCES visits(id) ON DELETE SET NULL ); -- Index for faster searching of today's queue CREATE INDEX idx_queue_date_dept ON patient_queue(created_at, department_id);