TAM TEŞEKKÜLLü YENİ TABLO YOK! 6 Ocak 2026

Tam Teşekküllü Dinamik Sistem

Sortable, Saat/Gün/Sektör/Tür Seçimi, Ana/İç Sayfa, Radio/Playlist/Album - Hepsi JSON!

Tablo Durumu: SADECE 2 YENİ TABLO!

✅ MEVCUT (Dokunmuyoruz)

muzibu_sectors
Cafe, Restaurant, Gym, SPA
muzibu_genres
Rock, Jazz, Pop, Classical (ZATENvar!)
muzibu_playlists
Tüm playlist'ler
muzibu_albums
Tüm albümler
muzibu_radios
Tüm radio'lar
muzibu_playlistables
Polymorphic pivot (sector/genre bağlantısı)

⭐ YENİ (Sadece 2 Tablo!)

1. muzibu_content_collections
• name, slug, type, icon, color
display_rules JSON (saat/gün/sektör/tür)
visibility_conditions JSON (auth/subscription)
placement_rules JSON (sayfa/konum/sıralama)
• priority, is_active
2. muzibu_collection_items
• collection_id (FK)
item_type (playlist/album/radio)
• item_id
position INT (sortable!)
🎉 TOPLAM: 2 Yeni Tablo, Tüm Özellikler JSON'da!
Tag/Category için yeni tablo YOK! Mevcut muzibu_genres kullanacağız.

📝 Basit Anlatım (Herkes İçin)

Tüm Dinamik Özellikler:

1. Sürükle-Bırak Sıralama
  • • Koleksiyonlar sürüklenip sıralanabilir (position)
  • • İçindeki playlist'ler sürüklenip sıralanabilir
  • • Real-time önizleme
2. Saat Aralığı Seçimi
  • • Başlangıç saati: 07:00
  • • Bitiş saati: 11:00
  • • Otomatik gösterim/gizleme
3. Gün Seçimi
  • • Checkbox: Pzt, Sal, Çar, Per, Cum, Cmt, Paz
  • • Sadece seçili günlerde göster
  • • Özel günler için tarih aralığı
4. Sektör Seçimi
  • • Cafe, Restaurant, Gym, SPA (checkbox)
  • • Boş = tüm sektörler
  • • Çoklu seçim mevcut
5. Tür (Genre) Seçimi
  • • Rock, Jazz, Pop, Classical (mevcut tablo!)
  • • Çoklu seçim
  • • Boş = tüm türler
6. Sayfa Seçimi
  • • Anasayfa (home)
  • • Sektör sayfası (sector_show)
  • • Playlist listesi (playlists_index)
  • • Album listesi, Radio listesi...
7. İçerik Tipi Seçimi
  • • Playlist seç (çoklu)
  • • Album seç (çoklu)
  • • Radio seç (çoklu)
  • • Hepsini karıştır!
8. Kullanıcı Koşulları
  • • Giriş yapmış/yapmamış
  • • Premium/Free/Corporate
  • • Minimum dinleme saati

🔧 Complete JSON Schema (Tüm Özellikler)

muzibu_content_collections (3 JSON Field)

{
  "collection_id": 1,
  "name": {"tr": "☕ Kahve Keyfi", "en": "Coffee Time"},
  "slug": {"tr": "kahve-keyfi", "en": "coffee-time"},
  "type": "sector_based",
  "icon": "fa-coffee",
  "color": "#f59f00",

  // ========== 1. DISPLAY RULES (Ne Zaman Göster?) ==========
  "display_rules": {
    // Saat Aralığı
    "time_range": {
      "start": "07:00",
      "end": "11:00"
    },

    // Gün Seçimi
    "days": ["Mon", "Tue", "Wed", "Thu", "Fri"],

    // Sektör Filtreleme (display için)
    "sectors": [1, 2],  // null = tüm sektörler

    // Tür (Genre) Filtreleme
    "genres": [5, 7, 9],  // null = tüm türler

    // Tarih Aralığı (Özel Günler)
    "date_range": {
      "start": "2026-01-01",
      "end": "2026-01-31"
    },

    // Özel Tarihler (Yılbaşı, Sevgililer Günü vb.)
    "special_dates": ["2026-12-31", "2026-02-14"],

    // Timezone
    "timezone": "Europe/Istanbul"
  },

  // ========== 2. VISIBILITY CONDITIONS (Kime Göster?) ==========
  "visibility_conditions": {
    // Giriş Gerekli mi?
    "auth_required": false,

    // Abonelik Tipleri
    "subscription_types": ["premium", "corporate"],  // null = hepsi

    // Kullanıcı Sektörü
    "user_sectors": [1, 2],  // null = hepsi

    // Minimum Abonelik Süresi (gün)
    "min_subscription_days": 7,

    // Minimum Dinleme Saati
    "min_listening_hours": 10,

    // Favori Türler (varsa)
    "favorite_genres": [5, 7],

    // Yakın Zamanda Dinledi mi?
    "recently_played": true
  },

  // ========== 3. PLACEMENT RULES (Nerede Göster?) ==========
  "placement_rules": {
    // Hangi Sayfalarda?
    "pages": [
      "home",              // Anasayfa
      "sector_show",       // Sektör detay (/sectors/cafe)
      "sector_index",      // Tüm sektörler
      "playlists_index",   // Playlist listesi
      "albums_index",      // Album listesi
      "radios_index",      // Radio listesi
      "genre_show",        // Tür sayfası (/genres/rock)
      "search_results"     // Arama sonuçları
    ],

    // Hangi Sektör Sayfalarında? (sector_show için)
    "sector_ids": [1, 2],  // null = tüm sektörlerde

    // Hangi Tür Sayfalarında? (genre_show için)
    "genre_ids": [5, 7],  // null = tüm türlerde

    // Sayfa İçinde Sıralama
    "position": 1,  // 1 = en üst, 2 = ikinci sıra...

    // Sayfa Bölgesi
    "zone": "main",  // "main", "sidebar", "footer"

    // Sticky (Üstte Sabitle)
    "is_sticky": false
  },

  "priority": 90,
  "is_active": true
}

muzibu_collection_items (Sortable İçerik)

// Playlist #15 eklendi (position 1)
{
  "id": 1,
  "collection_id": 1,
  "item_type": "playlist",
  "item_id": 15,
  "position": 1  // ⭐ Sortable!
}

// Album #8 eklendi (position 2)
{
  "id": 2,
  "collection_id": 1,
  "item_type": "album",
  "item_id": 8,
  "position": 2
}

// Radio #3 eklendi (position 3)
{
  "id": 3,
  "collection_id": 1,
  "item_type": "radio",
  "item_id": 3,
  "position": 3
}

// Sürükle-bırak ile position güncellenir!
// Admin panelde drag-drop ile: 3 → 1, 1 → 2, 2 → 3

Admin Panel Mockup (Tam Teşekküllü)

Saat Aralığı (Ne Zaman Gösterilsin?)

Otomatik: Saat 07:00-11:00 arasında gösterilir, diğer saatlerde gizlenir

Gün Seçimi (Hangi Günlerde?)

Sadece seçili günlerde gösterilir (Pazartesi-Cuma)

Tarih Aralığı (Özel Günler)

Örnek: Yılbaşı kampanyası için 25 Aralık - 2 Ocak arası

Tab 3: Sektör/Tür Kuralları

Sektör Filtreleme (Hangi Sektörlerde Gösterilsin?)

(Boş bırakılırsa tüm sektörlerde gösterilir)
Seçili: Sadece Cafe sektöründe gösterilecek

Tür (Genre) Filtreleme (Hangi Türler İçin?)

(Boş = tüm türler)
İşaretli değil → Tüm türlerde gösterilecek

Tab 5: Sayfa Yerleşimi (Nerede Gösterilsin?)

Hangi Sayfalarda Gösterilsin?

Seçili: Anasayfa ve Sektör Sayfası'nda gösterilecek

Sayfa İçinde Sıralama (Position)

1 = En üstte (ilk sıra)
2 = İkinci sıra
3 = Üçüncü sıra...
Alternatif: Koleksiyonlar listesinde sürükle-bırak ile de sıralayabilirsiniz

Sayfa Bölgesi (Zone)

Tab 6: İçerik Seçimi (Sortable Drag & Drop!)

Mevcut İçerikler

Morning Jazz Cafe
Playlist • 25 songs
Bossa Nova Morning
Playlist • 30 songs
Cafe Vibes Vol.1
Album • 12 tracks

Koleksiyondaki İçerikler

15
Sürükle-bırak ile sıralayabilirsiniz!
1
Morning Jazz Cafe
Playlist • 25 songs
2
Bossa Nova Morning
Playlist • 30 songs
3
Cafe Vibes Vol.1
Album • 12 tracks
Otomatik Kayıt: Sürükle-bırak ile sıralama değiştiğinde position field'ı otomatik güncellenir (AJAX)
🎉

Tam Teşekküllü Sistem - SADECE 2 YENİ TABLO!

Tüm dinamik özellikler JSON field'larda, Sortable UI, Her şey kontrol altında!

📊
2 Yeni Tablo
content_collections
+ collection_items
🎨
3 JSON Field
display_rules
visibility_conditions
placement_rules
⚙️
8+ Özellik
Saat/Gün/Sektör/Tür
Sayfa/Sortable/Kullanıcı
🚀
Tam Dinamik
Admin panel'den
tüm kontrol
Mevcut Tablolardan Yararlanıyoruz:
muzibu_sectors (Cafe, Restaurant...)
muzibu_genres (Rock, Jazz, Pop...)
muzibu_playlists, muzibu_albums, muzibu_radios
muzibu_playlistables (polymorphic pivot)