Kurumsal anonlar, zamanlama ve çalma istatistikleri.
İşletmeler için sesli duyuru sistemi. "Değerli müşterilerimiz, %20 indirim kampanyamız başlamıştır" gibi anonslar müzik arasına otomatik eklenir. Belirli saatlerde veya dakikada bir çalabilir.
Market: Her 15 dakikada bir "Taze ekmekler fırından çıktı" anonsu. Veya saat 18:00'de "Kapanış saatimiz yaklaşmaktadır" duyurusu.
Belirli saatlerde veya dakikada bir çalacak şekilde ayarlanabilir.
Acil anonslar normal anonların önüne geçer. Yangın, acil durum gibi.
Hangi anons kaç kez çaldı, hangi şubelerde çaldı - tam takip.
Kampanya anonsu: 1-15 Ocak arası çalsın, sonra otomatik dursun.
Anons sistemi şu adımlarla çalışır:
MP3 formatında anons dosyası yüklenir. Sistem dosyayı doğrular, süresini hesaplar (getID3), storage/announcements klasörüne kaydeder. Veritabanına kayıt oluşturulur: başlık, süre, dosya yolu, öncelik seviyesi.
announcement_schedules tablosuna zamanlama kaydedilir: başlangıç/bitiş tarihi, çalma saatleri (09:00-22:00), tekrar aralığı (her 30 dakika), haftanın günleri (pazartesi-cuma). Cron expression formatında saklanabilir.
Her anonsun bir öncelik seviyesi vardır: 1=Normal, 2=Önemli, 3=Acil. Acil anonslar (yangın, tahliye) normal sırayı atlar ve hemen çalar. Priority queue algoritması ile sıralama yapılır. Acil anonslar müziği keser.
Player her dakika /api/announcements/next endpoint'ini çağırır. Sistem şu anki saat, şube ID, son çalınan anons bilgisiyle uygun anonsu hesaplar. WebSocket ile de push edilebilir. Player anonsu alır ve müzik arasına ekler.
Player anonsu çaldığında /api/announcements/{id}/played endpoint'ine bildirir. announcement_plays tablosuna kayıt oluşturulur: hangi şube, hangi saat, tam çalındı mı (skip edildi mi). Bu veriler raporlamada kullanılır.
Her anons çağrısında sistem tarihi kontrol eder. Kampanya anonsu 1-15 Ocak için tanımlıysa, 16 Ocak'ta otomatik devre dışı kalır. active_from ve active_until alanları ile where clause uygulanır.