Müzik türlerini oluşturun ve düzenleyin
Müzik türleri için hiyerarşik yapı, alt kategoriler, ikon ve renk atamaları ile görsel kategori yönetimi sunduk.
(Müzik Türü)
Müziğin stilini ve karakterini tanımlayan kategori.
Pop, Rock, Jazz, Klasik gibi
(Sınıflandırma Sistemi)
İçerikleri organize eden hiyerarşik yapı.
Ana tür altında alt türler
Admin panelden yeni bir tür eklediğinizde veya düzenlediğinizde arka planda şu işlemler gerçekleşir:
Admin paneldeki form alanları doldurulup "Kaydet" butonuna basıldığında, Livewire bileşeni AJAX isteği ile veriyi sunucuya gönderir. Sayfa yenilenmez, kullanıcı deneyimi kesintisiz devam eder.
Modules/Muzibu/App/Http/Livewire/Admin/GenreManageComponent.php
Tür adı, slug, ikon, renk gibi alanlar Laravel Validation kurallarıyla kontrol edilir. Slug benzersiz olmalı, ad minimum 2 karakter içermeli. Hatalı veri varsa kullanıcıya anında bildirilir.
$this->validate(['name' => 'required|min:2', 'slug' => 'required|unique:genres'])
Genre modeli üzerinden veritabanına INSERT (yeni) veya UPDATE (düzenleme) sorgusu yapılır. Parent_id varsa hiyerarşik yapı oluşturulur (ana tür → alt tür ilişkisi).
Modules/Muzibu/App/Models/Genre.php → genres tablosu
Şarkılar ve albümler türlerle BelongsToMany ilişkisi ile bağlıdır. Pivot tablo (genre_song, genre_album) üzerinden ilişkiler yönetilir. Bir şarkı birden fazla türe ait olabilir.
$genre->songs()->sync($songIds) - genre_song pivot tablosu
Tür listesi Redis'te önbelleklenmiştir. Güncelleme sonrası cache temizlenir ki kullanıcılar güncel listeyi görsün. Bu yapılmazsa eski veriler saatlerce gösterilmeye devam eder.
Cache::tags(['genres'])->flush()
İşlem tamamlandığında Livewire otomatik olarak tablo bileşenini yeniler. Toast notification ile başarı mesajı gösterilir. Admin panelde sayfa yenilemeden güncel liste görülür.
$this->dispatch('notify', ['message' => 'Tür kaydedildi'])