Players
Translator note: machine-translated baseline. Needs human review by a native UK speaker. EN source is canonical.
Player — це один casino акаунт. casinocrm.io's player CDP обробляє identity merge, anonymous-to-identified promotion, multi-wallet, KYC + responsible-gaming state, і обчислені lifetime totals.
Ідентифікатори
Гравець може мати кілька ідентифікаторів — casinocrm.io resolve-ить ту саму особу через сигнали:
| Ідентифікатор | Коли з'являється |
|---|---|
external_id | Внутрішній player id казино. Надсилається на кожній події. |
email | Встановлено під час реєстрації / через /identify |
phone | E.164 — Twilio + Telegram вимагають це |
telegram_id | Telegram bot інтеграція |
anonymous_ids[] | Pre-signup tracking (web, mobile SDK) |
Плюс 0..N wallets в player_wallets (network + address — використовується crypto-heavy операторами як сильний identity signal).
Identity merge
Коли надходить /identify, casinocrm.io:
- Шукає кандидатів по
external_id→ email → phone → telegram_id → wallet (у priority order) - Якщо рівно один кандидат → merge traits + append
anonymous_id - Якщо нуль кандидатів → створює нового гравця
- Якщо 2+ кандидатів із конфліктними traits → позначає status
conflictдля admin resolution
Повний алгоритм задокументовано в POST /v1/players/identify.
Обчислені totals
stream-processor підтримує real-time totals на players row:
total_deposited(BIGINT subunit, у base валюті tenant)total_withdrawntotal_wageredtotal_wonggr= wagered − wonbet_count,session_countlast_bet_at,last_deposit_at,last_seen_at
Денонімовані в base валюті tenant з FX заблокованим у event time (ди в. Multi-currency).
Status
active — нормальний гравець
self_excluded — RG-blocked (CRM ніколи не надсилає, незалежно від platform support)
banned — operator-banned
deleted — soft-deleted (deleted_at IS NOT NULL)
conflict — identity merge знайшов 2+ кандидатів → admin reviews
Player profile
Відкрийте гравця з Players → клацніть row. Detail page показує:
- Identity strip: external_id + status pill + tier badge
- AI summary placeholder (Phase 3 LLM-driven)
- Predictive cards: lifetime value (sparkline), churn score, engagement
- Identity таблиця: emails / phones / wallets / anon ids
- Money & activity: deposits / wagered / GGR (у tenant base + native wallet валюті)
- Segment memberships
- Bonus grants
- Messages timeline (останні 25)
- Event timeline (останні 50)
- Tier badge + history
Permissions
Player rows завжди tenant-scoped через RLS. Cross-tenant lookups вимагають SECURITY DEFINER helpers (використовується тільки webhook routing — ніколи не повертає sensitive payload).