Fade-out: 25. saniyede volume 1.0'dan 0.0'a 5 saniyede linear geçiş
Modal tetik: 30. saniyede Howler onEnd event
Overlay: rgba(0,0,0,0.8) dark backdrop
Animation: fadeIn + scale 0.3s ease
Kontrol: Her şarkı başlamadan önce API'den user.daily_listening_seconds kontrol
Limit: 3600 saniye (1 saat)
Reset: Cron job ile her gece 00:00'da sıfırlama
Modal tetik: Player play() fonksiyonu içinde kontrolle engelleme
Guest countdown: JavaScript setInterval ile gerçek zamanlı sayaç (30'dan geriye)
Member remaining: (3600 - daily_listening_seconds) / 60 (dakika)
Update: Her timeupdate event'inde güncelleme
Component: resources/views/themes/muzibu/components/player.blade.php
| Kullanıcı | E-posta | Üyelik Tipi | Bugün Dinleme | İşlemler | |
|---|---|---|---|---|---|
| Ahmet Yılmaz | ahmet@example.com | 👤 Normal Üye | 42 dk / 60 dk | ||
| Mehmet Demir | mehmet@example.com | 💎 Premium | Sınırsız | ||
| Ayşe Kaya | ayse@example.com | 🎁 Deneme (5 gün) | Sınırsız | ||
| Zeynep Şahin | zeynep@example.com | 👤 Normal Üye | 60 dk / 60 dk (DOLDU) |
Component: Modules/UserManagement/app/Http/Livewire/UserManageComponent.php
Bulk actions: Livewire wire:model ile checkbox selection
Premium toggle: user.is_premium = !user.is_premium
Trial assign: user.trial_ends_at = now()->addDays(7)