Tüm isteklerde
X-Tenant header’ı zorunludur. İşlemler yalnızca belirtilen tenant’a ait satışlar ile sınırlandırılmıştır.Endpoint özeti
| Metot | Endpoint | Açıklama |
|---|---|---|
GET | /api/v1/sales | Satışları filtreli olarak listeler |
GET | /api/v1/sales/{id} | Tek bir satışı detaylı getirir |
POST | /api/v1/sales | Yeni satış oluşturur |
PUT | /api/v1/sales/{id} | Satışı günceller |
DELETE | /api/v1/sales/{id} | Satışı soft delete eder |
DELETE | /api/v1/sales/{id}/force | Satışı kalıcı olarak siler |
POST | /api/v1/sales/{id}/payments | Satışa ödeme ekler |
POST | /api/v1/sales/{id}/stock-deduct | Satış için stok düşümü yapar |
Satış kavramı
Satış, bir müşteriye sunulan tedavi veya ürün kalemlerini, uygulanan iskontoları, KDV’yi ve ödeme durumunu bir arada tutan finansal kayıttır. Her satır kalemi (items) bir tedavi (Treatment) veya ürün (Product) olabilir.
İş kuralları
Hesaplanan alanlar:
sub_total, total_discount, total_tax, total_price alanları sunucu tarafında hesaplanır. İstek gövdesinde gönderilseler dahi yok sayılır.Ödeme varsa işlem: Satışta taksit veya ödeme kaydı mevcutsa
PUT isteği updateOrCreateSaleTransaction() çağırmaz.Ödeme ekleme (POST /sales/{id}/payments)
Satışa yeni bir ödeme/tahsilat kaydı ekler.
Yanıt { sale_id, remaining_balance, transaction } yapısında döner.
Stok düşümü (POST /sales/{id}/stock-deduct)
Yetkilendirme
Uygulama izinleri (permissions)
| İşlem | Permission |
|---|---|
| Listeleme | ViewAny:Sale |
| Detay / Tek gösterme | View:Sale |
| Oluşturma | Create:Sale |
| Güncelleme | Update:Sale |
| Silme (soft delete) | Delete:Sale |
| Kalıcı silme (force delete) | ForceDelete:Sale |
Token scope’ları (Passport)
| İşlem | Scope |
|---|---|
Okuma (index, show) | sales:read |
Yazma (store, update, destroy, forceDelete, payments, stock-deduct) | sales:write |