🏢 Muzibu Corporate - FINAL

Ana Şube & Alt Şubeler | 1 User = 1 Firma

v4 FINAL - DOĞRU MİMARİ
🎯

Doğru Mimari

✅ DOĞRU MANTIK:

• 1 User = 1 Premium Firma (para öder)
• Ana Şube (parent_id: NULL) → Tüm istatistikleri görür
• Alt Şubeler (parent_id: ana_sube_id) → Sadece kendi istatistiği
• Adres bilgisi fatura adresinden alınır

Yapı

users: id:100 | Starbucks (Premium)
corporate_accounts:
├── user_id:100 | parent_id:NULL | company_name:"Starbucks" (ANA)
├── user_id:100 | parent_id:1 | branch_name:"Kadıköy"
└── user_id:100 | parent_id:1 | branch_name:"Beşiktaş"
📊

Değişiklikler

Migration - Sadece 1 Alan!

branch_name ekle (settings gereksiz, adres zaten fatura adresinde var)

public function up() { Schema::table('muzibu_corporate_accounts', function ($table) { $table->string('branch_name')->nullable()->after('company_name'); }); }

Model Güncellemesi

protected $fillable = [..., 'branch_name']; public function isMainBranch(): bool { return $this->parent_id === null; } public function getSubBranches() { return $this->children()->get(); }

Kullanım

// Ana şube MuzibuCorporateAccount::create([ 'user_id' => $user->id, 'parent_id' => null, 'company_name' => 'Starbucks', 'branch_name' => null, ]); // Alt şube MuzibuCorporateAccount::create([ 'user_id' => $user->id, 'parent_id' => $anaShube->id, 'branch_name' => 'Kadıköy Şubesi', ]);

Özet

Yapılacaklar

  • Migration: branch_name ekle (1 alan)
  • Model: isMainBranch(), getSubBranches()
  • UI: Tree-view (ana → alt şubeler)
  • Yetki: Ana=hepsi, Alt=kendisi
⏱️ 2-3 SAAT | En minimal değişiklik!