DURUM: İYİ
DURUM: EKSİKLER VAR
| Kolon | Tip | Açıklama | Durum |
|---|---|---|---|
base_price |
DECIMAL(12,2) | Temel fiyat (KDV Hariç) | ✓ İYİ |
tax_rate |
DECIMAL(5,2) | KDV oranı (% - varsayılan 20) | ✓ İYİ |
compare_at_price |
DECIMAL(12,2) | İndirim öncesi fiyat | ✓ İYİ |
cost_price |
DECIMAL(12,2) | Maliyet fiyatı (kar hesabı için) | ✓ İYİ |
currency_id |
BIGINT UNSIGNED | Para birimi ID (currencies foreign key) | ✓ İYİ |
currency |
VARCHAR(3) | Para birimi kodu (TRY, USD, EUR) - Legacy | ⚠ Legacy |
price_display_mode |
ENUM | show/hide/request | ✓ İYİ |
currency kolonu legacy kalıyor, yeni sistem currency_id foreign key kullanıyor. İleride currency kolonu kaldırılabilir.
getPriceWithTaxAttribute() - KDV dahil fiyat hesaplamagetTaxAmountAttribute() - KDV tutarı hesaplamagetDiscountPercentageAttribute() - İndirim yüzdesigetFinalPriceAttribute() - Son fiyatshop_product_tax✅ DURUM: EKSİKSİZ
Shop modülünde fiyat ve KDV yapısı profesyonel bir şekilde tasarlanmış. Database, model ve frontend uyumlu çalışıyor.
İki farklı sistem bir arada:
billing_cycles JSON kolonu (dinamik yapı)price_dailyprice_weeklyprice_monthlyprice_quarterlyprice_yearly❓ Soru: Hangi sistem kullanılıyor? Frontend billing_cycles JSON kullanıyor, ama sabit kolonlar da DB'de mevcut!
Shop ile karşılaştırma:
| Özellik | Shop Modülü | Subscription Modülü |
|---|---|---|
tax_rate kolonu |
✓ VAR | ❌ YOK |
| KDV dahil fiyat hesaplama | ✓ VAR | ❌ YOK |
| Frontend KDV gösterimi | ✓ VAR | ❌ YOK |
| Settings ile kontrol | ✓ VAR | ❌ YOK |
⚠️ Sonuç: Subscription fiyatları KDV dahil mi hariç mi belirsiz! Kullanıcı ve muhasebeye yönelik ciddi problem.
| Özellik | Shop Modülü | Subscription Modülü |
|---|---|---|
currency_id (foreign key) |
✓ VAR | ❌ YOK |
currency (string) |
Legacy (var) | ⚠ Sadece Bu Var |
| ShopCurrency relation | ✓ VAR | ❌ YOK |
| Currency symbol çekme | ✓ Dinamik | ❌ Sabit (₺) |
⚠️ Sonuç: Subscription sadece TRY kullanıyor gibi görünüyor. Multi-currency desteği eksik!
| Kolon | Durum | Açıklama |
|---|---|---|
price_daily |
? | billing_cycles JSON kullanılıyorsa gereksiz |
price_weekly |
? | billing_cycles JSON kullanılıyorsa gereksiz |
price_monthly |
? | billing_cycles JSON kullanılıyorsa gereksiz |
price_quarterly |
? | billing_cycles JSON kullanılıyorsa gereksiz |
price_yearly |
? | billing_cycles JSON kullanılıyorsa gereksiz |
compare_price_monthly |
❌ | Tutarsız! Sadece monthly ve yearly var, diğerleri yok |
compare_price_yearly |
❌ | Tutarsız! Sadece monthly ve yearly var, diğerleri yok |
default_billing_cycle |
? | Frontend'de kullanılmıyor gibi görünüyor |
has_trial |
? | trial_days > 0 kontrolü yeterli, ayrı boolean gereksiz |
💡 Öneri: Hangi sistem kullanılacak net belirlenmeli. JSON kullanılıyorsa sabit kolonlar kaldırılmalı. Sabit kolonlar kullanılıyorsa JSON kaldırılmalı.
❌ DURUM: CİDDİ EKSİKLER VAR
tax_rate kolonu ekle (DECIMAL 5,2, default 20.00)tax_rate eklenebilir (opsiyonel)getPriceWithTaxAttribute() accessor eklegetTaxAmountAttribute() accessor eklegetCyclePriceWithTax($cycleKey) metodu eklesubscription_tax_display ayarı eklecurrency_id foreign key ekle (BIGINT UNSIGNED)currency kolonu legacy olarak kalsın (backward compatibility)currency() BelongsTo relation ekleSeçenek A: JSON Sistem (Esnek - Önerilen)
billing_cycles JSON kolonu kullanılacakSeçenek B: Sabit Sistem (Klasik)
billing_cycles JSON kaldırılacak💡 Öneri: Seçenek A (JSON) - Frontend zaten JSON kullanıyor, esnek yapı gerekiyor.
price_dailyprice_weeklyprice_monthlyprice_quarterlyprice_yearlycompare_price_monthlycompare_price_yearlydefault_billing_cyclehas_trial (trial_days yeterli)| Özellik | Shop Modülü | Subscription Modülü | Aksiyon |
|---|---|---|---|
| Fiyat Kolonu | base_price ✅ |
billing_cycles[].price ✅ |
OK |
| KDV Oranı | tax_rate ✅ |
❌ YOK | Ekle! |
| KDV Dahil Fiyat | price_with_tax accessor ✅ |
❌ YOK | Ekle! |
| Currency Foreign Key | currency_id ✅ |
❌ YOK | Ekle! |
| Currency String | currency (legacy) ⚠️ |
currency ✅ |
Legacy tut |
| Compare Price | compare_at_price ✅ |
billing_cycles[].compare_price ✅ |
OK |
| Frontend KDV Gösterim | Ayarlanabilir ✅ | ❌ YOK | Ekle! |
| Schema Tutarlılığı | Net ✅ | ❌ Karmaşık | Netleştir! |