- • Permanent invite relation binding — one write per invitee, never changes
- • One refCode per user — generated on registration, optionally regenerated (rate-limited)
- • RefCode resolution (pre-register validation)
- • Agent flag toggle — admin-only, audited (v1.0 flag stored in user_invite; v1.1+ dedicated log table)
- • Upline chain query (getUpline) — used by wallet-service v1.1+ for commission calculation
- • v1.1+: commission calculation, ladder amplification, anti-fraud, daily settlement job
- v1.0 Consumes:
user.registered — binds invite relation if inviterUid is non-null
- v1.0 Produces: none
- v1.1+ Produces:
agent.commission.settled — daily settlement job output (partition key: agentUid)
- v1.1+ also consumes:
game.draw.completed, wallet.deposit.credited for commission triggers
- • MySQL
one_agent — 2 tables in v1.0 (user_invite, user_ref_code), V1 migration
- • Kafka — consumes
user.registered; produces nothing in v1.0
- • Feign callee: IAdminService (audit log), IUserService (lookup — if needed)
- • No Redis, no chain-service, no SMS dependency in v1.0
- • v1.1+: commission tables + ladder + anti-fraud added here, not polluting other services