intermediate
viagens
pausa
auto-pausa

Pausa de Viagens

Entenda como a pausa de viagens funciona, incluindo pausas manuais, gatilhos de auto-pausa e imobilizacao de veiculo com seguranca em primeiro lugar

Levy Fleets TeamJanuary 15, 202518 min read

Pausa de Viagens

A pausa de viagem permite que clientes parem temporariamente sua viagem enquanto mantem o veiculo reservado. Este recurso e essencial para pausas durante a viagem e tambem e usado pelo sistema para intervencoes automaticas quando certas condicoes sao detectadas.

Visao Geral

O recurso de pausa serve a dois propositos principais:

  1. Pausa iniciada pelo cliente - Permite que clientes facam pausas sem encerrar sua viagem
  2. Pausa iniciada pelo sistema - Pausa automaticamente viagens quando condicoes justificam intervencao

Entender os diferentes tipos de pausas e seus comportamentos e crucial para operadores, pois tem diferentes implicacoes de seguranca e padroes de comando de veiculo.

Conceitos Principais

ConceitoDescricao
Pausa manualIniciada pelo cliente atraves do app
Auto-pausaIniciada pelo sistema baseada em condicoes da viagem
Cobranca de taxa de pausaTaxa reduzida durante periodos pausados
Imobilizacao do veiculoDiferentes niveis baseados no motivo da pausa
Auto-retomadaAlgumas pausas podem ser automaticamente limpas
Auto-encerramentoPausas prolongadas podem acionar encerramento automatico da viagem

Tipos de Pausas

Pausa Manual (Iniciada pelo Cliente)

Quando um cliente pausa sua viagem atraves do app:

AspectoComportamento
GatilhoCliente toca em "Pausar" no app
Bloqueio do VeiculoSim - veiculo e bloqueado
AceleradorDesativado
CobrancaTaxa de pausa se aplica
RetomadaCliente toca em "Retomar" no app
Selo de Status"Pausada (Bloqueada)"

Usos Comuns:

  • Paradas rapidas em lojas
  • Pausas para cafe
  • Esperando por amigos
  • Viagens com multiplos destinos

Auto-Pausa: Movimento Ocioso

Quando o veiculo esta estacionario por um periodo prolongado:

AspectoComportamento
GatilhoNenhum movimento detectado por X minutos
Bloqueio do VeiculoSim - veiculo e bloqueado
AceleradorDesativado
CobrancaTaxa de pausa se aplica
RetomadaCliente toca em "Retomar" no app
Selo de Status"Pausada (Bloqueada)"
Codigo do Motivoidle_movement

Logica de Deteccao:

SE veiculo nao se moveu alem de stationary_radius_m
   por duracao de stationary_minutes
E nenhum movimento recente detectado (velocidade < recent_motion_speed_kmh)
ENTAO acionar auto-pausa

Auto-Pausa: Sem Localizacao

Quando o veiculo para de reportar localizacao GPS:

AspectoComportamento
GatilhoNenhum dado GPS recebido por X minutos
Bloqueio do VeiculoSim - veiculo e bloqueado
AceleradorDesativado
CobrancaTaxa de pausa se aplica
RetomadaAutomatica quando GPS restaurado, ou manual
Selo de Status"Pausada (Bloqueada)"
Codigo do Motivono_location

Causas Comuns:

  • Estacionamento interno (GPS bloqueado)
  • Zonas mortas de sinal
  • Problemas com dispositivo IoT
  • Problemas de bateria

Auto-Pausa: Fundos Insuficientes

Recurso Critico de Seguranca

Quando o saldo da carteira e insuficiente, o sistema usa uma abordagem diferente que prioriza a seguranca do piloto.

AspectoComportamento
GatilhoCarteira cai abaixo do limite durante cobranca
Bloqueio do VeiculoNAO - veiculo NAO e bloqueado
AceleradorDesativado (energia do motor cortada)
CobrancaContinua na taxa de pausa
RetomadaAutomatica quando carteira recarregada
Selo de Status"Pausada (Acelerador Desativado)"
Codigo do Motivoinsufficient_funds

Por Que Nao Bloquear?

Esta e uma decisao critica de seguranca:

Ao pausar por fundos insuficientes, o piloto pode estar ativamente em movimento em velocidade. Bloquear as rodas enquanto em movimento poderia causar uma queda perigosa. Em vez disso, apenas desativamos o acelerador, o que permite que o piloto desacelere com seguranca ate parar antes do veiculo ficar inutilizavel.

A desativacao do acelerador:

  • Corta energia para o motor
  • Permite que rodas girem livremente (desaceleracao)
  • Piloto pode deslizar ate um ponto de parada seguro
  • Veiculo nao para abruptamente

Matriz de Seguranca

O sistema usa esta matriz de decisao para comportamentos de pausa:

Motivo da PausaBloquear VeiculoAcelerador DesligadoJustificativa
Pausa manualSimSimVeiculo estacionario, imobilizacao total segura
Movimento ociosoSimSimVeiculo estacionario, imobilizacao total segura
Sem localizacaoSimSimAssumir estacionario (sem GPS = provavelmente interno)
Fundos insuficientesNaoSimPiloto pode estar em movimento - critico de seguranca

Por Que Isso Importa

Cenario: Cliente esta pilotando a 25 km/h quando a carteira acaba.

Comportamento correto (apenas acelerador):

  • Energia do motor corta
  • Cliente desacelera ate parada natural
  • Cliente desmonta com seguranca
  • Cliente recarrega carteira ou encerra viagem

Comportamento incorreto (bloquear rodas):

  • Rodas bloqueiam a 25 km/h
  • Cliente cai
  • Potencial lesao grave
  • Grande responsabilidade

Upgrade de Pausa de Acelerador

Quando uma viagem esta com acelerador pausado (fundos insuficientes), o sistema monitora por uma oportunidade de fazer upgrade para bloqueio total.

Por Que Fazer Upgrade?

Pausa apenas de acelerador e uma medida de seguranca para veiculos em movimento. Uma vez que o veiculo fica estacionario, e seguro aplicar o bloqueio total para melhor seguranca.

Processo de Upgrade

O job cron de auto-pausa monitora viagens com acelerador pausado:

1. Verificar se viagem esta com acelerador pausado (auto_pause_reason = 'insufficient_funds')
2. Verificar se veiculo esta agora estacionario
3. Se estacionario por tempo suficiente:
   a. Enviar comando LOCK para veiculo
   b. Atualizar status da viagem para mostrar "Pausada (Bloqueada)"
   c. Registrar o evento de upgrade

Criterios de Deteccao

Uma viagem com acelerador pausado e atualizada para bloqueio total quando:

  • Veiculo nao se moveu alem do limite stationary_radius_m
  • Nenhum movimento recente detectado (velocidade < recent_motion_speed_kmh)
  • Veiculo esta respondendo a comandos

Seguranca + Protecao

Isso fornece tanto seguranca (sem queda de bloqueio subito) quanto protecao (veiculo bloqueado quando estacionado).

Cobranca de Pausa

Como Taxas de Pausa Funcionam

Durante periodos pausados, uma taxa reduzida se aplica:

Pilotagem Ativa:  R$1,95 por minuto
Pausado:          R$0,50 por minuto (exemplo)

Taxas de pausa sao configuradas nas regras de precos para cada modelo de veiculo.

Exemplo de Calculo de Cobranca

Viagem: 20 minutos total
- 15 minutos pilotando ativamente
- 5 minutos pausado

Taxa de Desbloqueio:      R$5,00
Tempo Ativo:              15 x R$1,95 = R$29,25
Tempo de Pausa:           5 x R$0,50 = R$2,50
────────────────────────────────────────
Total:                    R$36,75

Cobranca Continua

Durante auto-pausa por fundos insuficientes:

  • Cobranca continua na taxa de pausa
  • Saldo da carteira pode ficar mais negativo
  • Cliente recebe notificacao push
  • Viagem continua ate carteira ser recarregada ou auto-encerrada

Configuracao de Auto-Pausa

Configure comportamento de auto-pausa em Configuracoes > Outros:

Configuracoes de Deteccao de Estacionario

{
  "auto_pause_if_stationary": {
    "enabled": true,
    "stationary_minutes": 30,
    "stationary_radius_m": 100,
    "max_movement_within_radius_m": 0,
    "recent_motion_window_seconds": 60,
    "recent_motion_speed_kmh": 2
  }
}
ConfiguracaoDescricaoPadrao
enabledHabilitar/desabilitar auto-pausa por inatividadefalse
stationary_minutesMinutos sem movimento antes de pausar30
stationary_radius_mLimite de distancia para "estacionario"100
max_movement_within_radius_mMovimento permitido dentro do raio0
recent_motion_window_secondsJanela de tempo para deteccao de movimento60
recent_motion_speed_kmhLimite de velocidade para "movendo"2

Configuracoes de Saldo Baixo

{
  "payments": {
    "stop_vehicle_on_low_balance": true,
    "stop_vehicle_threshold_cents": 0
  }
}
ConfiguracaoDescricaoPadrao
stop_vehicle_on_low_balanceHabilitar desligamento de acelerador em saldo baixofalse
stop_vehicle_threshold_centsNivel de carteira acionando desligamento de acelerador0

Configurar limite em 0 significa que o veiculo para quando a carteira fica negativa.

Requisitos de Retomada

Verificacao de Saldo da Carteira na Retomada

Antes de permitir que uma viagem seja retomada, o sistema valida que o cliente tem fundos suficientes:

Saldo Necessario = per_minute_rate_cents x 1 minuto

Se o saldo da carteira estiver abaixo deste minimo:

  • Retomada e bloqueada
  • Cliente recebe erro com saldo necessario vs. atual
  • Cliente deve recarregar carteira primeiro
  • Recarga automatica pode acionar se habilitada

Exemplo:

Taxa por minuto: R$1,95
Minimo necessario: R$1,95
Carteira do cliente: R$1,25

Resultado: Retomada bloqueada - "Fundos insuficientes"
Necessario: R$1,95 | Atual: R$1,25

Auto-Encerramento Apos Pausa

Viagens podem ser automaticamente encerradas se pausadas por muito tempo:

Configuracao

{
  "auto_end_if_not_moving": {
    "enabled": true,
    "not_moving_radius_m": 75,
    "end_after_pause_minutes": 30
  }
}
ConfiguracaoDescricaoPadrao
enabledHabilitar/desabilitar auto-encerramentofalse
not_moving_radius_mRaio para considerar "nao movendo"75
end_after_pause_minutesMinutos de pausa antes de encerrar30

Comportamento de Auto-Encerramento

Quando condicoes sao atendidas:

  1. Sistema verifica se veiculo esta em zona de estacionamento valida
  2. Se valido, viagem e automaticamente encerrada
  3. Tarifa final e calculada e cobrada
  4. Cliente recebe notificacao push
  5. Veiculo fica disponivel para proximo aluguel

Se nao em zona valida:

  • Viagem permanece pausada
  • Sistema continua monitorando
  • Intervencao manual pode ser necessaria

Endpoints da API

Pausar Viagem (Mobile)

POST /api/mobile/rides/{ride_id}/pause/

Autenticacao: JWT do cliente obrigatorio

Corpo da Requisicao:

{
  "pause_location": {
    "latitude": 37.7749,
    "longitude": -122.4194
  }
}

Resposta (200 OK):

{
  "ok": true,
  "ride_status": "paused",
  "paused_at": "2024-01-15T14:30:00Z",
  "lock": {
    "attempted": true,
    "success": true,
    "protocol": "OKAI"
  }
}

Retomar Viagem (Mobile)

POST /api/mobile/rides/{ride_id}/resume/

Autenticacao: JWT do cliente obrigatorio

Resposta (200 OK):

{
  "ok": true,
  "ride_status": "active",
  "resumed_at": "2024-01-15T14:45:00Z",
  "unlock": {
    "attempted": true,
    "success": true,
    "protocol": "OKAI"
  }
}

Resposta de Erro (Fundos Insuficientes):

{
  "error": "Fundos insuficientes",
  "required": 1.95,
  "balance": 1.25
}

Pausa/Retomada Admin

Administradores tambem podem pausar e retomar viagens:

POST /api/rides/{ride_id}/pause/
POST /api/rides/{ride_id}/resume/

Autenticacao: Sessao admin obrigatoria Permissao: ride:update

Integracao de Webhook

O sistema envia webhooks para APIs de parceiros quando pausas e retomadas ocorrem.

Webhook de Pausa

Quando uma viagem e pausada, o sistema enfileira um webhook ride.paused:

{
  "event": "ride.paused",
  "data": {
    "ride_id": "uuid-12345",
    "customer_id": "uuid-customer",
    "vehicle_id": "uuid-vehicle",
    "paused_at": "2024-01-15T14:30:00Z",
    "pause_reason": "manual",
    "subaccount_id": "uuid-subaccount"
  }
}
CampoDescricao
ride_idUUID da viagem pausada
customer_idCliente dono da viagem
vehicle_idVeiculo sendo pausado
paused_atTimestamp ISO da pausa
pause_reasonmanual, idle_movement, no_location ou insufficient_funds
subaccount_idSubconta para filtragem multi-tenant

Webhook de Retomada

Quando uma viagem e retomada, o sistema enfileira um webhook ride.resumed:

{
  "event": "ride.resumed",
  "data": {
    "ride_id": "uuid-12345",
    "customer_id": "uuid-customer",
    "vehicle_id": "uuid-vehicle",
    "resumed_at": "2024-01-15T14:45:00Z",
    "pause_duration_seconds": 900,
    "subaccount_id": "uuid-subaccount"
  }
}
CampoDescricao
pause_duration_secondsPor quanto tempo a viagem ficou pausada

Comandos de Veiculo

Sequencia de Bloqueio (Pausa Padrao)

Quando uma viagem e pausada normalmente:

1. Enviar comando LOCK para veiculo
2. Aguardar confirmacao (ate 10 segundos)
3. Enviar comando THROTTLE_OFF
4. Aguardar confirmacao
5. Atualizar status da viagem para 'paused'
6. Enfileirar notificacao de webhook

Sequencia Apenas Acelerador (Saldo Baixo)

Ao pausar por fundos insuficientes:

1. Enviar APENAS comando THROTTLE_OFF
2. Aguardar confirmacao
3. Atualizar status da viagem para 'paused'
4. NAO enviar comando LOCK (seguranca)
5. Enfileirar notificacao de webhook

Sequencia de Retomada

Ao retomar uma viagem pausada:

1. Validar saldo da carteira (deve cobrir pelo menos 1 minuto de pilotagem)
2. Enviar comando UNLOCK para veiculo
3. Aguardar confirmacao
4. Enviar comando THROTTLE_ON
5. Aguardar confirmacao
6. Atualizar status da viagem para 'active'
7. Limpar campos de pausa (auto_paused_at, auto_pause_reason)
8. Enfileirar notificacao de webhook para API de parceiro

Falhas de Comando

Se comandos de veiculo falharem:

ComandoImpacto da FalhaMitigacao
LOCK falhaVeiculo pode permanecer desbloqueadoRegistrado, acompanhamento manual
THROTTLE_OFF falhaMotor pode permanecer ligadoRetry automatico
UNLOCK falhaCliente nao consegue retomarPainel mostra aviso
THROTTLE_ON falhaCliente nao consegue pilotarRetry, depois ticket de suporte

Experiencia do Cliente

Notificacoes de Pausa

Quando uma viagem e pausada, o cliente recebe:

Pausa Manual:

Viagem Pausada
Sua viagem esta pausada. A cobranca continua na taxa de pausa reduzida.
Toque em Retomar quando estiver pronto para continuar.

Auto-Pausa (Inatividade):

Viagem Auto-Pausada
Sua viagem foi pausada devido a inatividade. O veiculo esta bloqueado.
Toque em Retomar para continuar sua viagem.

Auto-Pausa (Saldo Baixo):

Saldo Baixo - Veiculo Parado
Seu saldo da carteira esta muito baixo. O motor foi desativado.
Recarregue sua carteira para continuar pilotando.
[Recarregar Agora]

Fluxo de Retomada

  1. Cliente abre o app
  2. Ve status "Pausada"
  3. Toca no botao "Retomar"
  4. App envia requisicao de retomada
  5. Veiculo desbloqueia e ativa acelerador
  6. Cobranca volta para taxa ativa
  7. Cliente continua pilotando

Gerenciamento no Painel

Visualizando Viagens Pausadas

Na pagina de lista de Viagens:

  1. Filtre por status "Pausada"
  2. Selo de status mostra tipo de pausa
  3. Coluna de duracao mostra tempo total incluindo pausa

Acoes Admin

Da pagina de Detalhes da Viagem:

Botao Retomar:

  • Visivel quando viagem esta pausada
  • Envia comandos unlock + throttle-on
  • Atualiza viagem para status ativo

Botao Encerrar Viagem:

  • Disponivel para viagens ativas e pausadas
  • Encerra viagem na localizacao atual
  • Calcula tarifa final

Solucao de Problemas

Veiculo Nao Bloqueia na Pausa

Possiveis Causas:

  • Dispositivo IoT offline
  • Sinal celular fraco
  • Timeout de comando
  • Problema de firmware do dispositivo

Resolucao:

  1. Verifique hora do ultimo sinal do veiculo
  2. Tente novamente o comando de pausa
  3. Use painel para enviar bloqueio manual
  4. Despache equipe de campo se necessario

Veiculo Nao Desbloqueia na Retomada

Possiveis Causas:

  • Dispositivo IoT offline
  • Comando nao chegou ao veiculo
  • Mecanismo de bloqueio fisico travado

Resolucao:

  1. Tente novamente o comando de retomada
  2. Verifique status do dispositivo IoT
  3. Encerre a viagem se incapaz de retomar
  4. Emita reembolso se justificado
  5. Marque veiculo para manutencao

Cliente Travado em Estado Pausado

Se cliente nao consegue retomar:

  1. Verifique status da viagem no painel
  2. Tente acao de retomada admin
  3. Encerre a viagem se necessario
  4. Emita reembolso apropriado
  5. Investigue problema do veiculo/IoT

Auto-Pausa Acionando Muito Frequentemente

Ajuste configuracoes:

  • Aumente stationary_minutes
  • Aumente stationary_radius_m
  • Ajuste limites de deteccao de movimento
  • Considere desabilitar para locais especificos

Melhores Praticas

Para Operadores

  1. Monitore viagens pausadas - Verifique diariamente por pausas prolongadas
  2. Revise logs de auto-pausa - Procure padroes indicando problemas
  3. Configure limites cuidadosamente - Balance conveniencia vs. abuso
  4. Treine equipe de suporte - Saiba como lidar com problemas relacionados a pausa

Para Configuracao

  1. Comece conservador - Inicie com auto-pausa desabilitada
  2. Teste completamente - Verifique que comandos de veiculo funcionam antes de habilitar
  3. Considere seu mercado - Areas urbanas podem precisar de configuracoes diferentes
  4. Comunique aos clientes - Explique politicas de pausa no app

Para Seguranca

  1. Nunca bloqueie veiculos em movimento - Sempre use apenas acelerador para saldo baixo
  2. Teste confiabilidade de comandos - Garanta que veiculos respondem consistentemente
  3. Tenha overrides manuais - Painel deve sempre permitir intervencao
  4. Documente incidentes - Rastreie quaisquer problemas relacionados a seguranca

Artigos Relacionados