Manager — iOS
ManagerViewController · TripManager1 · ElasticsearchService · ModelsManager
Equivalente Android: TripManagerFragment
Visão do gestor: viagens em andamento por apólice, semáforo de eventos e detalhes operacionais.
Arquivos
manager/ ├── ManagerViewController.swift · entrada principal ├── ManagerViewController1.swift · versão v1 ├── ManagerTripManager1.swift · controlador de viagens ├── TripManager1.swift · model de viagem (agregado) ├── VehicleManager.swift · combo veículo ├── MapManage.swift · RouteManage.swift · sub-componentes (mapa/rota) ├── DeliveryCardView2.swift · card de entrega ├── OccurrencesCardView.swift · card de ocorrências ├── ElasticsearchService.swift · busca em índice ES ├── FuncService.swift · serviços auxiliares └── ModelsManager.swift · Codables
Pontos autorizados e áreas de risco
No detalhe da viagem, o ManagerViewController1 desenha sobre o mapa (MapKit) os pontos autorizados e as áreas de risco da viagem — mesma feature das telas de Motorista e detalhe do Grid, e paridade com o Android.
| Peça | Responsabilidade |
|---|---|
ManagerViewController1.fetchStopPoints() | Dispara a busca e classifica cada ponto. |
fetchStopPointItems(jwt:) | Chama GET /v1/trip/{idTrip}/rotogram e junta points + apolice_rules.risk_points + deliveries. |
MapManage.makeRiskAreaPolygon(from:) | Constrói o MKPolygon vermelho a partir de location.coordinates (anel externo + buracos). |
MapManage.createRiskAreaRenderer(for:) | MKPolygonRenderer das áreas de risco. |
StopPointAnnotation | Anotação dos pontos; pino azul com caixa para type_return == "delivery". |
Itens com type/type_return == "risk_area" viram polígono (acumulados em riskAreaPolygonsById); os demais viram anotações classificadas por type_return (client/authorized/delivery), acumuladas em stopPointAnnotationsById.
Endpoint em STAGING:
GET /v1/trip/{tripId}/rotogram ainda aponta para http://nginx.surubim.monisat.online/v1. Pendente troca para produção https://api.monisystem.com/v1. Contrato e renderização detalhados na página Mapa (iOS).
Paridade Android/iOS: mesma agregação e classificação (Android
ManagerViewModelNew.fetchStopPoints + redrawTripMarkers). Na tela do gestor os pontos são exibidos sempre (sem toggle) nas duas plataformas — o toggle protegido por flag remota existe apenas na tela do motorista iOS.Endpoints
GET
/v1/trip/{tripId}/rotogramPontos autorizados + áreas de risco + entregas (
data[] { points, apolice_rules.risk_points, deliveries }). Base em STAGING (http://nginx.surubim.monisat.online/v1).GET
/v1/policyApólices ativas da empresa — popula o seletor superior.
GET
/v1/tripViagens filtradas por apólice + status.
GET
/v1/trackersPosição corrente para o mini-mapa.