Configuracao de Viagens em Grupo
Viagens em grupo permitem que um unico cliente desbloqueie multiplos veiculos para andar com amigos, familia ou grupos. A carteira ou pacote do piloto principal cobre todos os veiculos, facilitando a organizacao de passeios em grupo.
Visao Geral
Quando viagens em grupo estao habilitadas, clientes podem desbloquear veiculos adicionais alem do seu. Todas as viagens no grupo sao vinculadas a viagem pai para fins de cobranca e rastreamento. Isso e ideal para turistas, familias ou qualquer cenario onde multiplas pessoas querem andar juntas.
Principais Recursos
- Sessoes multi-veiculo - Um cliente, multiplos veiculos
- Cobranca compartilhada - Piloto principal paga por todos os membros do grupo
- Integracao com pacotes - Pacotes de viagem podem definir limites de tamanho do grupo
- Limites configuraveis - Defina tamanho maximo do grupo por localizacao
- Rastreamento em tempo real - Todas as viagens do grupo vinculadas a pai
Como Funciona
Cliente desbloqueia primeiro veiculo (Viagem Pai)
|
Cliente toca em "Adicionar piloto" ou escaneia outro veiculo
|
Sistema verifica limite do grupo (pacote ou configuracoes)
|
Dentro do limite?
|-- Sim -> Cria viagem filha vinculada a pai
| Cliente desbloqueia veiculo adicional
| Cobranca vinculada a viagem pai
+-- Nao -> Exibe "Limite do grupo atingido"
Cliente nao pode adicionar mais pilotos
Habilitando Viagens em Grupo
Configuracoes da Subconta
Navegue ate Configuracoes
Va para Painel -> Configuracoes.
Encontre Secao de Viagens
Role ate a secao Viagens.
Defina Limite do Grupo
Digite Max Veiculos por Grupo (ex.: 4).
Salve Configuracoes
Clique em Salvar para aplicar mudancas.
Opcoes de Configuracao
| Configuracao | Descricao | Padrao |
|---|---|---|
| Max Veiculos por Grupo | Maximo de veiculos que um cliente pode desbloquear | 4 |
Limite Padrao
Se nenhum limite for configurado, o sistema usa padrao de 4 veiculos por grupo (DEFAULT_GROUP_RIDE_LIMIT).
Limites de Grupo Baseados em Pacote
Pacotes de viagem podem substituir o limite de grupo da subconta com sua propria configuracao max_riders. Isso permite que pacotes premium oferecam grupos maiores.
Ordem de Prioridade
- Pacote Ativo - Se cliente tem pacote com
max_riders > 1, usa limite do pacote - Configuracoes da Subconta - Fallback para
other.group_rides_max - Padrao - Usa DEFAULT_GROUP_RIDE_LIMIT (4)
Exemplo de Configuracao de Pacote
| Pacote | Preco | Tempo | Max Pilotos |
|---|---|---|---|
| Pacote Solo | R$49,99 | 1 hora | 1 |
| Pacote Dupla | R$89,99 | 1 hora | 2 |
| Pacote Familia | R$149,99 | 2 horas | 4 |
| Tour em Grupo | R$249,99 | 4 horas | 8 |
Quando um cliente com "Tour em Grupo" desbloqueia um veiculo, ele pode adicionar ate 7 pilotos adicionais (8 total), independente do limite padrao da subconta.
Estrutura da Viagem
Viagens Pai e Filha
Viagens em grupo usam um relacionamento pai-filho:
Viagem Pai (Veiculo do cliente)
|
+-- Viagem Filha 1 (Veiculo do amigo)
+-- Viagem Filha 2 (Veiculo do familiar)
+-- Viagem Filha 3 (Veiculo de outro amigo)
Viagem Pai:
- Criada primeiro quando cliente desbloqueia
is_group_ride_parent = true- Toda cobranca cobrada na pai
Viagens Filhas:
- Criadas quando veiculos adicionais desbloqueados
parent_ride_idreferencia a pai- Cobranca acumula para viagem pai
Campos do Banco de Dados
Tabela Rides:
| Coluna | Tipo | Descricao |
|---|---|---|
is_group_ride_parent | Boolean | True se esta e a viagem pai |
parent_ride_id | UUID | Referencia a viagem pai (para filhas) |
ride_status | Texto | active, paused, completed |
Experiencia do Cliente
Iniciando uma Viagem em Grupo
- Primeiro veiculo - Cliente escaneia/desbloqueia seu veiculo normalmente
- Adicionar pilotos - Toca em "Adicionar Piloto" ou escaneia veiculos adicionais
- Confirmar - Cada veiculo adicional mostra vinculado ao grupo
- Andar junto - Todos os veiculos ativos sob uma sessao
Durante a Viagem
- Todos os membros do grupo pilotam independentemente
- Piloto pai pode ver todas as viagens ativas
- Pausar/retomar afeta veiculos individuais
- Pai pode encerrar todas as viagens de uma vez
Encerrando Viagens em Grupo
Quando a viagem pai termina:
- Todas as viagens filhas ativas sao solicitadas a encerrar
- Cobranca total calculada em todas as viagens
- Cobranca unica na carteira/cartao do piloto pai
- Recibo mostra detalhamento por veiculo
Consideracoes de Cobranca
Como Cobranças Funcionam
Todos os custos de viagem em grupo sao cobrados do piloto pai:
Viagem Pai: 30 min x R$1,25 = R$37,50
Viagem Filha 1: 28 min x R$1,25 = R$35,00
Viagem Filha 2: 32 min x R$1,25 = R$40,00
Viagem Filha 3: 25 min x R$1,25 = R$31,25
-----------------------------------
Total: R$143,75 cobrado do pai
Consumo de Pacote
Ao usar um pacote de viagem:
- Tempo e deduzido proporcionalmente
- Todos os pilotos compartilham beneficios do pacote
max_ridersdo pacote determina tamanho do grupo- Tempo excedente cobrado nas taxas padrao
Taxas de Desbloqueio
| Cenario | Comportamento |
|---|---|
| Pacote inclui desbloqueios | Desbloqueios gratuitos compartilhados entre grupo |
| Sem pacote | Cada veiculo cobrado taxa de desbloqueio |
| Beneficio de desbloqueio gratuito | Aplica apenas a viagem pai |
Referencia da API
Obter Limite Efetivo de Grupo
import { getEffectiveGroupRideLimit } from '@/lib/rides/group-session'
const result = await getEffectiveGroupRideLimit(admin, customerUuid, subaccountId)
// Retorna: { limit: number, source: 'package' | 'settings' | 'default', packageInfo? }
Contar Filhas Ativas do Grupo
import { countActiveGroupChildren } from '@/lib/rides/group-session'
const childCount = await countActiveGroupChildren(admin, parentRideId)
// Retorna: numero de viagens filhas ativas
Verificar Propriedade da Viagem
import { rideBelongsToCustomer } from '@/lib/rides/group-session'
const isOwner = rideBelongsToCustomer(ride, customer, userId)
// Retorna: boolean
Melhores Praticas
Definindo Limites de Grupo
- Considere disponibilidade de veiculos - Limites maiores podem esgotar frota
- Combine com publico-alvo - Turistas podem precisar de grupos maiores
- Balance valor do pacote - Pacotes premium podem oferecer grupos maiores
- Consideracoes de seguranca - Grupos grandes podem precisar de coordenacao
Consideracoes Operacionais
- Consciencia da equipe - Treine equipe em suporte a viagens em grupo
- Proximidade de veiculos - Grupos podem estacionar juntos
- Comunicacao com cliente - Instrucoes claras para inicio de grupo
- Tratamento de fim de viagem - Ajude grupos a encerrar todas as viagens
Design de Pacotes
- Crie pacotes de grupo - Pacotes dedicados para grupos
- Precifique apropriadamente - Descontos de grupo encorajam uso
- Marketing claro - Destaque max_riders na descricao do pacote
- Alocacao de tempo - Considere duracoes maiores para grupos
Solucao de Problemas
Nao Consegue Adicionar Mais Pilotos
- Verifique limite atingido - Conte viagens filhas ativas
- Verifique pacote - Pacote suporta mais pilotos?
- Verifique configuracoes - Configuracao group_rides_max da subconta
- Pai ativa - Viagem pai ainda deve estar ativa
Problemas de Cobranca
- Verifique viagem pai - Todas as cobranças vao para pai
- Verifique vinculacao de filhas -
parent_ride_iddeve estar definido - Revise pacote - Beneficios do pacote podem aplicar diferentemente
Viagem Filha Nao Vinculada
- Verifique criacao da viagem - parent_ride_id foi definido?
- Verifique correspondencia de cliente - Mesmo cliente para todas as viagens
- Revise fluxo de desbloqueio - Opcao de viagem em grupo selecionada?
Esquema do Banco de Dados
Consultas Principais
Encontrar viagem pai:
SELECT * FROM rides
WHERE customer_uuid = 'uuid'
AND ride_status IN ('active', 'paused')
AND is_group_ride_parent = true
Contar tamanho do grupo:
SELECT COUNT(*) FROM rides
WHERE parent_ride_id = 'parent-uuid'
AND ride_status IN ('active', 'paused')
Obter total do grupo:
SELECT SUM(total_cost) as group_total
FROM rides
WHERE parent_ride_id = 'parent-uuid'
OR id = 'parent-uuid'
Habilite Diversao em Grupo
Viagens em grupo desbloqueiam novos casos de uso para sua frota - de grupos de turistas a passeios em familia. Combinando viagens em grupo com pacotes atrativos, voce pode aumentar receita enquanto torna a coordenacao de grupo sem esforco para clientes.