Ne Yapıyoruz?
Muzibu orta alanını (main) saate, sektöre ve gösterildiği 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 gösterilir.
Kullanıcı sayfayı açık bıraksa bile her saat başı içerik otomatik güncellenir, müzik kesilmez.
Sayfa Yapısı YENİ
Koleksiyon sistemi bu sayfalarda çalışacak:
| Sayfa | URL | Alt Sayfa | visibility_rules Key |
|---|---|---|---|
| Anasayfa | / | Yok (tek sayfa) | sector_ids (kullanıcı filtresi) |
| Sektörler | /sectors/{slug} | Her sektörün kendi sayfası var | sector_ids → hangi sektör sayfalarında |
| Türler | /genres/{slug} | Her genre'nin kendi sayfası var | genre_ids → hangi genre sayfalarında |
| Radyolar | /radios | Yok (tek sayfa) | Yok — show_on: ["radio"] yeterli |
/sectors/{slug}/radios, /sectors/{slug}/playlists) kalkacak. Her sektörün sadece tek bir ana sayfası olacak: /sectors/{slug}
Fallback Sistemi YENİ
Her sayfa için: koleksiyon atanmamışsa mevcut görünüm aynen korunur. Bir tane bile koleksiyon atanırsa → o sayfa koleksiyon sistemine geçer.
{{-- Koleksiyon sistemi --}}
@else
{{-- Mevcut görünüm (fallback) --}}
@endif
Her Koleksiyonun 3 Sorusu
Admin bir koleksiyon oluştururken şu 3 şeyi ayarlar. Tasarım otomatik belirlenir.
show_ondisplay_rulesvisibility_rules + corporate_account_idvisibility_rules Detayı
Tek bir JSON kolon, tüm filtreleri kapsar. Sayfa yapısına göre 2 key kullanılır:
Sektör sayfasında: Bu sektör sayfalarında görünür.
Örn: Kafe + Restoran sektörüne özel koleksiyon.
Örn: Rock + Jazz sayfalarında "Akustik Seçmeler" koleksiyonu.
/radios), alt sayfası yok. show_on: ["radio"] ile tüm radyo sayfasında gösterilir, filtrelemeye gerek yok.
Kullanılacak Kartlar
Yeni kart yapılmayacak. Mevcut component'ler aynen kullanılacak:
| Component | Ne İçin | Tıklanınca | Tasarım |
|---|---|---|---|
| x-muzibu.playlist-card | Çalma listesi | Şarkı listesi açılır | Yatay kaydırma |
| x-muzibu.album-card | Albüm | Albüm detayı açılır | Yatay kaydırma |
| x-muzibu.radio-card | Radyo | Hemen çalar (sayfa değişmez) | Yatay kaydırma |
| x-muzibu.genre-quick-card | Tür | Genre sayfası açılır | Grid |
| x-muzibu.sector-card | Sektör | Sektör sayfası açılır | Yatay kaydırma |
Kart Sayısı ve "Tümünü Gör"
Tablo 1: muzibu_content_collections
Her satır bir koleksiyon. Admin panelden oluşturulur.
| Kolon | Tip | Ne İşe Yarar | Örnek |
|---|---|---|---|
| collection_id | BIGINT PK | Otomatik numara | 1, 2, 3 |
| title | JSON | Koleksiyon adı (çoklu dil) | {"tr": "Sabah Kafe Mix"} |
| slug | JSON | URL kısa ismi | {"tr": "sabah-kafe-mix"} |
| description | JSON NULL | Açıklama (opsiyonel) | {"tr": "Sabah için..."} |
| show_on | JSON | NEREDE: Hangi sayfa tiplerinde? | ["homepage", "sector", "radio", "genre"] |
| display_rules | JSON NULL | NE ZAMAN: Saat + gün kuralı | {"start_hour":6, "end_hour":12, "is_always":false} |
| visibility_rules | JSON NULL | KİME: Sektör + genre filtresi (tek yerde) | {"sector_ids":[1]} veya {"genre_ids":[5,8]} veya {"show_to_all":true} |
| corporate_account_id | FK NULL | KİME (firma): NULL = herkes, dolu = firmaya özel | NULL veya 5 |
| icon | VARCHAR NULL | Başlık ikonu | fas fa-coffee |
| color | VARCHAR NULL | Renk kodu | #f59e0b |
| media_id | FK NULL | Kapak görseli | 42 |
| sort_order | INT | Sıralama (küçük = üstte) | 1, 2, 3 |
| is_active | BOOLEAN | Açık / Kapalı | 1 |
Tablo 2: muzibu_collection_items
Her satır, bir koleksiyona eklenmiş bir öğe.
| Kolon | Tip | Ne İşe Yarar | Örnek |
|---|---|---|---|
| id | BIGINT PK | Otomatik numara | 1, 2, 3 |
| collection_id | FK | Hangi koleksiyona ait | 1 |
| itemable_type | VARCHAR | Öğe türü (5 seçenek) | playlist, album, radio, genre, sector |
| itemable_id | BIGINT | Öğenin ID'si | 12 |
| sort_order | INT | Sıralama (sürükle-bırak) | 1, 2, 3 |
| is_active | BOOLEAN | Aktif mi? | 1 |
Ek: users Tablosuna Eklenen Kolon
| Kolon | Tip | Ne İşe Yarar | Örnek |
|---|---|---|---|
| sector_id | FK NULL | Kullanıcının sektörü. Kafe sahibi = Kafe koleksiyonlarını görür. | 1 |
Admin Panelde Ne Yapılacak?
Sektöre göre → sektör seç (Kafe, Spor Salonu...) — anasayfada kullanıcı filtresi + sektör sayfasında sayfa filtresi
Genre'a göre → genre seç (Rock, Jazz...) — genre sayfasında sayfa filtresi
Firmaya özel → corporate hesap seç
Sitede Ne Olacak?
Senaryo Örnekleri YENİ
Referans: Şu Anki Sayfa Görünümleri (Fallback Değerleri)
| Sayfa | Mevcut İçerik | Kart / Tasarım |
|---|---|---|
| Anasayfa | Türler (15, grid) + Playlistler (10, yatay) + Albümler (10, yatay) + Radyolar (10, yatay) + Sektörler (10, yatay) | 5 bölüm, 55 kart toplam |
| /sectors/{slug} | O sektöre ait radyolar (10) + playlistler (10) | 2 bölüm, yatay kaydırma |
| /genres/{slug} | O türe ait playlistler | Hero + playlist listesi |
| /radios | Tüm radyolar listesi | Grid/liste görünüm |
Versiyon Geçmişi
Teknik detaylar, kod örnekleri ve tüm kararlar için:
Tam Dokümantasyon (v10)Not: v10 henüz v6 değişikliklerini içermiyor, güncellenecek.