Mevcut Durum, Sorunlar ve Cozum Onerisi
30 Aralik 2025
Su anda IKI FARKLI SISTEM ayni anda calisiyor. Yeni playlistables tablosu
olusturuldu ve veri tasindi, ancak modeller ve admin paneli hala ESKi pivot tabloLarini kullaniyor.
muzibu_playlist_sector (71 kayit)muzibu_playlist_radio (90 kayit)muzibu_playlistables (161 kayit)| Tur | Sahiplik | Dagitim | Gizlilik | Kullanim |
|---|---|---|---|---|
| Sistem Playlist | user_id = NULLis_system = 1 |
✓ playlistables ile Sector, Radio, Corporate |
✓ Public | Admin olusturur Herkes gorur |
| Kisisel Playlist (My Playlists) |
user_id = Xis_system = 0 |
✗ Dagitilmaz Sadece sahibine ait |
✓ Ayarlanabiliris_public |
Kullanici olusturur Kendi listesi |
| Kurumsal Playlist | user_id = NULLis_system = 1 |
✓ playlistables ile Corporate'a ozel |
✗ Private Sadece o firma |
Admin olusturur Firma gorur |
Kisisel playlist'ler icin user_id kullanmak DOGRU yaklasim.
playlistable sistemi DAGITIM icindir, sahiplik icin degil.
Playlist::where('user_id', $userId)
// Kisisel playlist olusturma
$playlist = Playlist::create([
'user_id' => auth()->id(), // ← SAHIPLIK
'title' => ['tr' => 'Benim Listem'],
'is_system' => false,
'is_public' => false, // ← Gizli
]);
// Kullanicinin playlist'lerini cekme
$myPlaylists = Playlist::where('user_id', auth()->id())->get();
// Public kisisel playlist'ler (baskalarinin gorebilecegi)
$publicPlaylists = Playlist::where('is_public', true)
->whereNotNull('user_id')
->get();
┌─────────────────────────────────────────────────────────────────────────────────┐
│ MUZIBU PLAYLISTS │
├─────────────────────────────────────────────────────────────────────────────────┤
│ playlist_id | user_id | title | is_system | is_public | is_radio │
├─────────────┬─────────┬────────────┬───────────┬───────────┬────────────┤
│ 1 │ NULL │ Pop Hits │ 1 │ 1 │ 0 │ ← Sistem
│ 2 │ NULL │ Chill Mix │ 1 │ 1 │ 0 │ ← Sistem
│ 3 │ 5 │ Gym Music │ 0 │ 0 │ 0 │ ← Kisisel (User 5)
│ 4 │ 5 │ Road Trip │ 0 │ 1 │ 0 │ ← Kisisel (Public)
│ 5 │ 8 │ Study │ 0 │ 0 │ 0 │ ← Kisisel (User 8)
└─────────────┴─────────┴────────────┴───────────┴───────────┴────────────┘
│
┌─────────────────┼─────────────────┐
│ │
▼ ▼
┌───────────────────────────────┐ ┌───────────────────────────────┐
│ PLAYLISTABLES (DAGITIM) │ │ PLAYLIST_SONG (SARKILAR) │
├───────────────────────────────┤ ├───────────────────────────────┤
│ playlist_id │ type │ id │ │ playlist_id │ song_id │ pos │
├─────────────┼──────────┼──────┤ ├─────────────┼─────────┼─────┤
│ 1 │ sector │ 2 │ │ 1 │ 101 │ 1 │
│ 1 │ sector │ 5 │ │ 1 │ 102 │ 2 │
│ 1 │ radio │ 3 │ │ 1 │ 103 │ 3 │
│ 2 │ corporate│ 1 │ │ 3 │ 201 │ 1 │
└─────────────┴──────────┴──────┘ └─────────────┴─────────┴─────┘
Sistem playlist (1,2) → playlistables ile DAGITILIR
Kisisel playlist (3,4,5) → user_id ile SAHIPLIK belirlenir
Modeller hala eski pivot tablolarini kullaniyor. Admin'den yapilan islemler playlistables'a YAZILMIYOR.
| Dosya | Mevcut Durum | Kullanilan Tablo | Aksiyon |
|---|---|---|---|
Sector.php |
✗ Eski sistem | muzibu_playlist_sector |
HasPlaylistDistribution trait ekle |
Radio.php |
✗ Eski sistem | muzibu_playlist_radio |
HasPlaylistDistribution trait ekle |
MuzibuCorporateAccount.php |
? Kontrol gerekli | ? | HasPlaylistDistribution trait ekle |
SectorManageComponent.php |
✓ Calisiyor | Model'e bagli | Model guncellenince otomatik calisir |
RadioManageComponent.php |
✓ Calisiyor | Model'e bagli | Model guncellenince otomatik calisir |
Mutlu, Huzunlu, Enerjik, Romantik vb. Playlist'ler mood'a gore kategorize edilir.
Pop, Rock, Jazz, Elektronik vb. Genre sayfalarina ozel playlist onerileri.
Sabah, Ogle, Aksam, Gece. Saate gore otomatik playlist onerileri.
Yilbasi, Sevgililer Gunu, Bayram vb. Ozel gunlere playlist dagitimi.
Spor, Calisma, Meditasyon, Yolculuk. Aktiviteye uygun playlist'ler.
Ozel mekanlar, zincirlere ozel playlist dagitimi. (Kurumsal++)
Eski playlists() metodunu kaldir, HasPlaylistDistribution trait ekle.
// Sector.php
use HasPlaylistDistribution;
// Eski metodu SIL:
// public function playlists() { ... }
Ayni islem Radio icin de yapilmali.
// Radio.php
use HasPlaylistDistribution;
// Eski metodu SIL:
// public function playlists() { ... }
MuzibuCorporateAccount modelinde HasPlaylistDistribution trait varmi kontrol et.
Admin panelden Sector/Radio duzenle, playlist ekle/cikar, kayitlarin playlistables tablosuna gitmesini dogrula.
Her sey calistiginda eski pivot tablolarini silebilirsin:
DROP TABLE muzibu_playlist_sector;
DROP TABLE muzibu_playlist_radio;