Mirror all SPECs and construction docs from pizza-digital, add hub/sidebar links and bidirectional sync scripts.
142 lines
7.1 KiB
Markdown
142 lines
7.1 KiB
Markdown
# SPEC — Paridade UI/ops com 3 vídeos CityFoods
|
||
|
||
| Campo | Valor |
|
||
|-------|--------|
|
||
| **Produto** | Pizza Digital |
|
||
| **Documento** | Gap analysis + requisitos de UI idêntica em operação |
|
||
| **Versão** | 0.1.0 |
|
||
| **Data** | 2026-10-22 |
|
||
| **Alinha com** | SPEC-DESPACHO-CITYFOODS-PARITY v0.2 · SPEC.md §15 |
|
||
| **Vídeos** | [Overview yVtc](https://www.youtube.com/watch?v=yVtcgJt0L_Q) · [Forno Jxau](https://www.youtube.com/watch?v=JxauDKXTJr0) · [Despacho+mapa KDcD](https://www.youtube.com/watch?v=KDcDTGEw11A) |
|
||
|
||
---
|
||
|
||
## 0. Objetivo
|
||
|
||
Reconstruir a superfície operacional para **a mesma interface e operacionalidade** mostrada nos três vídeos — não só “capacidade de backend”.
|
||
Prioridade absoluta do produto: **mapa como bloco inteiro na tela**, capaz de rastrear todas as entregas/motoboys ao vivo.
|
||
|
||
---
|
||
|
||
## 1. Narrativa por vídeo (transcrição)
|
||
|
||
### V1 — Overview Siciliana / Mangue Hills (`yVtcgJt0L_Q`)
|
||
|
||
- Despacho = “coração operacional”: frota casa/rua, canal, nº pedido, tempos, reordenação → KDS.
|
||
- Cores de estágio: vermelho (novo) · laranja (produção) · amarelo (forno).
|
||
- Rotas inteligentes: pedidos próximos saem juntos.
|
||
- Cotação iFood vs frota própria (fora de escopo imediato — P3).
|
||
- Conferência/estufa com etiqueta → aparece no despacho.
|
||
- Ranking ao vivo (pizzas/noite, tempo médio) + funil (produção/forno/estufa/rua).
|
||
|
||
### V2 — Forno / filtro por sabor (`JxauDKXTJr0`)
|
||
|
||
- KDS forno touch: filtrar por **sabor** (ex.: calabresa → Napoli) para achar a comanda na noite cheia.
|
||
- Confirmar item encontrado → bump; quando todos os itens do pedido estão ok → pedido **pronto** para despacho.
|
||
- Impressão opcional por etapa.
|
||
|
||
### V3 — Despacho + rastreio (`KDcDTGEw11A`) — **âncora do mapa**
|
||
|
||
1. Tela de despacho: pedidos **verdes** = prontos aguardando entregador (tempo / atraso).
|
||
2. Selecionar N pizzas que formam uma “roda” (rota).
|
||
3. Escolher entregador do dia.
|
||
4. Botão **Ir para entrega** → pedidos saem da visualização de prontos e vão para o app do entregador.
|
||
5. Mapa de rastreio: **todas as entregas de todos os entregadores** em tempo real + pin do motoboy.
|
||
6. Filtro por entregador (ex.: Steve) → só as paradas dele.
|
||
7. Entregue no app → pin **some** do mapa; última entrega → motoboy apto a voltar à casa.
|
||
8. Relatório noite: entregas, km, ranking pizzaiolo (já coberto em `/ops`).
|
||
|
||
---
|
||
|
||
## 2. Gap vs Pizza Digital (baseline pós-Gestor de Rotas)
|
||
|
||
| Capacidade vídeo | Baseline | Gap |
|
||
|------------------|----------|-----|
|
||
| Pedidos verdes prontos no despacho | Estufa/pronto com cards | ⚠️ Visual não “verde pronto” unificado |
|
||
| Seleção + “Ir para entrega” (1 clique) | Montar rota → Despachar (2 passos) | ❌ CTA e fluxo do vídeo |
|
||
| Mapa **bloco inteiro** / viewport dominante | Painel lateral sticky ~320px | ❌ Layout |
|
||
| Rastreio **todos** motoboys + paradas | Mapa foca 1 rota ativa | ❌ Multi-rota / multi-driver |
|
||
| Filtro mapa por entregador | Tabs de rota | ⚠️ Parcial |
|
||
| Pin some ao entregar | Stop `entregue` ainda desenhado | ❌ Deve omitir pin |
|
||
| App motoboy navegar Maps/Waze | Deep-link Google | ✅ parcial |
|
||
| Forno filtro por sabor | KDS claim/bump sem filter sabor | ❌ V2 (próximo) |
|
||
| Ranking / funil | `/ops` | ✅ |
|
||
| iFood cotação | — | ❌ P3 |
|
||
|
||
---
|
||
|
||
## 3. Requisitos novos (UI parity)
|
||
|
||
### Tela D2 — Despacho mapa-first (`/despacho`)
|
||
|
||
| ID | Requisito | Pri |
|
||
|----|-----------|-----|
|
||
| RF-VID-01 | Layout: **mapa = bloco dominante full-bleed** (≥ ~55–70% do viewport útil); lista de prontos + frota em dock lateral/inferior, sem esconder o mapa | P0 |
|
||
| RF-VID-02 | Lista unificada de **prontos verdes** (estufa + pronto sem rota); tempo e atraso visíveis | P0 |
|
||
| RF-VID-03 | Seleção múltipla + entregador + CTA primário **Ir para entrega** (= montar batch + despachar na rua numa ação) | P0 |
|
||
| RF-VID-04 | Ao Ir para entrega: pedidos saem da lista; entram no app motoboy; pins aparecem no mapa | P0 |
|
||
| RF-VID-05 | Mapa mostra **todas** as rotas `na_rua` (e preview/montada) + pins de **todos** os motoboys com GPS | P0 |
|
||
| RF-VID-06 | Chip/filtro por entregador: “todos” ou 1 motoboy — atualiza pins | P0 |
|
||
| RF-VID-07 | Parada `entregue` **não** desenha pin (some do rastreio) | P0 |
|
||
| RF-VID-08 | Socket: `route.*` / `driver.ping` / `order.delivered` redesenham o mapa sem reload manual | P0 |
|
||
| RF-VID-09 | Manter atalhos avançados (Preview / Montar sem despachar) em menu secundário | P1 |
|
||
| RF-VID-10 | KDS forno: filtro por sabor (chips) + confirmar item — ver RF-FOR-* | P1 |
|
||
|
||
### Tela KDS Forno (V2)
|
||
|
||
| ID | Requisito | Pri |
|
||
|----|-----------|-----|
|
||
| RF-FOR-01 | Em `/kds/forno` (ou estação forno): chips de sabores presentes na fila | P1 |
|
||
| RF-FOR-02 | Selecionar 1–N sabores filtra tickets que contenham esses itens | P1 |
|
||
| RF-FOR-03 | Confirmar item encontrado (bump parcial) até pedido completo → pronto/estufa | P1 |
|
||
|
||
---
|
||
|
||
## 4. Layout alvo (D2)
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Nav · Despacho · ao vivo · Motoboy · Ops │
|
||
├──────────────┬──────────────────────────────────────────────┤
|
||
│ Prontos ● N │ │
|
||
│ [✓] #003 … │ MAPA FULL-BLEED │
|
||
│ [✓] #013 … │ (todas entregas + motoboys) │
|
||
│ [✓] #004 … │ │
|
||
│ │ │
|
||
│ Motoboy ▾ │ │
|
||
│ [Ir p/ entrega] │
|
||
│ Frota chips │ Filtro mapa: Todos | Steve | … │
|
||
└──────────────┴──────────────────────────────────────────────┘
|
||
```
|
||
|
||
Mobile: mapa no topo (min-height ~45vh); dock de prontos abaixo.
|
||
|
||
---
|
||
|
||
## 5. Aceite (definição de pronto desta SPEC)
|
||
|
||
1. Abrir `/despacho` → mapa ocupa o bloco principal da tela (não coluna estreita).
|
||
2. Selecionar 2+ pedidos verdes + motoboy → **Ir para entrega** → somem da lista e aparecem no mapa + `/motoboy`.
|
||
3. Com 2 motoboys na rua, o mapa mostra paradas/pins de ambos; filtrar um esconde o outro.
|
||
4. Marcar entregue no motoboy → pin correspondente some imediatamente (socket).
|
||
5. SPEC-DESPACHO v0.2 continua válida para modelo de dados; este doc manda na **UI**.
|
||
|
||
---
|
||
|
||
## 6. Fora de escopo imediato
|
||
|
||
- Cotação iFood / marketplace (V1 / P3)
|
||
- Cópia pixel-perfect de assets proprietários CityFoods
|
||
- Offline motoboy / PIN
|
||
|
||
---
|
||
|
||
## 7. Sequência de construção
|
||
|
||
1. **Agora:** RF-VID-01…08 — rebuild `/despacho` mapa-first + Ir para entrega
|
||
2. Em seguida: RF-FOR-01…03 — filtro forno
|
||
3. Depois: P3 iFood
|
||
|
||
---
|
||
|
||
*Cruzamento das 3 transcrições × SPEC-DESPACHO v0.2 × pizza.itecnologys.com — 2026-10-22.*
|