Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Herkobi — Cari Kart (Customer) Modülü

Herkobi paneli için generic müşteri (cari kart) yönetimi modülü. Çekirdeği tek satır düzenlemeden panele menü + rota + yetki + ekran ekler. Tek başına çalışır ve başka hiçbir modüle bağımlı değildir — ihtiyaç duyulan her kurulumda (servis, eczane, spor salonu, satış vb.) doğrudan kullanılır.

Modül tam bir Laravel kurulumu değildir — küçük bir composer paketidir ve bir host (Herkobi panel) içine takılır. React/shadcn/Tailwind paketin içinde yoktur; ekran .tsx'leri host'un bileşenlerini @ alias ile import eder ve host'un Vite'ı derler.

Ne yapar

  • Cari kart yönetimi — bireysel / kurumsal müşteri (CustomerType) kayıtları: liste, arama, oluştur, görüntüle, güncelle, sil.
  • Hafif arama ucu — başka ekranlardan müşteri aramak için JSON uç noktası.
  • Uygulama erişimi — müşteriye panel/uygulama erişimi açma (Account + üye User oluşturur, davet e-postası gönderir).
  • Model: HasUuids, SoftDeletes, BelongsToAccount, HasStatus.

Bu repo neyi içerir

.
├─ composer.json                              # auto-discovery (extra.laravel.providers)
├─ module.json                                # install/uninstall manifesti
├─ src/
│  ├─ CustomerServiceProvider.php             # hook bağlamaları (rota/menü/yetki)
│  ├─ Models/Customer.php                     # HasUuids, SoftDeletes, BelongsToAccount
│  ├─ Enums/CustomerType.php                  # Bireysel / Kurumsal
│  ├─ Services/CustomerService.php            # iş mantığı (create/update/delete/appAccess)
│  ├─ Http/
│  │  ├─ Controllers/Panel/CustomersController.php
│  │  ├─ Requests/Panel/SaveCustomerRequest.php
│  │  └─ Resources/Panel/CustomerResource.php
│  ├─ Events/Customer/                        # Created / Updated / Deleted / AppAccessGranted
│  └─ Listeners/Customer/                     # activity-log kayıtları
├─ database/
│  ├─ migrations/..._create_customers_table.php
│  └─ factories/CustomerFactory.php
└─ resources/js/
   ├─ pages/panel/customers/                  # index / create / show (host Vite derler)
   ├─ components/customer-form-fields.tsx     # ortak form alanları
   └─ types/customer.ts

Panele takılma noktaları

CustomerServiceProvider::register() içinde, çekirdek hiç düzenlenmeden:

Hook Katkı
panel.routes.register panel.customers.* rotaları (/panel/customers)
panel.menu.register Kendi menü grubu: Müşteriler
panel.permissions.register panel.customers.* yetkileri (source: 'customer')

boot() yalnızca migration yükler. Migration'lar pakette kalır, modülle versiyonlanır.

Genişletme (olaylar)

Modül kendi işini yaparken şu olayları yayınlar. Başka modüller (kuruluysa) bunları dinleyerek customer'a bağlanabilir; customer onlara bağımlı değildir:

  • CustomerCreatedEvent
  • CustomerUpdatedEvent
  • CustomerDeletedEvent
  • CustomerAppAccessGrantedEvent

Bu, customer'ı hiç düzenlemeden yeni davranış eklemenin (ör. bir servis modülünün kendi kayıtlarını müşteriye bağlaması) temiz yoludur.

Hızlı başlangıç (geliştirme)

Host = çalışan bir Herkobi panel checkout'u. Panel modülleri packages/*/module.json ve vendor/herkobi/*/module.json yollarından keşfeder (bkz. config/herkobi.php → module_discovery_paths).

  1. Bu repo'yu panelin yanına klonla (ör. ../herkobi-customer-module).
  2. Panelin composer.json'una path repository ekle (zaten packages/* symlink repo'su tanımlı — modülü panel/packages/customer olarak da bağlayabilirsin):
    "repositories": [
      { "type": "path", "url": "../herkobi-customer-module", "options": { "symlink": true } }
    ]
  3. Panelde:
    composer require herkobi/customer:@dev
    php artisan herkobi:install customer   # migrate + yetki seed
    npm run build                          # customers/*.tsx ekranlarını derle
  4. Sidebar'da Müşteriler görünür (Super Admin'de hemen; diğerlerinde Yetkiler/Roller'den panel.customers.* atanınca).

Windows: symlink için Geliştirici Modu açık olmalı; değilse composer kopyalar (çalışır ama her değişiklikte composer update herkobi/customer).

Kaldırma (sıra önemli)

php artisan herkobi:uninstall customer   # composer remove'dan ÖNCE
composer remove herkobi/customer

module.json: permissions: "remove" (kaldırınca yetkiler silinir), purge_data: false (müşteri verisi korunur).

About

Herkobi Customer Module

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages