Eventos en Tiempo Real
Este documento describe los eventos en tiempo real (tipos de notificación) consumidos por los servicios del Backend de Recompensas, incluyendo los campos requeridos para cada tipo de evento y qué serv
Resumen General
El Backend de Recompensas procesa eventos en tiempo real desde una cola de mensajes (Kafka) para potenciar 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 Ganancias
- Servicio de Mapeo de Juegos
Campos Requeridos:
| Campo | Tipo | Descripción |
|---|---|---|
user_id | int64 | ID de usuario interno (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 de origen del jugador |
type | string | Tipo de transacción (ej., "bet", "win") |
amount | float64 | Monto 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 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 de usuario interno (debe ser > 0 y < MaxInt32) |
payment_id | string | Identificador único de pago |
status | string | Estado del pago. Debe ser "approved" para el procesamiento de desafíos. También se admite el estado de reversión 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 | Monto del pago (debe ser > 0) |
currency | string | Código de moneda |
origin | string | Identificador de 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 de usuario.
Usado por:
- Desafíos de Inicio de Sesión Consecutivo
Campos Requeridos:
| Campo | Tipo | Descripción |
|---|---|---|
user_id | int64 | ID de usuario interno (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 de usuario interno (debe ser > 0) |
origin | string | Identificador de 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 | Monto de la apuesta (debe ser > 0) |
type | string | Tipo de apuesta |
Ejemplo JSON: