Düzeltme Planı

Kurumsal Subscription Sistemi

26 Aralık 2025 - Tenant 1001 (Muzibu)

Mevcut Sorunlar

1. Subscription Aktive Olmuyor

Kurumsal yönetici 2 üye için ödeme yapıyor, ama sadece kendi hesabına subscription açılıyor. Seçilen üyelere subscription AÇILMIYOR.

2. Admin Panelde Bilgi Eksik

/admin/payment modalında hangi üyeler için ödeme yapıldığı görünmüyor. /admin/subscription'da da üye bilgileri yok.

3. Tenant Context Eksikliği

Subscription tablosu tenant DB'de (tenant_muzibu_1528d0). PayTR callback'te tenant context doğru set edilmeli.

Mevcut Akış (Sorunlu)

1

Frontend: Üye Seçimi

Yönetici 2 üye seçiyor → users=100,101 URL'e ekleniyor ✅

2

CheckoutPage: Cart'a Ekleme

users=100,101 → quantity=2 olarak çevriliyor. user_id'ler KAYBOLUYOR!

3

Order Oluşturma

CartItem → OrderItem kopyalanıyor. Metadata'da user_id yok.

4

PayTR Callback

Tenant context set ediliyor (T1001PAY... formatından parse) ✅

5

activateSubscriptionItems()

SADECE order.user_id için subscription oluşturuyor! Seçilen üyeler es geçiliyor.

Düzeltme Planı (4 Adım)

YAPILDI

1. Cart Metadata'ya user_id'leri Ekle

Dosya: Modules/Cart/app/Http/Livewire/Front/CheckoutPage.php

Değişiklik:

  • mount() - users parametresini parse et, targetUserIds olarak sakla
  • addSubscriptionToCart() - 4. parametre olarak targetUserIds al
  • Cart metadata'ya target_user_ids ve type=corporate_bulk ekle
YAPILDI

2. Order'da Tüm Kullanıcılar için Subscription Oluştur

Dosya: Modules/Cart/app/Models/Order.php

Değişiklik:

  • activateSubscriptionItems() - metadata'dan target_user_ids kontrol et
  • type=corporate_bulk ise her user için ayrı subscription oluştur
  • createSubscriptionForUser() helper metodu eklendi
  • Corporate metadata: is_corporate=true, purchased_by=owner_id
BEKLEMEDE

3. Admin Payment Modal'da Üye Bilgisi Göster

Dosya: Modules/Payment/resources/views/admin/payments/... (modal)

Değişiklik:

  • OrderItem metadata'dan target_user_ids çek
  • User isimlerini listele (User model'den)
  • "2 üye için kurumsal üyelik" şeklinde göster
BEKLEMEDE

4. Admin Subscription Sayfasında Detay Göster

Dosya: Modules/Subscription/resources/views/admin/...

Değişiklik:

  • Subscription metadata'dan is_corporate ve purchased_by göster
  • "Kurumsal satın alma" badge ekle
  • Satın alan kişiyi göster

Değiştirilecek Dosyalar

Tamamlanan

  • Modules/Cart/app/Http/Livewire/Front/CheckoutPage.php
  • Modules/Cart/app/Models/Order.php

Bekleyen

  • Modules/Payment/resources/views/admin/payments/index.blade.php (modal)
  • Modules/Subscription/resources/views/admin/subscriptions/index.blade.php

Test Planı

  1. 1 Kurumsal yönetici olarak giriş yap (Muzibu)
  2. 2 /corporate/subscriptions sayfasına git
  3. 3 2 üye seç ve "Ödemeye Geç" tıkla
  4. 4 Checkout'ta cart item metadata'sını kontrol et (Laravel log)
  5. 5 Test ödeme yap (PayTR sandbox)
  6. 6 Callback sonrası: subscriptions tablosunda 2 kayıt olmalı
  7. 7 /admin/subscription'da her iki üyeyi de gör

Önemli Notlar

Claude AI tarafından oluşturuldu - 26 Aralık 2025