Ação do Motorista: O motorista toca no botão "ACEITAR CORRIDA" no card de notificação.
Requisição de Validação (Lock da Corrida):
O app envia uma requisição para o backend/Firebase (/api/rotas.php ou Realtime Database).
O servidor valida se a corrida ainda está disponível (evita que dois motoristas peguem a mesma chamada simultaneamente).
Mudança de Estado do Motorista:
O status do motorista muda de ONLINE para EM_CORRIDA (isBusy: true).
Ele deixa de receber novas ofertas de viagens temporariamente.
2. Etapa 1: A Caminho do Passageiro (A_CAMINHO)
✓Pendente
Redirecionamento para a Tela de Navegação:
A tela do app muda automaticamente para o modo de navegação no mapa.
Exibe as informações do passageiro: Nome, Avaliação, Endereço de Embarque e opção de contato (Chat / Telefone / WhatsApp).
Integração com GPS Externo: Botão direto para abrir o trajeto no Waze ou Google Maps.
Rastreamento em Tempo Real:
O app continua enviando a geolocalização do motorista para o nó do Realtime Database (/corridas/{corridaId}/localizacao_motorista).
O passageiro consegue ver o carrinho se deslocando até o ponto de embarque.
3. Etapa 2: Chegada ao Ponto de Embarque (NO_LOCAL)
✓Pendente
Ação do Motorista: Ao estacionar no local de embarque, o motorista desliza ou clica no botão "CHEGUEI AO LOCAL".
Notificação ao Passageiro:
O Firebase Cloud Messaging (FCM) dispara uma notificação Push para o app do passageiro: "Seu motorista chegou!".
Contador de Espera: O app inicia um cronômetro de tempo de espera (ex: 5 minutos de tolerância).
4. Etapa 3: Início da Viagem (EM_ANDAMENTO)
✓Pendente
Embarque do Passageiro: O passageiro entra no veículo.
Ação do Motorista: O motorista desliza o botão "INICIAR VIAGEM" (pode exigir a digitação de um PIN de segurança de 4 dígitos informado pelo passageiro, se ativado).
Atualização da Rota:
O mapa atualiza o destino final da corrida.
O status da viagem no banco muda para EM_ANDAMENTO.
5. Etapa 4: Finalização da Viagem (CONCLUIDA)
✓Pendente
Chegada ao Destino: O motorista chega ao endereço final e clica em "FINALIZAR VIAGEM".
Cálculo e Exibição de Valores:
O app exibe o resumo financeiro na tela: Valor Total, Forma de Pagamento (Dinheiro, Cartão no App ou Pix) e Taxa da Plataforma.
Se for pagamento em dinheiro, indica quanto o motorista deve receber do passageiro.
Sincronização Financeira: O valor da corrida é creditado na carteira virtual (Wallet) do motorista no banco de dados.
6. Etapa 5: Avaliação e Retorno à Frota
✓Pendente
Avaliação: O motorista avalia o passageiro (1 a 5 estrelas) e pode adicionar uma observação.
Liberar para Novas Corridas:
O status do motorista retorna automaticamente para ONLINE no Realtime Database (isBusy: false).
O mapa volta à tela inicial, pronto para receber o próximo chamado.