Mimari
Haljet’in sunucu tarafı tek bir NestJS uygulamasıdır (haljet-api). Tüm istemciler (mobil, web, iç paneller) aynı API önekini kullanır: api. Geliştirme ortamında Swagger arayüzü swagger yolunda açılır; üretimde bu arayüz kapalıdır, Swagger belgesi yine de iç yapay zeka servisine verilir.
Katmanlar
| Katman | Görevi |
|---|---|
| HTTP | NestJS denetleyicileri. Varsayılan önek api. |
| İş kuralı | Modül servisleri. Sipariş, ödeme, stok gibi kurallar burada. |
| Olaylar | İç olay yayıcı. Sipariş oluşunca bildirim, rapor, Firestore senkronu gibi yan işler tetiklenir. |
| Kuyruk | Bull + Redis. Transfer sevk, rapor toplama, mesaj yapay zekası. |
| Zamanlanmış iş | Nest Schedule. Fatura, heatmap, grup değerlendirme, indeks yenileme. |
| Kilit | MurLock (Redis). Aynı kullanıcının aynı anda iki sipariş oluşturması gibi yarışları keser. |
Modül listesi: Modül haritası.
Güvenlik varsayılanı
Uygulama genelinde JWT erişim jetonu zorunludur (AtGuard). Açık uçlar @Public() ile işaretlenir: giriş, bölge listesi, genel katalog, ödeme geri bildirimi, İzibiz web kancası gibi.
| Mekanizma | Ne zaman kullanılır |
|---|---|
| JWT erişim jetonu | Neredeyse tüm uçlar. Süre: 1 gün. |
| JWT yenileme jetonu | Oturum yenileme. Süre: 7 gün. |
| API anahtarı | Özellikle auth uçları. |
| Rol | Alıcı / satıcı / yetkili / yönetici ayrımı. |
| İzin kodu | Örneğin admin:buyer:full, officer:buyer-order-transfer:full. |
İstek ve yanıt
Doğrulama class-validator ile yapılır. Dil, Accept-Language başlığından okunur; varsayılan dil Türkçe. Sayfalı listelerde yanıt gövdesi şu biçimdedir: asıl kayıtlar data altında, sayfa bilgisi isteğe bağlı meta altında (page, limit, total, totalPages).
Çevredeki sistemler
Bunların her biri Altyapı ve dış sistemler sayfasında açıklanır.
| Sistem | Rol |
|---|---|
| MySQL | Ana ilişkisel kayıt |
| MongoDB | Sipariş ve operasyon belgeleri |
| Redis | Kuyruk, kilit, önbellek |
| MeiliSearch | Ürün araması |
| Firebase | Push, Firestore alıcı senkronu, dosya |
| BigQuery | Analitik olay akışı |
| PayTR / Paywall | Kart ve EFT ödeme |
| İzibiz | E-fatura / e-arşiv |
| HKS | Hal kayıt sistemi bildirimleri |
| Netgsm | SMS |
| Resend | E-posta |
| Telegram | Operasyon uyarıları |
| Google Gemini | İç yapay zeka metinleri |
Uygulama içi dil
API kodu İngilizce isimler kullanır. İş dilinde karşılıklar:
| Kod adı | İş adı |
|---|---|
| Buyer | Alıcı |
| Seller | Satıcı |
| Officer | Yetkili / saha veya depo personeli |
| Admin | Yönetici |
| Warehouse | Depo |
| BuyerOrder | Alıcı siparişi |
| Transfer | Teslimat taşıması |
| FinancialAccount | Cari hesap |