HandyCafe Docs
owner

Níveis de Fidelidade

O sistema de níveis de fidelidade recompensa clientes regulares com descontos automáticos baseados em sua atividade acumulada. Conforme os membros usam a lan house (gastando dinheiro, fazendo login, comprando pacotes ou fazendo pedidos) eles ganham pontos de fidelidade. Quando o total de pontos ultrapassa o limite de um nível, eles avançam para um nível superior e recebem um desconto maior nos preços das sessões.

Estrutura do Nível

Cada nível de fidelidade é definido por quatro campos:

Campo Descrição
code Um código curto e único para o nível (ex.: silver, gold, vip). Usado internamente para identificação e em respostas da API.
name Um nome de exibição legível (ex.: "Membro Prata", "Membro Ouro"). Mostrado no perfil do membro e na tela de bloqueio do cliente.
threshold_points O número mínimo de pontos de fidelidade que um membro deve acumular para se qualificar para este nível.
discount_bps O desconto aplicado ao preço das sessões, expresso em pontos base. 100 BPS equivale a 1%. Um valor de 500 significa 5% de desconto.

Os níveis são ordenados pelo valor de threshold_points. Um membro pertence ao nível mais alto para o qual atende o limite de pontos.

Descontos em Pontos Base (BPS)

Os descontos são expressos em pontos base (BPS) ao invés de porcentagens para evitar erros de arredondamento de ponto flutuante em cálculos financeiros. Um ponto base equivale a 0,01%, ou um centésimo de porcento.

Valores comuns de desconto:

Valor BPS Porcentagem Exemplo em tarifa de 1000 unidades/hora
250 2,5% Membro paga 975 por hora
500 5% Membro paga 950 por hora
1000 10% Membro paga 900 por hora
1500 15% Membro paga 850 por hora
2000 20% Membro paga 800 por hora

Quando um membro com desconto de nível inicia uma sessão, o motor de preços reduz a tarifa base por hora pelo discount_bps do nível antes de calcular os custos dos segmentos.

Eventos de Fidelidade

Membros ganham pontos através de eventos de fidelidade. Cada evento registra uma alteração de pontos e a atividade que a acionou:

Tipo de Evento Descrição Pontos Típicos
spend O membro pagou por uma sessão (pós-paga ou dedução de carteira). Os pontos são proporcionais ao valor gasto. Varia conforme o valor gasto
usage O membro usou um PC ou console para uma sessão, independente do pagamento. Os pontos são baseados na duração do uso. Varia conforme os minutos usados
visit O membro fez login em um PC cliente. Um bônus fixo por visita, incentivando a frequência regular. Fixo por visita
topup O membro adicionou fundos à sua carteira. Os pontos refletem o valor da recarga. Varia conforme o valor da recarga
order O membro fez um pedido de produto (comida, bebidas, etc.). Os pontos são proporcionais ao total do pedido. Varia conforme o total do pedido
adjustment Um ajuste manual de pontos feito por um administrador. Usado para correções, promoções ou recompensas especiais. Qualquer valor (positivo ou negativo)

Cada registro de evento de fidelidade inclui:

  • points_delta: O número de pontos ganhos (positivo) ou perdidos (negativo) neste evento.
  • amount_minor: O valor monetário associado ao evento (em unidades menores de moeda), se aplicável.
  • minutes_delta: O número de minutos associados ao evento, se aplicável.
  • source_entity / source_entity_id: Uma referência à sessão, pedido ou transação que gerou o evento.
  • event_at: O timestamp de quando o evento ocorreu.

Progressão de Nível

A progressão de nível funciona da seguinte forma:

  1. Um membro realiza uma atividade (sessão, compra, login, etc.).
  2. O sistema cria um evento de fidelidade com o points_delta correspondente.
  3. O total de pontos do membro é recalculado como a soma de todos os valores points_delta dos seus eventos de fidelidade.
  4. O sistema verifica se o novo total atinge o limite para um nível superior.
  5. Se o membro se qualifica para um novo nível, o campo tier é atualizado e o novo desconto entra em vigor na próxima sessão.

A atribuição de nível também pode ser definida manualmente por um administrador, sobrescrevendo o cálculo automático.

Como Descontos de Nível se Aplicam ao Preço das Sessões

Quando o motor de preços calcula o custo de um segmento de sessão para um membro:

  1. O preço base por hora é determinado pela faixa de preços ativa.
  2. Se o membro tem um nível com valor discount_bps, o preço base é reduzido: preço_descontado = preço_base * (10000 - discount_bps) / 10000.
  3. Adicionalmente, descontos individuais no nível do membro (member_discount_bps no registro do membro) são aplicados se presentes.
  4. A tarifa final descontada é usada para calcular o custo do segmento.

Descontos de nível e descontos individuais do membro podem acumular, concedendo ao membro o benefício combinado de ambos.

Criando e Gerenciando Níveis

Para criar um novo nível:

  1. Navegue até Configurações e abra a seção Preços (ou a área dedicada de gerenciamento de níveis).
  2. Clique em Adicionar Nível.
  3. Informe o código (único, minúsculo), nome (rótulo de exibição), pontos limite e desconto BPS.
  4. Salve o nível.

Para editar um nível existente, selecione-o na lista e modifique qualquer campo. Alterações no discount_bps de um nível entram em vigor para todos os membros atribuídos a esse nível a partir da próxima sessão.

Para excluir um nível, remova-o da lista. Membros que estavam atribuídos ao nível excluído voltarão para o próximo nível inferior para o qual se qualificam com base nos seus pontos.

Exemplo de Configuração de Níveis

Uma configuração típica de três níveis pode ser assim:

Código Nome Pontos Limite Desconto BPS
bronze Bronze 0 0
silver Prata 500 500
gold Ouro 2000 1000
vip VIP 5000 1500

Nesta configuração, um novo membro começa no Bronze (sem desconto). Após acumular 500 pontos de visitas, gastos e pedidos, ele automaticamente sobe para Prata com 5% de desconto. Com 2000 pontos atinge Ouro (10%) e com 5000 pontos alcança o status VIP (15%).