API v1

Desconsideração

Android: DisregardFragment + DisregardCadFragment

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

ModoFluxoDetalhe
Ú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

1

Busca por placa ou motorista

Campo de texto com autocomplete. Retorna lista de veículos/motoristas correspondentes.

2

Seleção de viagem

GET /v1/trips?vehicle_id=... retorna viagens do veículo. Usuário seleciona a viagem com o alerta.

3

Seleção de tipo de evento e justificativa

Modal EventsModal lista tipos de evento (name). Modal ProfileModal permite selecionar perfil. Justificativa em campo livre.

4

Envio

POST /v1/disregards com body JSON contendo trip_ids, reason, event_type e location.

Modais e Seleção de Dados

ModalDados exibidosChave do campo
EventsModalTipos de evento de alerta"name" — fallback: event["name"] ?? event["nome"]
ProfileModalPerfis de alerta da empresa"name" — fallback legado: "nome"
PointModalPontos geográficos para location"name"
Migração de campo: a API v1 usa "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

GET /v1/trips?vehicle_id=...
Busca viagens por veículo para o modo Único. Retorna lista paginada de viagens filtráveis.
GET /v1/policies
Lista apólices disponíveis para o modo Múltiplos.
POST /v1/disregards
Registra a desconsideração. Body:
{
  "trip_ids": ["uuid1", "uuid2"],
  "reason": "Justificativa em texto livre",
  "event_type": "tipo_do_evento",
  "location": [lat, lng]
}