pizza-digital/docs/PRD/PRD-SPEC-DESPACHO.md
Admin e3da540b6e Add detailed developer PRDs for all Pizza Digital SPECs.
Each PRD documents real UI/API processes, service methods, states and gaps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-09 21:22:22 +00:00

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 |