28 Aralık 2025
Subscription oluşturulduğunda, güncellendiğinde veya silindiğinde
users.subscription_expires_at
otomatik olarak yeniden hesaplanacak.
Subscription listesinde artık hem "Bu Üyelik" (aktif abonelik bitiş) hem de "Toplam Kalan" (aktif + pending) görünüyor.
users.subscription_expires_at değeri
her seferinde hesaplanmıyor, veritabanında saklanıyor. Bu sayede her sayfa yüklemesinde
ek sorgu yapılmıyor.
| Tetikleyici | Dosya |
|---|---|
| Subscription oluşturulduğunda | SubscriptionObserver::created() |
| Subscription güncellendiğinde | SubscriptionObserver::updated() |
| Subscription silindiğinde | SubscriptionObserver::deleted() |
| Ödeme tamamlandığında | Order.php:309 |
| Pending→Active geçişinde | ProcessSubscriptionTransitions |
| Kurumsal üyelik oluşturulduğunda | CorporateSubscriptionService |
recalculateSubscriptionExpiry() fonksiyonu:
current_period_end değerine göre sırala (DESC)users.subscription_expires_at'e yazsubscriptions
ID:54 (active)
ID:82 (pending)
recalculateSubscriptionExpiry()
MAX(current_period_end)
users
subscription_expires_at
2027-01-22 (389g)
subscription_expires_at her seferinde hesaplanmıyor,
veritabanında saklanıyor (performans için).
SubscriptionObserver'a eklenen recalculateUserExpiry()
ile artık her subscription değişikliğinde otomatik güncelleniyor.
Admin Panel'de artık hem "Bu Üyelik" hem "Toplam Kalan" görünüyor.