CRM ve alıcı grupları
Prisma
Alıcının teslimat kartı, yönetici ilişkisi ve segmenti.
BuyerAddress
Alıcıya özel adres kartı. Fiziksel Address buraya bağlanır.
| Alan | Tip | Anlamı |
|---|---|---|
| name | String | Kart adı |
| buyerId | Int | Alıcı |
| offHoursDelivery | Boolean? | Mesai dışı teslim |
| openHour | Float?, 9 | Açılış saati |
| closeHour | Float?, 18 | Kapanış saati |
| isInvoice | Boolean, false | Fatura adresi mi |
| taxNumber, taxOffice | String? | Vergi |
| birthDate | DateTime? | E-belge / kimlik |
| identityNumber | String? | TCKN |
| isEFaturaTr | Boolean, false | E-fatura |
| isMernisFallback | Boolean, false | MERNİS yedek |
| officerNote | String? | Yetkili notu |
| signageName | String?(255) | Tabela |
| exteriorImage | String?(1024) | Dış foto |
| problemType | AdminBuyerProblemType? | Eksik/hatalı veri tipi |
| addressId | Int? | Fiziksel adres |
| serviceAreaId | Int? | Dikdörtgen alan |
| coordinateZoneId | Int? | Poligon bölge |
| minBasketPrice | Float, 0 | Bu adrese özel asgari |
Alıcının seçili teslimat / fatura işaretleri bu satıra 1:1 bakar (selectedBy, şemadaki seletedInvoiceBy).
AdminBuyer
Yönetici–alıcı CRM. (adminId, buyerId) tektir.
| Alan | Tip | Anlamı |
|---|---|---|
| fixServicePrice | Float, 0 | Sabit hizmet bedeli |
| orderCount | Int?, 0 | Sipariş adedi |
| orderPeriodDay | Int?, 0 | Sipariş periyodu (gün) |
| riskOffLost | Boolean, false | Kayıp riski (şema yazımı) |
| isOffilePayment | Boolean, false | Çevrimdışı ödeme (şema yazımı) |
| deliveredOrderCount / Amount / LastDate | Int?/Float?/DateTime? | Teslim özeti |
| returnedOrderCount / Amount / LastDate | İade özeti | |
| issueOrderCount / LastDate | Sorun özeti | |
| lastCallDate, callCount | DateTime? / Int? | Arama |
| status | AdminBuyerStatus? | ACTIVE, INACTIVE, ZOMBIE |
| actionStatus | AdminBuyerActionStatus? | Sonraki iş (arama, sipariş, ziyaret…) |
| feadbackScore | Int?, 0 | Geri bildirim (şema yazımı) |
AdminBuyerStatusHistory
status + createdAt. Durum tarihçesi.
AdminBuyerFeadbackHistory
feadbackScore tarihçesi.
AdminBuyerOfficer
(adminBuyerId, officerId) tektir. Alıcıya yetkili ataması.
AdminBuyerComment
| Alan | Tip | Anlamı |
|---|---|---|
| createdByUserId | Int | Yazan kullanıcı |
| comment | String | Metin |
| type | AdminBuyerCommentType, INFO | Bilgi, uyarı, kritik, arama, sepet, kalite, fiyat, teslimat, destek, fatura… |
| officerRole | OfficerRole? | Hangi ekip bağlamı |
| isActive | Boolean, true | Aktif |
BuyerGroup
| Alan | Tip | Anlamı |
|---|---|---|
| code | String, unique | Kod |
| name | String | Ad |
| rank | Int, unique | Kademe; yüksek = üst grup (şema yorumu) |
| minMonthlyRevenue | Float, 0 | Aylık ciro eşiği |
| minMonthlyOrderCount | Int, 0 | Aylık sipariş eşiği |
| minAvgBasketSize | Float, 0 | Ortalama sepet eşiği |
| description | String? | Açıklama |
| badgeColor | String? | Rozet rengi |
| isActive | Boolean, true | Aktif |
Üç eşik birlikte aranır.
BuyerGroupEvaluation
Ölçüm satırı. (buyerId, evaluatedAt) indeksi.
| Alan | Tip | Anlamı |
|---|---|---|
| previousGroupId | Int? | Önceki grup (kolon; ilişki resultGroup üzerinden) |
| resultGroupId | Int? | Sonuç grup |
| periodStart, periodEnd | DateTime | Dönem |
| monthlyRevenue | Float | Ölçülen ciro |
| monthlyOrderCount | Int | Ölçülen adet |
| avgBasketSize | Float | Ölçülen sepet |
| changed | Boolean, false | Grup değişti mi |
| evaluatedAt | DateTime, now | Ölçüm anı |