Ne Yapıyoruz?
Muzibu anasayfasının orta alanını (main) saate, sektöre ve sayfaya göre değişen bir sisteme çeviriyoruz.
Admin panelden "Koleksiyon" denen gruplar oluşturulacak. Her koleksiyonun içine Playlist, Albüm, Radyo, Genre veya Sektör eklenebilecek.
Örnek: "Sabah Kafe Mix" koleksiyonu → sadece 06:00-12:00 arası, sadece anasayfada, sadece Kafe sektörüne, yatay kaydırma tasarımıyla gösterilir.
Kullanıcı sayfayı açık bıraksa bile her saat başı içerik otomatik güncellenir, müzik kesilmez.
Her Koleksiyonun 4 Sorusu
Admin bir koleksiyon oluştururken şu 4 şeyi ayarlar:
show_ondisplay_rulessector_rulestemplateTasarım Seçenekleri
Admin her koleksiyon için tasarım seçer. Şu an 2 tasarım var, ileride yenileri eklenebilir:
grid — Grid Görünüm┌───────┬───────┬───────┬───────┐ │ Pop │ Rock │ Jazz │ R&B │ ├───────┼───────┼───────┼───────┤ │ Metal │ Türkü │ Caz │ Dance │ └───────┴───────┴───────┴───────┘
horizontal-scroll — Yatay KaydırmaBaşlık Tümü › ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ → │ │ │ │ │ │ │ │ │ img │ │ img │ │ img │ │ img │ │ │ │ │ │ │ │ │ └─────┘ └─────┘ └─────┘ └─────┘ Ad Ad Ad Ad
İleride yeni tasarımlar (örn: büyük banner, carousel, mini liste) kolayca eklenebilir — DB'de VARCHAR olarak saklanıyor.
Tablo 1: muzibu_content_collections (Koleksiyonlar)
Her satır bir koleksiyon. Admin panelden oluşturulur.
| Kolon | Ne İşe Yarar | Örnek |
|---|---|---|
| collection_id | Otomatik numara (ID) | 1, 2, 3... |
| title | Koleksiyon adı (çoklu dil) | {"tr": "Sabah Kafe Mix"} |
| slug | URL'de kullanılan kısa isim | {"tr": "sabah-kafe-mix"} |
| description | Açıklama (opsiyonel) | {"tr": "Sabah saatleri için..."} |
| show_on YENİ | Hangi sayfalarda görünsün? Birden fazla seçilebilir |
["homepage", "sector"] |
| template YENİ | Hangi tasarımla görünsün? İleride yeni tasarımlar eklenebilir |
grid, horizontal-scroll |
| icon | Başlığın yanındaki ikon | fas fa-coffee |
| color | Renk kodu | #f59e0b |
| media_id | Kapak görseli | 42 |
| display_rules | Hangi saatlerde görünsün? start_hour, end_hour, günler, her zaman mı? |
{"start_hour": 6, "end_hour": 12, "is_always": false} |
| sector_rules | Hangi sektörlere görünsün? Herkese mi, belirli sektörlere mi? |
{"show_to_all": false, "mode": "include", "sector_ids": [1,3]} |
| business_rules | Abonelik kuralı premium, free, corporate, hepsi |
{"subscription": "all"} |
| sort_order DEĞİŞTİ | Sıralama (küçük = üstte) Eski adı: priority. Artık projede standart sort_order kullanılıyor. |
1, 2, 3... |
| is_active | Açık/Kapalı | 1 |
Tablo 2: muzibu_collection_items (Koleksiyon İçerikleri)
Her satır, bir koleksiyona eklenmiş bir öğe. Aynı koleksiyona Radyo + Playlist + Albüm karışık eklenebilir.
| Kolon | Ne İşe Yarar | Örnek |
|---|---|---|
| id | Otomatik numara | 1, 2, 3... |
| collection_id | Hangi koleksiyona ait | 1 (Sabah Kafe Mix) |
| itemable_type | Eklenen şeyin türü (5 seçenek) | playlist, album, radio, genre, sector |
| itemable_id | Eklenen şeyin ID'si | 12 (playlist_id=12) |
| sort_order DEĞİŞTİ | Sıralama (sürükle-bırak) Eski adı: position | 1, 2, 3... |
| is_active | Bu öğe aktif mi? | 1 |
Ek: users Tablosuna Eklenen Kolon
| Kolon | Ne İşe Yarar | Örnek |
|---|---|---|
| sector_id | Kullanıcının sektörü. Bu sayede "Kafe sahibi" ayrı, "Spor salonu sahibi" ayrı içerik görür. | 1 (Kafe & Restoran) |
Admin Panelde Ne Yapılacak?
Sitede Ne Olacak?
Playlist / Albüm → şarkı listesi sayfası açılır
Genre / Sektör → ilgili sayfa açılır
v1 → v2 Değişiklikler
type ENUM — gereksiz, filtreleme zaten JSON kurallarla yapılıyoris_featured — type kaldırılınca bu da gereksizcache_ttl — DB'de yeri yok, kodda sabitshow_on JSON — hangi sayfalarda görünsün (homepage, sector, genre...)template VARCHAR — tasarım seçimi (grid, horizontal-scroll, ileride daha fazla)priority → sort_order — proje standardına uyum, küçük = üstteposition → sort_order — items tablosunda da aynı isimTeknik detaylar, kod örnekleri ve tüm kararlar için:
Tam Dokümantasyon (v10)Not: v10 henüz bu v2 değişikliklerini içermiyor, güncellenecek.