Kimlik ve izinler
Hesabın kendisi ve ona bağlı doğrulama / cihaz / izin kayıtları.
PhoneVerification
Telefon doğrulama kodu.
| Alan | Tip | Anlamı |
|---|---|---|
| id | Int, otomatik | Kimlik |
| countryId | Int | Ülke |
| phone | String(20) | Numara |
| code | String(30) | Doğrulama kodu |
| createdAt, updatedAt | DateTime | Zaman damgaları |
EmailVerification
E-posta doğrulama. email benzersizdir.
| Alan | Tip | Anlamı |
|---|---|---|
| id | Int | Kimlik |
| String, unique | E-posta | |
| code | String | Kod |
| createdAt, updatedAt | DateTime | Zaman |
User
Tüm rollerin ortak hesabı. Telefon ve e-posta ayrı ayrı benzersizdir. Silme deletedAt ile yumuşaktır.
| Alan | Tip | Anlamı |
|---|---|---|
| id | Int | Kimlik |
| type | UserType | ADMIN, OFFICER, BUYER, SELLER, SYSTEM |
| avatar | String? | Görsel URL |
| firstName, lastName | String? | Ad soyad |
| countryId | Int | Ülke |
| phone | String?, unique | Telefon |
| String?, unique | E-posta | |
| password | String? | Parola özeti |
| unreadMessageCount | Int, varsayılan 0 | Okunmamış sohbet |
| refreshToken | String? | Yenileme jetonu özeti |
| firebaseUUID | String? | Firebase kullanıcı id |
| paytrUtoken | String? | PayTR saklı kart kullanıcı jetonu |
| deletedAt | DateTime? | Soft delete |
| lastSeen | DateTime, now | Son görülme |
| createdAt, updatedAt | DateTime | Zaman |
1:1 profiller: buyer, seller, admin, officer. 1:n: cihaz, izin, favori, sepet, finansal hesap, yazdığı CRM notları, sahip olduğu postlar.
Permission ve UserPermission
İzin tanımı code ile tektir (ör. admin:buyer:full). userType varsayılanı OFFICER. Kullanıcı ataması (userId, permissionId) çiftinde tektir; silmede cascade.
UserDevice
Push kaydı. (userId, deviceId) tektir.
| Alan | Tip | Anlamı |
|---|---|---|
| deviceName | String | Görünen ad |
| deviceId | String | Cihaz kimliği |
| token | String | FCM jetonu |
| tokenProvider | TokenProvider | Yalnız FCM |
Admin
Yönetici profili. userId tektir. callService arama entegrasyonu kimliğidir. Depolar ve AdminBuyer kayıtları buradan iner.
Officer
Yetkili profili. userId tektir. latitude / longitude anlık konum. role isteğe bağlı OfficerRole. Depo ataması AdminOfficer, alıcı ataması AdminBuyerOfficer.
Seller
Tedarikçi. userId isteğe bağlı ve benzersizdir (kullanıcısız satıcı olabilir).
| Alan | Tip | Anlamı |
|---|---|---|
| name | String | Unvan |
| description, phone | String? | Açıklama, telefon |
| taxNumber, taxOffice | String? | Vergi |
| typeId | Int? | SellerType |
| addressId | Int? | Adres |
| paymentPeriod | PaymentPeriod, varsayılan MONDAY | Ödeme günü |
SellerType
Yalnız id ve name. Satıcıları gruplar.
Buyer
Alıcı profili. userId tektir.
| Alan | Tip | Anlamı |
|---|---|---|
| name, description, logo | String? | İşletme kartı |
| companyTypeId | Int? | Şirket tipi (ürün görünürlüğü) |
| String? | İletişim e-postası | |
| referenceCode | String? | Referans kodu |
| isOfflinePayment | Boolean, false | Kapı / çevrimdışı ödeme izni |
| selectedAddressId | Int?, unique | Seçili teslimat adresi |
| selectedInvoiceAddressId | Int?, unique | Seçili fatura adresi |
| waitingSurveyOrderId | String? | Anket bekleyen sipariş id |
| currentGroupId | Int? | Alıcı grubu |
| groupAssignedAt | DateTime? | Gruba alınma zamanı |
| addressId | Int? | Eski/bağlı Address |
Adres ve CRM detayı: CRM ve alıcı grupları.