Albüm oluşturma, sanatçı profilleri ve içerik organizasyonu.
Şarkılar tek başına anlamsızdır. Albümler şarkıları bir araya getirir, sanatçılar ise bu içeriklerin sahiplerini temsil eder. Spotify'da gördüğünüz sanatçı sayfaları ve albüm kartları işte bu sistem sayesinde oluşur.
Bir sanatçıya tıklayınca tüm albümlerini ve şarkılarını görebilirsiniz. Bir albüme tıklayınca o albümdeki tüm şarkılar sırayla çalınır.
Bir albüm oluşturduğunuzda sistem şunları yapar:
Albüm için kapak yüklersiniz. Sistem farklı boyutlarda kopyalar oluşturur.
Albümün çıkış yılı. "Yeni Çıkanlar" listelerinde kullanılır.
Albümdeki şarkıların sırası. Sürükle-bırak ile ayarlanır.
Albüm, Single veya EP olarak işaretlenebilir.
Her sanatçı için zengin bir profil sayfası oluşturulur:
Sanatçının görseli. Farklı boyutlar otomatik oluşturulur.
Sanatçı hakkında bilgi. Birden fazla dilde yazılabilir.
Sanatçının ülkesi. "Türk Sanatçılar" gibi filtrelerde kullanılır.
Resmi sanatçı hesapları mavi tik alır.
Bir şarkıda birden fazla sanatçı olabilir (feat. durumu). Sistem bunu "song_artists" adlı ara tablo ile yönetir. Böylece "Tarkan feat. Ajda Pekkan" gibi ortak çalışmalar doğru gösterilir.
Sanatçının kaç şarkısı var, toplam dinlenme sayısı, en popüler şarkıları gibi bilgiler otomatik hesaplanır.
Sanatçı sayfası ilk açıldığında bilgiler önbelleğe alınır. Sonraki ziyaretlerde anında yüklenir.
Albüm veya sanatçı oluşturduğunuzda sistem şu işlemleri gerçekleştirir:
"Tarkan" → "tarkan", "Yeni Albüm 2026" → "yeni-album-2026" şeklinde URL-dostu isim oluşturulur. Türkçe karakterler dönüştürülür. Aynı slug varsa sonuna numara eklenir (tarkan-2).
Yüklenen kapak/profil görseli Spatie Media Library ile işlenir. 50x50, 150x150, 300x300, 600x600 boyutlarında thumbnail'ler otomatik oluşturulur. WebP formatına dönüştürülür (daha küçük boyut). Orjinal dosya da saklanır.
Albüme şarkı eklendiğinde album_songs pivot tablosuna kayıt yazılır. Şarkıya sanatçı eklendiğinde song_artists tablosuna yazılır. Eloquent'in sync() ve attach() metodları bu işlemi kolaylaştırır. Sıralama bilgisi de (order) pivot'ta saklanır.
Sanatçının toplam şarkı sayısı, toplam dinlenme sayısı, albüm sayısı gibi istatistikler hesaplanır. Bu değerler önbelleğe alınır (Redis). Yeni şarkı eklendiğinde cache invalidate edilir ve tekrar hesaplanır.
Sanatçı biyografisi, albüm açıklaması gibi metin alanları birden fazla dilde girilebilir. Spatie Translatable paketi ile JSON formatında saklanır: {"tr": "Türkçe metin", "en": "English text"}. Site dili değiştiğinde otomatik doğru dil gösterilir.
İlgili tüm Redis önbellekleri temizlenir: sanatçı sayfası, albüm sayfası, ana sayfa listesi, "Yeni Çıkanlar", "Popüler Sanatçılar". Sonraki ziyarette güncel verilerle yeniden oluşturulur.