Sortable, Saat/Gün/Sektör/Tür, Ana/İç Sayfa, Radio/Playlist/Album - Sadece Main İçerik Alanı!
muzibu_genres kullanacağız.
{
"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...
// ❌ "zone" field KALDIRILDI - Sadece main content area kullanılıyor!
// Sticky (Üstte Sabitle)
"is_sticky": false
},
"priority": 90,
"is_active": true
}
v1'de "zone": "main" field'ı vardı. v2'de bu alan tamamen kaldırıldı.
Sebep: Sistem sadece main (ana içerik) alanında kullanılacak. Sidebar veya footer için bu çözüm kullanılmayacak, dolayısıyla zone seçimi gereksiz.
// 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
v1'de sayfa bölgesi seçimi vardı: main, sidebar, footer
Bu sistem sadece main (ana içerik) alanında kullanılacak. Sidebar veya footer için bu çözüm uygulanmayacak.
Dolayısıyla zone seçimi gereksiz olduğu için v2'de kaldırıldı. Tüm koleksiyonlar otomatik olarak ana içerik alanında gösterilir.
position field'ı otomatik güncellenir (AJAX)
Tüm dinamik özellikler JSON field'larda, Zone kaldırıldı, Sadece Main Alan!
muzibu_sectors (Cafe, Restaurant...)muzibu_genres (Rock, Jazz, Pop...)muzibu_playlists, muzibu_albums, muzibu_radiosmuzibu_playlistables (polymorphic pivot)