Desbloqueios Gratuitos (Beneficio de Nivel)
Desbloqueios gratuitos sao um beneficio de nivel de fidelidade que isenta a taxa de desbloqueio para um numero especificado de viagens a cada mes. Clientes de niveis mais altos recebem mais desbloqueios gratuitos, criando uma razao convincente para permanecer engajado com sua frota.
Visao Geral
Cada nivel de fidelidade pode incluir um numero configuravel de desbloqueios gratuitos por mes. Quando clientes iniciam uma viagem, o sistema automaticamente verifica seus beneficios de nivel e aplica um desbloqueio gratuito se disponivel, economizando a taxa de desbloqueio.
Principais Recursos
- Configuracao por nivel - Defina quantidades diferentes para cada nivel de fidelidade
- Reset mensal - Contador reinicia no inicio de cada mes
- Aplicacao automatica - Nenhuma acao necessaria dos clientes
- Rastreamento em tempo real - Clientes veem desbloqueios gratuitos restantes no app
- Rastreamento por viagem - Cada viagem registra se desbloqueio gratuito foi usado
Como Funciona
Cliente toca em "Desbloquear"
↓
Sistema verifica nivel de fidelidade
↓
Tem desbloqueios gratuitos restantes?
├── Sim → Pula taxa de desbloqueio
│ Incrementa contador de uso
│ Marca viagem como "usou desbloqueio gratuito"
│ Cliente ve "Taxa de desbloqueio R$0"
└── Nao → Cobra taxa de desbloqueio normalmente
Cliente paga da carteira
Configurando Desbloqueios Gratuitos
Configurando Niveis
Navegar para Niveis de Fidelidade
Va para Painel → Fidelidade → Niveis.
Criar ou Editar Nivel
Clique em Adicionar Nivel ou edite um nivel existente.
Definir Desbloqueios Gratuitos
Insira o numero de Desbloqueios Gratuitos/Mes (ex: 5).
Salvar Nivel
Clique em Salvar para aplicar as alteracoes.
Exemplo de Estrutura de Niveis
| Nivel | Viagens Necessarias | Desbloqueios Gratuitos/Mes |
|---|---|---|
| Bronze | 0 | 0 |
| Prata | 5+ | 2 |
| Ouro | 15+ | 5 |
| Platina | 30+ | 10 |
| VIP | 50+ | Ilimitado (99) |
Beneficios de Nivel Acumulam
Desbloqueios gratuitos sao apenas um beneficio de nivel. Niveis tambem podem incluir descontos na taxa de desbloqueio, descontos por minuto, multiplicadores de pontos e mais.
Reset Mensal
Contagens de desbloqueios gratuitos reiniciam automaticamente no inicio de cada mes calendario.
Logica de Reset
Novo Mes Comeca (ex: 1o de fevereiro)
↓
Cliente inicia primeira viagem do mes
↓
Sistema verifica: Data de reset e antes deste mes?
├── Sim → Reinicia contador para 0
│ Define data de reset para 1o de fev
└── Nao → Usa contador existente
Notas Importantes
- Reset acontece na primeira viagem do novo mes, nao a meia-noite
- Desbloqueios gratuitos nao utilizados NAO acumulam
- Clientes sao notificados de sua nova cota mensal no app
Experiencia do Cliente
Antes de Iniciar Viagem
Clientes veem seu status de fidelidade:
- Nome e distintivo do nivel atual
- Desbloqueios gratuitos usados este mes
- Desbloqueios gratuitos restantes
Durante o Desbloqueio
Quando um desbloqueio gratuito esta disponivel:
- Cliente toca em "Desbloquear" no veiculo
- Sistema aplica desbloqueio gratuito automaticamente
- Mensagem toast: "Desbloqueio gratuito aplicado! X restantes este mes"
- Taxa de desbloqueio aparece como R$0 no recibo
Na Secao de Fidelidade
O aplicativo movel exibe:
free_unlocks_used- Quantos usados este mesfree_unlocks_remaining- Quantos restam para usar- Barra de progresso visual mostrando uso
Campos de Configuracao de Nivel
Tabela loyalty_tiers
| Coluna | Tipo | Descricao |
|---|---|---|
free_unlocks_per_month | Integer | Cota mensal de desbloqueios gratuitos |
min_rides_in_period | Integer | Viagens necessarias para qualificar |
qualification_period_days | Integer | Periodo para contagem de viagens (padrao: 28) |
Tabela customer_loyalty
| Coluna | Tipo | Descricao |
|---|---|---|
free_unlocks_used_this_month | Integer | Contagem usada no mes atual |
free_unlocks_reset_at | Date | Data do ultimo reset mensal |
tier_id | UUID | Nivel de fidelidade atual |
Detalhes de Implementacao
Verificar e Aplicar Desbloqueio Gratuito
Quando uma viagem inicia, o sistema:
- Obter info do nivel - Buscar nivel atual do cliente e beneficios
- Calcular restantes -
desbloqueiosRestantes = tier.free_unlocks_per_month - free_unlocks_used_this_month - Verificar disponibilidade - Se
desbloqueiosRestantes > 0 - Aplicar beneficio - Incrementar contador, pular taxa de desbloqueio
- Registrar na viagem - Definir
used_free_unlock = true
// Logica simplificada do fluxo de desbloqueio
if (tierInfo.freeUnlocksRemaining > 0) {
const freeUnlockUsed = await applyFreeUnlock(admin, customer.id)
if (freeUnlockUsed) {
// Pular cobranca de taxa de desbloqueio
// Atualizar registro da viagem
await admin.from('rides').update({
used_free_unlock: true
}).eq('id', ride.id)
}
}
Funcao applyFreeUnlock
async function applyFreeUnlock(admin, customerId): Promise<boolean> {
// 1. Obter registro de fidelidade do cliente
// 2. Obter cota de desbloqueios gratuitos do nivel
// 3. Verificar se reset mensal e necessario
// 4. Verificar desbloqueios gratuitos disponiveis
// 5. Incrementar contador
// 6. Retornar sucesso
}
Referencia da API
Obter Status de Fidelidade (Mobile)
GET /api/mobile/loyalty
Resposta inclui:
{
"tier_progress": {
"free_unlocks_used": 3,
"free_unlocks_remaining": 2
},
"tier": {
"free_unlocks_per_month": 5
}
}
Verificacao de Beneficios de Nivel
import { getTierBenefits } from '@/lib/billing/loyalty'
const benefits = await getTierBenefits(admin, customerId, accountId)
// Retorna: { canUseFreeUnlock: boolean, ... }
Melhores Praticas
Definindo Quantidades
- Comece conservador - Inicie com contagens modestas de desbloqueios gratuitos
- Crie gaps significativos - Cada nivel deve parecer uma melhoria
- Considere a economia - Leve em conta o valor medio da taxa de desbloqueio
- Equilibre com outros beneficios - Nao torne um nivel muito poderoso
Exemplos de Calculos
Taxa media de desbloqueio: R$1,50
Nivel Ouro: 5 desbloqueios gratuitos = R$7,50 de valor/mes
Nivel Platina: 10 desbloqueios gratuitos = R$15,00 de valor/mes
Comunicacao
- Destaque o beneficio - Mostre desbloqueios gratuitos de forma proeminente nas descricoes de nivel
- Mostre progresso - Exiba uso claramente no app
- Notifique proximo da expiracao - Alerte clientes quando o mes esta terminando
- Celebre economia - Mostre economia acumulada dos desbloqueios gratuitos
Solucao de Problemas
Desbloqueio Gratuito Nao Aplicado
- Verifique configuracao do nivel - Confirme que
free_unlocks_per_month> 0 - Verifique contagem de uso - Pode ter usado todos os desbloqueios disponiveis
- Verifique atribuicao de nivel - Cliente pode ainda nao se qualificar para o nivel
- Verifique data de reset - Garanta que reset mensal ocorreu corretamente
Contagem Errada Exibida
- Verifique banco de dados - Confira
customer_loyalty.free_unlocks_used_this_month - Verifique logica de reset -
free_unlocks_reset_atdeve ser do mes atual - Revise viagens recentes - Procure por viagens com
used_free_unlock = true
Problemas de Reset Mensal
- Verifique gatilho de reset - Acontece na primeira viagem, nao automaticamente
- Verifique comparacao de datas - Reset at deve ser comparado com inicio do mes
- Reset manual - Funcao de banco de dados
reset_monthly_free_unlockspode ajudar
Combinando com Outros Beneficios
Desbloqueios gratuitos funcionam junto com outros beneficios de nivel:
| Beneficio | Acumula com Desbloqueios Gratuitos? |
|---|---|
| Desconto % na Taxa de Desbloqueio | Nao (desbloqueio gratuito = 100% de desconto) |
| Desconto por Minuto | Sim |
| Multiplicador de Pontos | Sim |
| Tempo de Reserva | Sim |
| Suporte Prioritario | Sim |
Quando um desbloqueio gratuito e usado, unlock_discount_pct e ignorado para aquela viagem ja que a taxa ja e R$0.
Beneficio Valioso de Fidelidade
Desbloqueios gratuitos sao um dos beneficios mais tangiveis que voce pode oferecer. Clientes veem imediatamente a economia, fazendo a progressao de nivel parecer recompensadora. Monitore padroes de uso para otimizar sua estrutura de niveis ao longo do tempo.