Uyelik Admin Panel - Kritik Analiz

Tarih: 2025-11-23 | Tenant: ixtif.com | Durum: DUZELTME GEREKEN

1. ANA SORUN: Modul Karari

Mevcut Plan Hatali

Plan, Subscription Plan, Subscription ve Coupon yonetimini UserManagement modulune koyuyor. Bu yanlis bir yaklasim cunku:

  • Coupon universal bir sistem - Shop, Subscription, gelecek ozellikler tarafindan kullanilabilir
  • Subscription kendi is alani (business domain) - kullanici yonetiminden bagimsiz
  • Single Responsibility Principle ihlali
  • Gelecekte bakim zorlugu

KARAR: Ayri Moduller Olusturulmali

Modul Icerik Neden
Subscription SubscriptionPlan, Subscription, ilgili servisler Kendi is alani, bagimli odemelerle calisiyor
Coupon Coupon, CouponUsage, kupon servisleri Universal sistem - Shop, Subscription, vb. kullanir
UserManagement Kullanici sekmeleri (cihazlar, loglar), onay sistemi Kullaniciya ozgu ozellikler burada kalir

2. Duzeltilmis Modul Yapisi

Modules/Subscription (YENI MODUL)

Modules/Subscription/ ├── app/ │ ├── Http/ │ │ └── Livewire/ │ │ ├── Admin/ │ │ │ ├── SubscriptionPlanComponent.php │ │ │ ├── SubscriptionPlanManageComponent.php │ │ │ ├── SubscriptionComponent.php │ │ │ └── SubscriptionManageComponent.php │ ├── Models/ │ │ ├── SubscriptionPlan.php │ │ └── Subscription.php │ ├── Services/ │ │ └── SubscriptionService.php │ └── Providers/ │ └── SubscriptionServiceProvider.php ├── resources/ │ └── views/ │ └── admin/ │ └── livewire/ │ ├── subscription-plan-component.blade.php │ ├── subscription-plan-manage-component.blade.php │ ├── subscription-component.blade.php │ └── subscription-manage-component.blade.php ├── routes/ │ └── admin.php ├── lang/ │ └── tr/ │ └── admin.php └── module.json

Modules/Coupon (YENI MODUL)

Modules/Coupon/ ├── app/ │ ├── Http/ │ │ └── Livewire/ │ │ └── Admin/ │ │ ├── CouponComponent.php │ │ └── CouponManageComponent.php │ ├── Models/ │ │ ├── Coupon.php │ │ └── CouponUsage.php │ ├── Services/ │ │ └── CouponService.php │ └── Providers/ │ └── CouponServiceProvider.php ├── resources/ │ └── views/ │ └── admin/ │ └── livewire/ │ ├── coupon-component.blade.php │ └── coupon-manage-component.blade.php ├── routes/ │ └── admin.php ├── lang/ │ └── tr/ │ └── admin.php └── module.json

UserManagement (MEVCUT - GUNCELLEME)

Sadece kullaniciya ozgu ozellikler:

  • UserComponent.php - Yeni kolonlar (abonelik durumu, cihaz kullanimi)
  • UserManageComponent.php - Yeni sekmeler (Cihazlar, Abonelik, Giris Loglari)
  • Kullanici onay sistemi
  • Cihaz yonetimi (sessions tablosu)

3. Mevcut Plandaki Diger Hatalar

Model Konumu Hatasi

Plan modelleri app/Models/ altinda gosteriyor ama nwidart modullerinde modeller modul icinde olmali.

Yanlis: app/Models/SubscriptionPlan.php

Dogru: Modules/Subscription/app/Models/SubscriptionPlan.php

Servis Konumu Hatasi

Servisler de modul icinde olmali:

Yanlis: app/Services/Auth/SubscriptionService.php

Dogru: Modules/Subscription/app/Services/SubscriptionService.php

Route Prefix Eksik

Her modul kendi route prefix'ini kullanmali:

// Modules/Subscription/routes/admin.php Route::prefix('subscription')->name('admin.subscription.')->group(function () { Route::get('/plans', SubscriptionPlanComponent::class)->name('plans.index'); Route::get('/plans/create', SubscriptionPlanManageComponent::class)->name('plans.create'); // ... }); // Modules/Coupon/routes/admin.php Route::prefix('coupon')->name('admin.coupon.')->group(function () { Route::get('/', CouponComponent::class)->name('index'); Route::get('/create', CouponManageComponent::class)->name('create'); // ... });

Lang Dosyasi Formati

Her modul kendi lang dosyasini kullanir, merkezi degil:

Dogru: Modules/Subscription/lang/tr/admin.php

Dogru: Modules/Coupon/lang/tr/admin.php

4. Menu Yapisi Guncelleme

Onerim: Kategorize Menu

Admin Menu Yapisi: Kullanicilar (UserManagement) ├── Kullanicilar ├── Roller └── Izinler Abonelik Sistemi (Subscription) ├── Abonelik Planlari └── Abonelikler Pazarlama (Coupon + gelecek) ├── Kuponlar └── (Kampanyalar - gelecek) (veya) Finans ├── Abonelik Planlari ├── Abonelikler └── Kuponlar

5. Dogru Olan Kisimlar

Onaylanan Yaklasimlar

  • Livewire component yapisi (Liste + Manage pattern)
  • Kullanici detayina yeni sekmeler (Cihazlar, Abonelik, Loglar)
  • Dashboard widget yaklasimi
  • Bulk actions kullanimi
  • Permission kontrolu (@can)
  • Tenant-aware sorgu yapisi
  • Test adimlari

6. Sonuc ve Aksiyon

YAPILACAKLAR

  1. Subscription modulu olustur: php artisan module:make Subscription
  2. Coupon modulu olustur: php artisan module:make Coupon
  3. Mevcut modelleri tasi: app/Models/ -> Modules/*/app/Models/
  4. Mevcut servisleri tasi: app/Services/Auth/ -> Modules/*/app/Services/
  5. TODO MD'yi guncelle: Yeni modul yapisiyla
  6. UserManagement'i guncelle: Sadece kullanici sekmeleri

Onay Bekliyor

Bu analiz dogrultusunda TODO MD'yi guncelleyeyim mi? "UYGUNDUR" ile onay verin.