Resumen General

El Backend de Recompensas procesa eventos en tiempo real desde una cola de mensajes (Kafka) para potenciar las siguientes características:
  1. Lealtad (Sistema de Niveles): Progresión de XP y subidas de nivel basadas en la actividad del jugador
  2. Desafíos: Seguimiento del progreso en apuestas, depósitos, conteo de casino, inicio de sesión consecutivo y otros tipos de desafíos
  3. 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:
  1. Sistema de Lealtad
  2. Desafíos de Apuestas
  3. Desafíos de Conteo de Casino
  4. Desafíos de Multiplicador de Ganancias
  5. Servicio de Mapeo de Juegos
Campos Requeridos:
CampoTipoDescripció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:
  1. Servicio de Lealtad: para contribución de XP basada en depósitos
  2. Desafíos de Depósito (Consecutivos)
Campos Requeridos:
CampoTipoDescripció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:
  1. Desafíos de Inicio de Sesión Consecutivo
Campos Requeridos:
CampoTipoDescripció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:
  1. Servicio de Lealtad: para contribución de XP de apuestas deportivas
Campos Requeridos:
CampoTipoDescripció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: