Kullanıcılar hangi bildirimleri alacaklarını nasıl seçiyor?
E-posta Bildirimleri: Yeni içerik, kampanya ve güvenlik bildirimleri
Push Bildirimleri: Mobil ve tarayıcı anlık bildirimleri
Kategori Bazlı Kontrol: Her bildirim türü ayrı ayrı açılıp kapatılabilir
Sessiz Saatler: Belirli saatlerde bildirim almama
Takip ettiğin sanatçıların yeni şarkıları
İndirimler ve özel teklifler
Yeni cihaz girişi, şifre değişikliği
Yenileme hatırlatmaları, fatura bildirimleri
Bildirim gönderimi sırasında gerçekleşen teknik süreç
Kullanıcı bildirim ayarlarını değiştirdiğinde sistem tercihleri kaydediyor. Bildirim gönderilmeden önce kullanıcının o kategori için izni var mı kontrol ediliyor ve uygun kanallardan (e-posta, push, in-app) gönderiliyor.
Toggle değiştiğinde NotificationPreference::updateOrCreate() ile kayıt yapılır. Her kategori için email_enabled, push_enabled boolean alanları tutulur.
Laravel Notification sistemi kullanılır. via() metodunda kullanıcının tercihlerine göre kanallar belirlenir: ['mail', 'database', 'broadcast']
laravel-notification-channels/fcm ile Firebase Cloud Messaging'e istek gönderilir. Mobil uygulama veya tarayıcı push bildirimi alır. Device token push_tokens tablosunda tutulur.
Bildirim gönderilmeden önce quiet_hours_start ve quiet_hours_end kontrol edilir. Sessiz saatteyse bildirim queue'da bekletilir ve sabah gönderilir.
notifications tablosuna kayıt yapılır (database channel). Kullanıcı uygulamada zil ikonuna tıkladığında $user->unreadNotifications ile görüntülenir.
broadcast channel ile Laravel Echo + Pusher/Soketi üzerinden anlık bildirim gönderilir. Kullanıcı sayfayı yenilemeden bildirimi görür. WebSocket bağlantısı kullanılır.
Notification: App\Notifications\* | Channels: mail, database, broadcast, fcm