Planlama

Öne Çıkan Playlist & Radio Sistemi

Admin Panelinde "Öne Çıkan İçerik" Seçimi (Song Pattern Klonu)

11 Ocak 2026

Basit Anlatım (Herkes İçin)

Site ana sayfasında sidebar'da **"Popüler Playlistler"** ve **"Popüler Radyolar"** bölümü olacak. Admin panelinde playlist veya radyo düzenlerken **"☑ Öne Çıkan"** kutucuğunu işaretleyecek, işaretlenen içerikler sidebar'da gösterilecek.

Nasıl Çalışacak?

  • Admin playlist düzenlerken "Öne Çıkan" checkbox'ı işaretler
  • Admin radyo düzenlerken "Öne Çıkan" checkbox'ı işaretler
  • Ana sayfada sidebar'da sadece öne çıkan içerikler gösterilir
  • Hem sistem hem kullanıcı playlistleri öne çıkan olabilir

Referans:

Şarkılarda zaten is_featured sistemi var. Aynı pattern playlist ve radio'ya uygulanacak.

Teknik Detaylar (Geliştiriciler İçin)

📊 Referans Pattern: Songs

Şarkılarda zaten mevcut olan is_featured sistemi:

1. Database Field

is_featured tinyint(1) NOT NULL DEFAULT 0, INDEX (is_featured)

2. Model (Song.php)

protected $fillable = [..., 'is_featured'];
protected $casts = ['is_featured' => 'boolean'];

public function scopeFeatured($query) {
    return $query->where('is_featured', true);
}

3. Admin Checkbox (song-manage-component.blade.php:315-324)

<div class="pretty p-default p-curve p-toggle p-smooth">
    <input type="checkbox" wire:model="inputs.is_featured" />
    <div class="state p-warning p-on">
        <label>Öne Çıkan</label>
    </div>
</div>

🎯 Uygulanacak Pattern

Playlists

  • ✅ DB: is_featured field ekle
  • ✅ Model: fillable, cast, scope
  • ✅ Admin: "Öne Çıkan" checkbox
  • ✅ Frontend: Featured playlists filter

Radios

  • ✅ DB: is_featured field ekle
  • ✅ Model: fillable, cast, scope
  • ✅ Admin: "Öne Çıkan" checkbox
  • ✅ Frontend: Featured radios filter

📁 Etkilenecek Dosyalar

Playlist Dosyaları

Migration (Central + Tenant):

  • Modules/Muzibu/database/migrations/2026_01_11_xxx_add_is_featured_to_playlists.php
  • Modules/Muzibu/database/migrations/tenant/2026_01_11_xxx_add_is_featured_to_playlists.php

Model:

  • Modules/Muzibu/App/Models/Playlist.php (fillable, cast, scopeFeatured)

Admin Panel:

  • Modules/Muzibu/resources/views/admin/livewire/playlist-manage-component.blade.php
  • Modules/Muzibu/App/Http/Livewire/Admin/PlaylistManageComponent.php

Translation:

  • Modules/Muzibu/resources/lang/tr/admin.php (featured, not_featured)

Radio Dosyaları

Migration (Central + Tenant):

  • Modules/Muzibu/database/migrations/2026_01_11_xxx_add_is_featured_to_radios.php
  • Modules/Muzibu/database/migrations/tenant/2026_01_11_xxx_add_is_featured_to_radios.php

Model:

  • Modules/Muzibu/App/Models/Radio.php (fillable, cast, scopeFeatured)

Admin Panel:

  • Modules/Muzibu/resources/views/admin/livewire/radio-manage-component.blade.php
  • Modules/Muzibu/App/Http/Livewire/Admin/RadioManageComponent.php

Translation:

  • Modules/Muzibu/resources/lang/tr/admin.php (featured, not_featured)

Yapılacaklar (Adım Adım)

1. PLAYLIST - is_featured Ekleme

1

Migration Oluştur (Central + Tenant)

$table->boolean('is_featured')->default(false)->after('is_radio')->index();
2

Playlist Model Güncelle

  • fillable: is_featured ekle
  • casts: 'is_featured' => 'boolean'
  • scopeFeatured() method ekle
3

Admin Checkbox Ekle (playlist-manage-component.blade.php)

Song'daki checkbox'ın aynısını kopyala, "Öne Çıkan" label'ı ile

4

Translation Ekle (tr/admin.php)

'playlist.featured' => 'Öne Çıkan',
'playlist.not_featured' => 'Normal',
5

Migration Çalıştır

php artisan tenants:migrate --force

2. RADIO - is_featured Ekleme

1

Migration Oluştur (Central + Tenant)

$table->boolean('is_featured')->default(false)->after('is_active')->index();
2

Radio Model Güncelle

  • fillable: is_featured ekle
  • casts: 'is_featured' => 'boolean'
  • scopeFeatured() method ekle
3

Admin Checkbox Ekle (radio-manage-component.blade.php)

Song'daki checkbox'ın aynısını kopyala, "Öne Çıkan" label'ı ile

4

Translation Ekle (tr/admin.php)

'radio.featured' => 'Öne Çıkan',
'radio.not_featured' => 'Normal',
5

Migration Çalıştır

php artisan tenants:migrate --force

3. TEST & DOĞRULAMAh3>
1

Admin Panel Test

  • • Playlist düzenle → "Öne Çıkan" checkbox görünüyor mu?
  • • Radio düzenle → "Öne Çıkan" checkbox görünüyor mu?
  • • Kaydet → Database'e kaydediliyor mu?
2

Database Kontrol

SELECT playlist_id, title, is_featured FROM muzibu_playlists WHERE is_featured=1;
SELECT radio_id, title, is_featured FROM muzibu_radios WHERE is_featured=1;
3

Model Scope Test

Playlist::featured()->get();  // Öne çıkanları getir
Radio::featured()->get();     // Öne çıkanları getir

Beklenen Sonuç

İşlem tamamlandığında admin panelinde playlist ve radyo düzenlerken "Öne Çıkan" checkbox'ı görünecek. İşaretlenen içerikler frontend'te sidebar'da gösterilmeye hazır olacak.

Playlist

  • is_featured field eklendi
  • ✅ Admin checkbox çalışıyor
  • Playlist::featured() scope çalışıyor
  • ✅ Sidebar'da gösterilmeye hazır

Radio

  • is_featured field eklendi
  • ✅ Admin checkbox çalışıyor
  • Radio::featured() scope çalışıyor
  • ✅ Sidebar'da gösterilmeye hazır

Frontend Entegrasyon

Sidebar widget oluşturulduğunda şu şekilde kullanılacak:

$featuredPlaylists = Playlist::featured()->active()->limit(5)->get();
$featuredRadios = Radio::featured()->active()->limit(5)->get();