🏗️ Model Yapısı ve İlişkiler
Subscription Models
SubscriptionPlan:
Çok-dilli başlık, fiyat seçenekleri (günlük, haftalık, aylık, çeyreklik, yıllık), deneme süresi, özellikler, sınırlamalar
Subscription:
Kullanıcı abonelik durumu, faturalama döngüsü, ödeme takibi, iptal/durdurma işlemleri
İlişkiler:
Subscription → User (BelongsTo), Subscription → Plan (BelongsTo), Plan → Subscriptions (HasMany)
Scope'ler:
active(), trial(), expired(), cancelled(), paused(), expiringSoon()
Coupon Models
Coupon:
Çok-dilli başlık, indirim türleri (yüzde, sabit tutar, ücretsiz kargo, Al-Öde), kullanım sınırları
CouponUsage:
Kupon kullanım geçmişi ve performans takibi
Validasyon Metotları:
isValid(), isUsableBy(), canApplyTo(), apply()
Scope'ler:
active(), public(), valid(), expired()
Corporate Models
MuzibuCorporateAccount:
Kurum kodu, şirket adı, parent-child ilişkisi (şube desteği)
Yapı:
Hiyerarşik: Ana firma → Şubeler → Alt şubeler (Recursive HasMany)
Metotlar:
isParent(), allChildren(), getMembersCountAttribute(), generateCode()
Order Models
Order:
Sipariş numarası, durum takibi, ödeme bilgisi, kargo bilgisi, müşteri detayları
OrderItem:
Sipariş içindeki ürünler
Address:
Teslimat ve fatura adresleri
Durum Takibi:
Pending, Confirmed, Completed, Cancelled, etc.
⚙️ Admin Sayfaları
Subscription Admin
Planlama:
/admin/subscription
Routes:
- /plans - Plan listesi
- /plans/manage - Plan oluştur/düzenle
- / - Abonelik listesi
Component'ler:
SubscriptionComponent, SubscriptionPlanComponent, SubscriptionPlanManageComponent
Coupon Admin
Planlama:
/admin/coupon
Routes:
- / - Kupon listesi
- /manage - Kupon oluştur/düzenle
Component'ler:
CouponComponent, CouponManageComponent
Mail Admin
Planlama:
/admin/mail
Özellik:
Mail şablonlarını yönetme, çok-dilli içerik desteği
Template Tipi'leri:
Welcome, Trial Ending, Subscription Renewal, Payment Success, Payment Failed, New Device Login, Two Factor Code, Corporate Invite
Corporate Admin (Muzibu)
Planlama:
/admin/corporate
Özellik:
Kurum hesapları, şube yönetimi, hiyerarşik yapı
View'ler:
corporate-index, corporate-manage, CorporateAccountComponent
⚠️ Önemli Notlar
Multi-Tenant Yapısı: Sistem 3 aktif tenant barındırmaktadır (tuufi.com, ixtif.com, muzibu.com). Subscription, Coupon, Corporate, Mail modülleri tenant-aware olarak tasarlanmıştır. Her modülde hem central hem de tenant migration'ları vardır.
Migration Lokasyonları:
- Central migrations: database/migrations/
- Tenant migrations: database/migrations/tenant/ veya Modules/*/database/migrations/tenant/
Service Provider Entegrasyonu: Her modülün kendi ServiceProvider'ı vardır (SubscriptionServiceProvider, CouponServiceProvider, MailServiceProvider, MuzibuCorporateService).
Router Konfigürasyonu: Admin routes middleware içerisinde 'admin' ve 'tenant' middleware'leri kullanmaktadır. Bu sayede sadece yetkili admin kullanıcılar ve ilgili tenant erişebilir.
Dil Desteği: Tüm modüller çok-dilli (en/tr) olarak tasarlanmıştır. HasTranslations trait'i kullanılmaktadır.
📊 İstatistikler
Toplam Migration'lar:
17 migration (Subscription 2, Coupon 2, Mail 2, Cart 3, Corporate 1 + diğer sistem)
Model Sınıfları:
10+ model (SubscriptionPlan, Subscription, Coupon, CouponUsage, MailTemplate, Order, OrderItem, Address, MuzibuCorporateAccount)
Service Sınıfları:
5 service (SubscriptionService, CouponService, MailService, MailTemplateService, MuzibuCorporateService)
Admin Component'ler:
9+ Livewire bileşeni
Email Template'leri:
8 farklı email tipi
Tamamlanma Oranı:
%100 - Tüm modüller ve altyapı oluşturulmuştur