Kayıt ve giriş
Bu akış auth ve user modüllerinden okunur. Alıcı kaydı en zengin yoldur; satıcı, yetkili ve yönetici kayıtları da aynı çekirdeği kullanır.
Alıcı kaydı
Uyarılar
Kayıt isteği gelince operasyon Telegram kanalına bilgi gider. Pazarlama rolündeki yetkililere Firebase bildirimi gider.
Kod doğrulama
Telefon, e-posta veya Firebase kimliği doğrulanır. Telefon kodu ülke + numara ile PhoneVerification satırındadır. E-posta kodu EmailVerification satırındadır (e-posta benzersiz).
Kullanıcı ve alıcı
Prisma’da User oluşur (type = BUYER). Ardından Buyer ve global yöneticiye bağlı AdminBuyer kaydı yazılır.
Yan etkiler
buyer.firestore-sync olayı Firestore’a gider.
Kayıt ödülü
Aktif BUYER_SIGNUP tanımı varsa cariye REWARD hareketi yazılır. Ödül hata verirse kayıt yine tamamlanır; hata yalnızca loglanır.
Analitik ve oturum
BigQuery’ye alıcı kayıt olayı yazılır. Erişim ve yenileme jetonu üretilir; yenileme özeti kullanıcı satırına yazılır.
Kayıt ödülü
Ödül tanımları veritabanında değildir; financial modülündeki REWARDS listesindedir. grantSignupReward bu listeden BUYER_SIGNUP kodlu, isActive olan ve tarih aralığına uyan kayıtları alır. Bitiş tarihi boşsa süre sınırsızdır. Eşleşen tanım yoksa hiçbir hareket yazılmaz.
Her tanım, kendi warehouseId deposundaki cariye bir işlem açar. Depo bulunamazsa o tanım atlanır. Tutar TransactionType.REWARD (artı bakiye) ile gider; açıklama tanımın name alanıdır, transactionTypeCode tanımın id değeridir.
Şu anki tek tanım:
| Alan | Değer | Anlamı |
|---|---|---|
| id | BUYER_SIGNUP_REWARD_2026_08 | Hareket kodu |
| code | BUYER_SIGNUP | Kayıt ödülü türü |
| name | Yeni Üye Kayıt Ödülü | Cari açıklaması |
| amount | 250 | Cariye yazılan tutar |
| warehouseId | 1 | Hangi depo carisi |
| startDate | 2026-08-20 | Bu tarihten itibaren |
| endDate | boş | Bitiş yok |
| isActive | true | Kullanılıyor |
Tanım listesine aynı koddan birden fazla aktif satır konursa her biri ayrı hareket üretir. Yalnız yeni alıcı kaydı bu yolu çağırır; satıcı / yetkili / yönetici kaydı çağırmaz.
Cari tarafı: Para ve fatura. Hareket tipi: Cari ve fatura.
Giriş
Giriş üç yoldan biridir: telefon kaydı, Firebase kimlik jetonu veya parola (bcrypt). Başarılı girişte jeton yenilenir; Firebase UUID güncellenebilir.
Çıkışta yenileme jetonu temizlenir. Verilen cihaz kimliği varsa UserDevice silinir.
Cihaz
Push için cihaz adı, cihaz kimliği ve FCM jetonu UserDevice tablosuna yazılır. Aynı kullanıcı + cihaz çifti tektir. Sağlayıcı enum’u yalnız FCM.
Veri nerede?
| Kayıt | Depo |
|---|---|
| Kullanıcı, alıcı, CRM bağlantısı, cihaz | MySQL |
| Doğrulama kodları | MySQL |
| Alıcı kopyası (sonradan siparişte) | Mongo gömülü |
| Kayıt ödülü (varsa) | Prisma cari bakiye + Mongo accountTransactions |
| Kayıt olayı | BigQuery buyer_registrations |
Şema: Kimlik ve izinler.