66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# PRD — Despacho / Gestor de Rotas (CityFoods parity)
|
|
|
|
| Campo | Valor |
|
|
|-------|--------|
|
|
| **Produto** | Pizza Digital |
|
|
| **Versão app auditada** | v0.5.0 |
|
|
| **Ambiente** | https://pizza.itecnologys.com · VM125 · loja `pizza-digital-piloto` |
|
|
| **Spec de origem** | `docs/SPEC-DESPACHO-CITYFOODS-PARITY.md` |
|
|
| **Módulo** | Rotas, motoboys, mapa |
|
|
| **Rotas UI** | `/despacho` `/motoboy` `/ops` |
|
|
| **APIs** | `/api/routes/*` `/api/drivers/*` `/api/ops/*` `/api/zones/*` |
|
|
| **Data** | 2026-11-09 |
|
|
| **Estilo** | PRD operacional detalhado (visão de desenvolvedor) |
|
|
| **Audiência** | Dev / QA / Product |
|
|
|
|
> Como ler: cada seção descreve o **processo real** (o que o sistema faz hoje),
|
|
> com passos de usuário, chamadas de API, regras de negócio e estados.
|
|
> Status: ✅ construído · ⚠️ parcial · ⏳ especificado / não entregue · 🐛 gap observado.
|
|
|
|
|
|
## 1. Objetivo implementado
|
|
|
|
Sair de “lista de prontos + SAIR” para fluxo:
|
|
**Montar rota → Despachar → mapa → status motoboy → fechar**.
|
|
|
|
## 2. Processo — montar e despachar rota
|
|
1. Pedidos `ready` no board
|
|
2. Operador em `/despacho` seleciona pedidos
|
|
3. `POST /api/routes/preview` (ordem sugerida)
|
|
4. `POST /api/routes` cria `DispatchBatch` + `DispatchStop`
|
|
5. `PATCH /api/routes/:id/driver` associa motoboy (`Driver`)
|
|
6. `POST /api/routes/:id/dispatch` sai para rua
|
|
7. Mapa acompanha; `POST /api/routes/:id/ping` atualiza lat/lng
|
|
8. Por stop: `POST /api/routes/:id/stops/:orderId/status` (a_caminho/entregue)
|
|
9. `POST /api/routes/:id/close` fecha batch
|
|
|
|
## 3. Processo — motoboy
|
|
1. UI `/motoboy`
|
|
2. `GET /api/routes/driver/:driverId` / `GET /api/routes/active`
|
|
3. Atualiza status das paradas
|
|
|
|
## 4. Cadastros apoio
|
|
- Drivers CRUD `/api/drivers`
|
|
- Zonas `/api/zones` · UI `/admin/zonas`
|
|
- Ops funnel/ranking/priority `/api/ops/*`
|
|
|
|
## 5. Aceite
|
|
- ✅ Routes API + Despacho/Motoboy pages
|
|
- ⚠️ Paridade mapa full-bleed (ver PRD vídeo)
|
|
- ⏳ ORS tour produção robusto
|
|
|
|
|
|
## 6. Camada de serviço (RoutesService)
|
|
|
|
Arquivo: `apps/api/src/routes/routes.service.ts` (~548 linhas)
|
|
|
|
| Método | Processo |
|
|
|--------|----------|
|
|
| `preview` | Ordena stops candidatos (sem persistir) |
|
|
| `buildStops` / `create` | Cria batch+stops |
|
|
| `assignDriver` | Liga Driver |
|
|
| `dispatch` | Status em rota |
|
|
| `ping` | GPS |
|
|
| `setStopStatus` | a_caminho / entregue / falha |
|
|
| `close` | Fecha batch |
|
|
| `listActive` / `activeForDriver` / `get` | Leituras UI |
|