İşletmeler İçin Sınırsız Otomatik Müzik Sistemi - Master Implementation Plan
Barista/Garson/İşletme Sahibi: Sabah açar, "Başlat" tuşuna basar.
Sistem: Akşama kadar hiç durmadan, hiç müdahale gerektirmeden otomatik müzik çalar.
Kullanıcı: Siteye tekrar girmesine bile gerek kalmaz.
Sadece Tasavvufi (İlahi) müzik. ASLA başka genre karışmaz.
Halk, TSM, Türkçe. Türk kültürüne uygun müzik.
Rock, Metal. Yüksek enerjili müzik.
Cami'de: İlahi çalarken araya Hard Rock karışırsa → SKANDAL!
Meyhane'de: Türk müziği çalarken araya İlahi karışırsa → SAYGISIZLİK!
Fine Dining'de: Lounge çalarken araya Metal karışırsa → MÜŞTERİ KAYBI!
32 genre'ı 6 uyumluluk grubuna ayırıyoruz. Her grup kendi kurallarına göre çalışır:
ASLA başka grupla karışmaz
Belirli gruplarla mix edilebilir
↔ Grup 4 ve 5 birbirleriyle karışabilir
Gerçek veritabanı dökümü analiz edildi. Mevcut yapı kullanılacak, yeni tablo oluşturulmayacak!
⚠️ Her şarkının TEK genre_id var!
✅ 32 Genre mevcut (Tasavvufi ID: 27)
Yeni tablo oluşturmak yerine, PHP config dosyasında genre gruplarını tanımlayacağız. 30K eski şarkı aynen kullanılabilecek!
32 genre'ı 6 gruba ayıran yapılandırma dosyası. Her grup için strict/flexible modlar ve mix kuralları.
Genre uyumluluk mantığını yöneten helper sınıfı. Verilen genre ID için izin verilen genre'leri döner.
Frontend'in genre uyumluluğunu kontrol etmesi ve queue'yu doldurması için API'ler.
Queue 5 şarkıya indiğinde otomatik tetiklenen mantık. Genre uyumluluğunu koruyarak yeni şarkılar ekler.
Başlangıç: Kullanıcı "Cami Modu" seçer → İlk 15 Tasavvufi şarkı yüklenir
Oynatma: Şarkılar sırayla çalar, queue azalır → 15 → 10 → 7 → 5 şarkı!
Tetikleyici: Queue <= 5 şarkı → refillQueue() otomatik çalışır!
Analiz: Son 5 şarkının tamamı genre_id=27 (Tasavvufi) → En çok 27 tekrar ediyor
Backend API: getAllowedGenres(27) → [27] döner (strict mode, sadece Tasavvufi)
Refill API: Genre 27'den rastgele 10 şarkı çek → Queue'ya ekle
Sonuç: Queue 5 → 15 şarkı oldu, müzik hiç durmadı! ✅
Döngü: Queue tekrar 5'e indiğinde → Adım 3'e dön → Sonsuz loop!
Cami modunda çalarken SADECE Tasavvufi şarkılar gelir.
Rock, Metal, Pop hiçbir zaman queue'ya eklenemez çünkü getAllowedGenres(27) → [27]
📁 config/genre_groups.php oluştur
32 genre → 6 grup mapping, strict/flexible kurallar
🔧 app/Helpers/GenreHelper.php oluştur
getAllowedGenres(), getGenreGroup(), areCompatible() fonksiyonları
🧪 Test: Tasavvufi (27) strict isolation
getAllowedGenres(27) → [27] döndüğünü doğrula
🎛️ BusinessMusicController oluştur
getAllowedGenres(), refillQueue(), getGenreGroups() endpoints
🛣️ routes/api.php güncelle
/api/business/* route'ları ekle
🧪 Test: API endpoints
Postman ile GET/POST test et
🎵 player-core.js refillQueue() fonksiyonu
Queue <= 5 tetikleyici, genre analysis, API calls
🔄 Auto-refill loop implementasyonu
setInterval() ile queue kontrolü, automatic trigger
🧪 Test: Cami modu infinite play
15 şarkı başlat, 5'e düşünce refill olduğunu gör
🎨 Business mode selection sayfası
Cami, Meyhane, Rock Bar, Kafe, Restoran, Gym butonları
💾 LocalStorage preference kaydet
Kullanıcı bir kez seçsin, sonraki açılışlarda hatırlasın
🧪 Test: Tüm business categories
Her mod için genre mix'i doğrula
1. Cami modu seç
2. İlk 15 şarkı → Tamamı Tasavvufi (genre_id: 27)
3. Queue 5'e düşsün
4. Refill → Yine Tasavvufi
✅ Beklenen: ASLA Rock/Metal/Pop karışmaz
1. Kafe modu seç
2. İlk şarkılar: Blues, Indie, Folk (Grup 5)
3. Queue 5'e düşsün
4. Refill → Jazz, Classical da gelebilir (Grup 4 mix)
✅ Beklenen: Sakin + Kafe karışımı, Rock/İlahi YOK
1. Meyhane modu seç
2. İlk şarkılar: Halk, TSM, Türkçe (Grup 3)
3. Queue 5'e düşsün
4. Refill → Yine Türk müzikleri
✅ Beklenen: SADECE Türk müziği, İlahi/Rock YOK
1. Herhangi bir mod seç
2. Sabah 08:00 başlat
3. Hiç dokunma, bırak çalsın
4. Saat 16:00'da kontrol et
✅ Beklenen: 8 saat hiç durmadan çaldı
Senaryo: Tasavvufi genre'de sadece 8 şarkı var, queue sürekli aynı şarkıları çalar.
Çözüm: Backend API'de available_count bilgisi dön.
Eğer < 20 şarkı varsa kullanıcıya uyarı göster: "Bu kategoride az şarkı var, tekrar edebilir."
Senaryo: Refill API çağrısı 500 error döner, queue boşalır, müzik durur.
Çözüm: Frontend'de retry logic ekle. API 3 kez dene, başarısız olursa queue'daki eski şarkılardan rastgele ekle (fallback).
Senaryo: İşletme sahibi yanlışlıkla tarayıcı tab'ını kapatır, müzik durur.
Çözüm: beforeunload event'i ile kullanıcıya uyarı göster:
"Müzik durabilir, emin misiniz?"
Senaryo: Kafe'nin internet bağlantısı 5 dakika kesilir, yeni şarkı yükleyemez.
Çözüm: Queue her zaman minimum 15 şarkı tutsun (5'te refill, ama 10 ekle). 15 şarkı x 3dk ortalama = 45 dakika buffer → Internet döner.
Sabah 08-12: Sakin müzik, Öğle 12-17: Orta tempo, Akşam 17-23: Enerjik müzik. Otomatik geçiş.
Hangi saatlerde hangi genre çalındı? Müşteri yoğunluğu ile korelasyon? Veri analitiği.
"Sadece yavaş şarkılar" veya "Sadece hızlı şarkılar" seçeneği. BPM (Beats Per Minute) filtreleme.
İşletme sahibi belirli şarkıları/albümleri blacklist yapabilsin. "Bu şarkı asla çalmasın."
1. Genre uyumluluk sistemi ile skandal senaryoları engelledik (İlahi + Rock karışımı artık imkansız)
2. Mevcut 30K şarkılı database'i hiç değiştirmeden kullanıyoruz (Code-based config çözümü)
3. Infinite queue sistemi ile sınırsız otomatik müzik (Sabah başlat, akşama kadar çalar)
4. 4 fazlı implementation planı ile hatasız, temkinli ilerleme (Her faz test edilecek)
✅ Sistem hazır! Implementation'a başlayabilirsin.