Desconsideração
Registro de desconsideração de alertas de viagem. Permite descartar eventos isolados (modo Único) ou em lote por apólice/perfil (modo Múltiplos), com justificativa, tipo de evento e geolocalização.
Modos de Operação
| Modo | Fluxo | Detalhe |
|---|---|---|
| Único | Placa → viagens → seleciona evento → desconsiderar | Busca por placa ou motorista via TextField. Retorna viagens do veículo via GET /v1/trips?vehicle_id=.... |
| Múltiplos | Apólice → perfis → viagens → salva em lote | Seleção hierárquica: apólice → perfis de alerta → viagens associadas. Salva todas de uma vez via POST /v1/disregards. |
Fluxo Modo Único
Busca por placa ou motorista
Campo de texto com autocomplete. Retorna lista de veículos/motoristas correspondentes.
Seleção de viagem
GET /v1/trips?vehicle_id=... retorna viagens do veículo. Usuário seleciona a viagem com o alerta.
Seleção de tipo de evento e justificativa
Modal EventsModal lista tipos de evento (name). Modal ProfileModal permite selecionar perfil. Justificativa em campo livre.
Envio
POST /v1/disregards com body JSON contendo trip_ids, reason, event_type e location.
Modais e Seleção de Dados
| Modal | Dados exibidos | Chave do campo |
|---|---|---|
EventsModal | Tipos de evento de alerta | "name" — fallback: event["name"] ?? event["nome"] |
ProfileModal | Perfis de alerta da empresa | "name" — fallback legado: "nome" |
PointModal | Pontos geográficos para location | "name" |
"name"; a legada usava "nome". Todos os modais devem aplicar o fallback event["name"] ?? event["nome"] para compatibilidade durante o período de transição.
Geolocalização
O campo location no body do POST é um array [lat, lng]. O fragment captura a localização atual do dispositivo via FusedLocationProviderClient antes de exibir o formulário. Se não disponível, location é enviado como array vazio.
Endpoints
/v1/trips?vehicle_id=...
/v1/policies
/v1/disregards
{
"trip_ids": ["uuid1", "uuid2"],
"reason": "Justificativa em texto livre",
"event_type": "tipo_do_evento",
"location": [lat, lng]
}