Eventos en Tiempo Real
Este documento describe los eventos en tiempo real (tipos de notificaciones) consumidos por los servicios del Backend de Recompensas, incluyendo los campos requeridos para cada tipo de evento y qué se
Descripción General
El Backend de Recompensas procesa eventos en tiempo real desde una cola de mensajes (Kafka) para impulsar las siguientes características:
- Lealtad (Sistema de Niveles): Progresión de XP y subidas de nivel basadas en la actividad del jugador
- Desafíos: Seguimiento del progreso en apuestas, depósitos, conteo de casino, inicio de sesión consecutivo y otros tipos de desafíos
- Mapeo de Juegos: Descubrimiento automático y mapeo de juegos desde la actividad del jugador
Tipos de Eventos
GamesEnriched (CasinoEvent)
Descripción: Eventos individuales de transacciones de casino (apuesta o ganancia) antes de la agregación de rondas.
Usado por:
- Sistema de Lealtad
- Desafíos de Apuestas
- Desafíos de Conteo de Casino
- Desafíos de Multiplicador de Ganancia
- Servicio de Mapeo de Juegos
Campos Requeridos:
| Campo | Tipo | Descripción |
|---|---|---|
user_id | int64 | ID interno del usuario (debe ser > 0 y < MaxInt32) |
game_id | string | Identificador del juego |
game_name | string | Nombre del juego |
vendor_id | string | Identificador del proveedor/vendedor del juego. Puede ser opcional si allow_incomplete_game_hash está habilitado. |
vendor_name | string | Nombre del proveedor/vendedor del juego. Puede ser opcional si allow_incomplete_game_hash está habilitado. |
origin | string | Identificador del origen del jugador |
type | string | Tipo de transacción (ej., "bet", "win") |
amount | float64 | Cantidad de la transacción (debe ser > 0) |
activity_id | string | Identificador único de actividad/transacción |
currency | string | Código de moneda |
timestamp | time | Marca de tiempo del evento (no puede ser cero) |
status | string | Debe ser "approved" o "rollback" |
round_id | string | Identificador de la ronda del juego. Requerido por algunos servicios, configurable. |
Ejemplo JSON:
PaymentEnriched
Descripción: Eventos de transacciones de pago (depósitos y retiros).
Usado por:
- Servicio de Lealtad: para contribución de XP basada en depósitos
- Desafíos de Depósito (Consecutivos)
Campos Requeridos:
| Campo | Tipo | Descripción |
|---|---|---|
user_id | int64 | ID interno del usuario (debe ser > 0 y < MaxInt32) |
payment_id | string | Identificador único del pago |
status | string | Estado del pago. Debe ser "approved" para el procesamiento de desafíos. También se soporta el estado de rollback para la reversión de contribución de lealtad. |
type | string | Tipo de pago. Debe ser "deposit" para el procesamiento de desafíos. |
amount | float64 | Cantidad del pago (debe ser > 0) |
currency | string | Código de moneda |
origin | string | Identificador del origen del jugador |
timestamp | time | Marca de tiempo del evento (no puede ser cero) |
Ejemplo JSON:
LoginEventEnriched
Descripción: Eventos de inicio de sesión del usuario.
Usado por:
- Desafíos de Inicio de Sesión Consecutivo
Campos Requeridos:
| Campo | Tipo | Descripción |
|---|---|---|
user_id | int64 | ID interno del usuario (debe ser > 0 y < MaxInt32) |
unique_id | string | Identificador único del evento |
timestamp | time | Marca de tiempo del evento (no puede ser cero) |
Ejemplo JSON:
SportsBetEnriched
Descripción: Eventos de apuestas deportivas.
Usado por:
- Servicio de Lealtad: para contribución de XP de apuestas deportivas
Campos Requeridos:
| Campo | Tipo | Descripción |
|---|---|---|
user_id | int64 | ID interno del usuario (debe ser > 0) |
origin | string | Identificador del origen del jugador |
activity_id | string | Identificador único de actividad |
status | string | Estado de la apuesta. Para la contribución de XP de lealtad, solo se procesan eventos con estado "Settlement". |
currency | string | Código de moneda |
timestamp | time | Marca de tiempo del evento (no puede ser cero) |
amount | float64 | Cantidad de la apuesta (debe ser > 0) |
type | string | Tipo de apuesta |
Ejemplo JSON: