Visão Geral

O Backend de Recompensas processa eventos em tempo real de uma fila de mensagens (Kafka) para alimentar as seguintes funcionalidades:
  1. Fidelidade (Sistema de Níveis): Progressão de XP e subidas de nível baseadas na atividade do jogador
  2. Desafios: Acompanhar o progresso em apostas, depósitos, contagem de cassino, login consecutivo e outros tipos de desafios
  3. Mapeamento de Jogos: Descoberta e mapeamento automático de jogos a partir da atividade do jogador

Tipos de Eventos

GamesEnriched (CasinoEvent)

Descrição: Eventos individuais de transação de cassino (aposta ou vitória) antes da agregação de rodadas.
Usado por:
  1. Sistema de Fidelidade
  2. Desafios de Apostas
  3. Desafios de Contagem de Cassino
  4. Desafios de Multiplicador de Vitória
  5. Serviço de Mapeamento de Jogos
Campos Obrigatórios:
CampoTipoDescrição
user_id
int64
ID interno do usuário (deve ser > 0 e < MaxInt32)
game_id
string
Identificador do jogo
game_name
string
Nome do jogo
vendor_id
string
Identificador do fornecedor/provedor do jogo. Pode ser opcional se allow_incomplete_game_hash estiver habilitado.
vendor_name
string
Nome do fornecedor/provedor do jogo. Pode ser opcional se allow_incomplete_game_hash estiver habilitado.
origin
string
Identificador de origem do jogador
type
string
Tipo de transação (ex: "bet", "win")
amount
float64
Valor da transação (deve ser > 0)
activity_id
string
Identificador único da atividade/transação
currency
string
Código da moeda
timestamp
time
Timestamp do evento (não pode ser zero)
status
string
Deve ser "approved" ou "rollback"
round_id
string
Identificador da rodada do jogo. Obrigatório para alguns serviços, configurável.
Exemplo JSON:

PaymentEnriched

Descrição: Eventos de transação de pagamento (depósitos e saques).
Usado por:
  1. Serviço de Fidelidade: para contribuição de XP baseada em depósitos
  2. Desafios de Depósito (Consecutivo)
Campos Obrigatórios:
CampoTipoDescrição
user_id
int64
ID interno do usuário (deve ser > 0 e < MaxInt32)
payment_id
string
Identificador único do pagamento
status
string
Status do pagamento. Deve ser "approved" para processamento de desafios. Status de rollback também é suportado para reversão de contribuição de fidelidade.
type
string
Tipo de pagamento. Deve ser "deposit" para processamento de desafios.
amount
float64
Valor do pagamento (deve ser > 0)
currency
string
Código da moeda
origin
string
Identificador de origem do jogador
timestamp
time
Timestamp do evento (não pode ser zero)
Exemplo JSON:

LoginEventEnriched

Descrição: Eventos de login do usuário.
Usado por:
  1. Desafios de Login Consecutivo
Campos Obrigatórios:
CampoTipoDescrição
user_id
int64
ID interno do usuário (deve ser > 0 e < MaxInt32)
unique_id
string
Identificador único do evento
timestamp
time
Timestamp do evento (não pode ser zero)
Exemplo JSON:

SportsBetEnriched

Descrição: Eventos de apostas esportivas.
Usado por:
  1. Serviço de Fidelidade: para contribuição de XP de apostas esportivas
Campos Obrigatórios:
CampoTipoDescrição
user_id
int64
ID interno do usuário (deve ser > 0)
origin
string
Identificador de origem do jogador
activity_id
string
Identificador único da atividade
status
string
Status da aposta. Para contribuição de XP de fidelidade, apenas eventos com status "Settlement" são processados.
currency
string
Código da moeda
timestamp
time
Timestamp do evento (não pode ser zero)
amount
float64
Valor da aposta (deve ser > 0)
type
string
Tipo da aposta
Exemplo JSON: