Players
Player je jeden casino účet. Player CDP v casinocrm.io zpracovává identity merge, anonymous-to-identified promotion, multi-wallet, KYC + responsible-gaming state a počítané lifetime totals.
Identifikátory
Hráč může mít více identifikátorů — casinocrm.io resolvne stejnou osobu napříč signály:
| Identifikátor | Kdy se objeví |
|---|---|
external_id | Interní player id casina. Posíláno na každé události. |
email | Nastaveno během registrace / přes /identify |
phone | E.164 — Twilio + Telegram tohle vyžaduje |
telegram_id | Telegram bot integrace |
anonymous_ids[] | Pre-signup tracking (web, mobile SDK) |
Plus 0..N wallets v player_wallets (network + address — používáno crypto-heavy operátory jako silný identity signal).
Identity merge
Když dorazí /identify, casinocrm.io:
- Hledá kandidáty podle
external_id→ email → phone → telegram_id → wallet (priority order) - Pokud přesně jeden kandidát → mergne traits + appendne
anonymous_id - Pokud nula kandidátů → vytvoří nového hráče
- Pokud 2+ kandidátů s konfliktními traits → označí status
conflictpro admin resolution
Plný algoritmus dokumentován v POST /v1/players/identify.
Počítané totals
stream-processor udržuje real-time totals na players řádku:
total_deposited(BIGINT subunit, v base měně tenanta)total_withdrawntotal_wageredtotal_wonggr= wagered − wonbet_count,session_countlast_bet_at,last_deposit_at,last_seen_at
Tyto jsou denominovány v base měně tenanta s FX zafixovaným v event time (viz Multi-currency).
Status
active — normální hráč
self_excluded — RG-blocked (CRM nikdy nepošle zprávu, bez ohledu na platform support)
banned — operator-banned
deleted — soft-deleted (deleted_at IS NOT NULL)
conflict — identity merge našel 2+ kandidátů → admin reviews
Player profile
Otevřete hráče z Players → klikněte na řádek. Detail page zobrazí:
- Identity strip: external_id + status pill + tier badge
- AI summary placeholder (Phase 3 LLM-driven)
- Predictive cards: lifetime value (sparkline), churn score, engagement
- Identity tabulka: emails / phones / wallets / anon ids
- Money & activity: deposits / wagered / GGR (v base tenanta + native wallet měna)
- Segment memberships
- Bonus grants
- Messages timeline (posledních 25)
- Event timeline (posledních 50)
- Tier badge + history
Permissions
Player rows jsou vždy tenant-scoped přes RLS. Cross-tenant lookups vyžadují SECURITY DEFINER helpery (používáno pouze webhook routingem — nikdy nevrací sensitive payload).