Kullanıcıların kendi çalma listelerini oluşturması, şarkı eklemesi ve paylaşması.
Playlist ve Song arasındaki ilişkiyi tutan ara tablo. Sıralama ve eklenme tarihi bilgilerini saklar.
Kullanıcı şarkıları sürükleyip bırakarak sıralayabilir.
sort_order değerleri otomatik güncellenir.
Siz bir playlist oluşturup şarkı eklediğinizde sistem şu işlemleri otomatik yapar:
Playlist başlığı, açıklaması ve gizlilik ayarlarıyla birlikte playlists tablosuna kayıt oluşturulur. Slug otomatik üretilir (örn: "Favorilerim" → "favorilerim").
Her şarkı eklendiğinde playlist_songs pivot tablosuna kayıt oluşturulur. Bu kayıt playlist_id, song_id ve sıra numarasını (sort_order) tutar.
Playlist'e erişim sağlandığında visibility değeri kontrol edilir. "private" ise sadece sahip görebilir, "unlisted" ise linki bilen, "public" ise herkes erişebilir.
Şarkılar sürüklenip bırakıldığında JavaScript tüm şarkıların yeni sıralarını toplar ve tek bir AJAX isteğiyle sunucuya gönderir. Sunucu sort_order değerlerini toplu günceller.
Şarkı eklenip çıkarıldığında song_count ve total_duration alanları otomatik güncellenir. Bu sayede her seferinde hesaplama yapılmaz, hazır veri gösterilir.
Playlist oynatıldığında play_count değeri artırılır. Bu sayede "En Çok Dinlenenler" listesi oluşturulabilir. Redis ile anlık güncellenir, periyodik olarak veritabanına yazılır.