1. Play butonuna tıklayınca şarkı 30 saniye çalmaya başlıyor
2. 30 saniye sonunda şarkı fade-out ile duruyor (3 saniye yumuşak geçiş)
3. Guest Modal açılıyor: "Kayıt olun, tam dinleyin" mesajı
4. Modal'da iki seçenek: "Kayıt Ol" veya "Giriş Yap" butonları
📍 Kod Konumu: play-limits.js:102-106 (Guest 30s checker)
📍 Modal: play-limits.js:182-233 (handleGuestLimit)
1. Play butonuna tıklayınca şarkı 30 saniye çalmaya başlıyor
2. Backend her 5 saniyede bir progress tracking yapıyor
3. 30 saniye sonunda şarkı pause ile duruyor
4. Member Limit Modal açılıyor: "Premium'a geçin" mesajı
📍 Kod Konumu: SongStreamController.php:77 (isPremiumOrTrial check)
📍 Preview Response: SongStreamController.php:298-347
Mevcut sistemde kullanıcı önce dinliyor, sonra engelleniyordu. Bu yaklaşım kullanıcının dinleme beklentisi oluşturduğu için hayal kırıklığı yaratıyor. Ayrıca kayıt olma motivasyonu düşük çünkü zaten 30 saniye dinleyebiliyorlar.
1. Play butonuna tıklayınca şarkı HİÇ ÇALMASIN (0 saniye)
2.
Direkt olarak Register Sayfası açılsın: /register
3. Kullanıcı kayıt olduktan sonra otomatik deneme üyeliği başlasın
4. Deneme üyeliği ile sınırsız şarkı dinleyebilsin
🎯 Hedef: Kayıt olmadan dinleme yok! Kayıt olunca deneme üyeliği + sınırsız müzik.
✨ Kullanıcı Deneyimi: Net bir mesaj - "Dinlemek için kayıt olmalısın!"
1. Play butonuna tıklayınca şarkı HİÇ ÇALMASIN (0 saniye)
2.
Direkt olarak Subscription Plans Sayfası açılsın: /subscription/plans
3. Kullanıcı planlardan birini seçip premium olabilsin
🎯 Hedef: Süresi bitmiş kullanıcılar premium yenilemeye yönlendirilsin.
✨ Kullanıcı Deneyimi: "Premium süreniz bitti, yenilemek için planları görün!"
Play butonuna tıklandığında premium kontrolü yapılacak. Eğer kullanıcı premium değilse, şarkı çalmadan direkt yönlendirme yapılacak.
Dosya: public/themes/muzibu/js/player/core/player-core.js
Değişiklik: playSong() metoduna premium check ekle
Mantık:
window.location.href = '/register'window.location.href = '/subscription/plans'🎯 Sonuç: Şarkı çalmaya başlamadan önce yönlendirme yapılacak (0 saniye ses çıkmaz)
Stream API endpoint'inde premium olmayan kullanıcılar için 30 saniye preview vermeyi kaldıracağız. Direkt unauthorized veya redirect_required status dönülecek.
Dosya: Modules/Muzibu/app/Http/Controllers/Api/SongStreamController.php
Metod: stream() - Line 37-140
Değişiklik:
getPreviewStreamResponse() çağrısını KALDIRreturn response()->json(['status' => 'unauthorized', 'redirect' => '/register'], 401)getPreviewStreamResponse() çağrısını KALDIRreturn response()->json(['status' => 'subscription_required', 'redirect' => '/subscription/plans'], 402)🎯 Sonuç: Backend API'den stream URL dönmeyecek, frontend bu yanıtı alınca yönlendirme yapacak
30 saniye preview sistemi artık kullanılmayacağı için ilgili kodları temizleyeceğiz (opsiyonel, çalışan koda zarar vermez).
Silinecek/Pasifleştirilecek:
play-limits.js → Guest 30s checker (startGuestTimeCheck())play-limits.js → handleGuestLimit() fade-out mantığıplay-limits.js → Guest/Member modal UI kodlarıSongStreamController.php → getPreviewStreamResponse() metodu (artık kullanılmıyor)config/config.php → preview_duration config (opsiyonel)⚠️ Dikkat: Bu adım opsiyonel - Önce yeni sistem test edilsin, sonra eski kodlar kaldırılabilir
Kullanıcı /register sayfasından kayıt olduktan sonra otomatik olarak deneme üyeliği (trial) başlatılacak.
Kontrol: Mevcut kayıt sisteminde trial subscription oluşturuluyor mu?
Modules/Muzibu/Providers/EventServiceProvider.php kontrol edilecek🎯 Sonuç: Yeni kayıt olan kullanıcı direkt trial üyelikle sınırsız dinleme hakkına sahip olacak
Değişiklikler uygulandıktan sonra aşağıdaki test senaryoları çalıştırılacak.
✓ Test 1: Guest Kullanıcı
/register sayfası açılsın✓ Test 2: Süresi Bitmiş Üye
/subscription/plans sayfası açılsın✓ Test 3: Premium/Trial Üye
player-core.js
Player ana dosyası, playSong() metodunda premium check
play-limits.js
30s preview sistemi (artık gereksiz, kaldırılabilir)
auth.js
Login/Register modal kontrolü
muzibu-router.js
SPA router, register/subscription sayfalarına yönlendirme
SongStreamController.php
Stream API, premium kontrolü ve redirect response
User.php (Model)
isPremiumOrTrial() metodu (mevcut, değişmeyecek)
EventServiceProvider.php
Kayıt sonrası trial subscription oluşturma
web.php (Routes)
/register ve /subscription/plans route'ları (mevcut)
Google bot'ları ve arama motorları siteyi ziyaret ettiğinde şarkı çalmaya çalışmayacaklar, bu nedenle sorun yok. Ancak yeni kullanıcılar hiç dinleyemeden kayıt zorunda kalacaklar - bu dönüşüm oranını etkileyebilir.
Öneri: Register sayfasına çekici bir mesaj ekleyin: "Ücretsiz kaydol, 30 gün deneme üyeliğiyle sınırsız müzik dinle!"
Kayıt sonrası otomatik trial subscription oluşturulduğundan emin olun. Aksi halde kullanıcı kayıt olduğu halde şarkı dinleyemeyecek!
Kontrol: EventServiceProvider.php
içinde UserCreated event'inde trial subscription oluşturuluyor mu?
Sistemdeki mevcut kullanıcıların premium/trial durumları doğru mı? Deneme süresi bitmiş kullanıcılar subscription sayfasına yönlendirilecek, bu toplu şikayetlere yol açabilir.
Öneri: Değişiklik öncesi kullanıcılara duyuru mail'i gönderin: "Deneme süreniz dolmak üzere, premium planlara göz atın!"
JavaScript dosyaları değiştiğinde kullanıcıların eski cache'li dosyayı kullanmaması için
npm run prod ve cache clear yapın.
Komut: php artisan view:clear && npm run prod
Dinlemek için kayıt zorunluluğu ile kullanıcı kayıt oranları artacak
Deneme süresi bitenler subscription sayfasına yönlendirilince premium dönüşümü artacak
Kayıt olmayan ziyaretçiler yerine, deneme üyeliği almış aktif kullanıcılar olacak