Component hala eski billing_cycle enum kullanıyor (monthly, yearly...)
Sorun: Yeni dinamik cycle sistemi (15 gün, 45 gün, deneme-3-gun...) desteklenmiyor!
cycle_key ve
cycle_metadata field'leri tam kullanılmıyor
Sorun: Seçilen cycle'ın label, badge, promo_text bilgileri kaydedilmiyor!
View'da paused ve
pending_payment status'leri var ama component'te tam desteklenmiyor
Sorun: Abonelik duraklatma ve ödeme bekleme senaryoları eksik!
Plan'ın is_trial field'i kontrol edilmiyor
Sorun: Deneme planı seçildiğinde otomatik trial mantığı çalışmıyor!
currency her zaman 'TRY' olarak hardcoded
Sorun: Plan'ın currency field'i kullanılmıyor (USD/EUR/TRY desteği yok)!
subscription_number model tarafından otomatik oluşturuluyor ama component bunu bilmiyor
Not: Model boot() içinde zaten generate ediliyor, component'te gereksiz kod var
Plan seçildiğinde plan'ın billing_cycles JSON field'inden tüm cycle'lar çekilir
Admin dropdown'dan bir cycle seçer (örn: "12-aylik")
Seçilen cycle'ın fiyatı, süresi, trial bilgisi otomatik yüklenir
Seçilen cycle'ın TÜM bilgileri cycle_metadata field'ine JSON olarak kaydedilir
Başlangıç tarihi + duration_days = Bitiş tarihi
Eğer cycle'da trial_days varsa veya plan is_trial=true ise:
✅ has_trial = true
✅ trial_days = X set edilir
✅ trial_ends_at hesaplanır
✅ status = 'trial' olabilir
cycle_key - Seçilen cycle anahtarıcycle_metadata - Cycle bilgileri (JSON)billing_cycle - Legacy (nullable)started_at - Başlangıç tarihicurrent_period_start - Dönem başlangıcıcurrent_period_end - Dönem bitişinext_billing_date - Sonraki faturahas_trial - Deneme kullandı mı?trial_days - Deneme süresi (gün)trial_ends_at - Deneme bitiş tarihiprice_per_cycle - Döngü fiyatıcurrency - Para birimi (TRY/USD/EUR)total_paid - Toplam ödenenbilling_cycles_completed - Tamamlanan döngüstatus - active, trial, paused, cancelled, expired, pending_paymentauto_renew - Otomatik yenilemecancelled_at - İptal tarihisubscription_number - Otomatik (SUB-XXX)payment_method_id - Ödeme yöntemicancellation_reason - İptal nedenimetadata - Ek bilgiler (JSON)Ne Yapılacak:
$plan->billing_cycles çek$this->available_cycles property'sine atais_trial field'ini kontrol etcurrency field'ini $this->currency'ye ataNe Yapılacak:
price'ını $this->price_per_cycle'ye ataduration_days'ını kullanarak bitiş tarihini hesaplatrial_days varsa:
$this->has_trial = true$this->trial_days = X$this->status = 'trial' (opsiyonel)Ne Yapılacak:
cycle_key field'ini ekle (seçilen cycle anahtarı)cycle_metadata field'ini ekle (seçilen cycle'ın TÜM bilgileri)currency'yi plan'dan al (hardcoded 'TRY' KALDIR!)has_trial, trial_days, trial_ends_at doğru hesaplacurrent_period_start = started_atnext_billing_date = current_period_endbilling_cycle field'ini KALDIR (nullable legacy field)subscription_number model'de otomatik, component'te GEREKSIZ!Ne Yapılacak:
{{ $cycle['label']['tr'] }}{{ $cycle['duration_days'] }} gün₺{{ $cycle['price'] }}₺{{ $cycle['compare_price'] }} (eğer varsa)🎁 {{ $cycle['trial_days'] }} gün deneme (eğer varsa)Eklenecek Property'ler:
Not: available_cycles zaten var, güzel!
Ne Yapılacak:
₺ sembolü yerine dinamik currency kullancurrency_symbol($currency)cycle_key = "12-aylik"cycle_metadata doğru kaydedilmelihas_trial checkbox otomatik aktif olmalıtrial_days = 3 otomatik doldurulmalıtrial_ends_at hesaplanmalıstatus = 'trial' olabilircycle_key = "15-gunluk"cycle_metadata'da duration_days doğru$ sembolü ile görünmelicurrency = 'USD'cycle_metadata'da badge + promo kaydedilmelicycle_key doğru yüklensincycle_metadata preview'da gösterilsincycle_key fieldcycle_metadata fieldbilling_cycle enumsubscription_number