Each PRD documents real UI/API processes, service methods, states and gaps. Co-authored-by: Cursor <cursoragent@cursor.com>
2.5 KiB
2.5 KiB
PRD — KDS Claim (PEGAR) + pooling
| 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-KDS-CLAIM.md |
| Módulo | KDS multi-estação clássico |
| Rotas UI | /kds /kds/:station |
| APIs | GET/POST /api/kds/:station* /api/kds/ready/* |
| 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. Problema
Sem claim, duas estações pegam o mesmo pedido (CityFoods resolve com PEGAR exclusivo).
2. Processo — fila de estação
- Cozinheiro abre
/kds/:station(massa|montagem|forno|expedicao…) GET /api/kds/:stationdevolve seções: Fila / Comigo / Bloqueados- Na Fila, clicar PEGAR não claima imediatamente → confirmação (Spec)
- Confirma →
POST /api/kds/:station/claim/:orderId - Outras estações veem pedido bloqueado (
claimedStationId) - Ao concluir →
POST /api/kds/:station/orders/:orderId/bump - Expedição só bumpa quando pré-requisitos ok
- Ready board:
GET /api/kds/ready/list
3. Processo — pós-pronto
POST /api/kds/ready/:orderId/estufaPOST /api/kds/ready/:orderId/dispatchPOST /api/kds/ready/:orderId/deliverPOST /api/kds/ready/batch-dispatch
4. Pooling
Pedidos podem agrupar saída (drawer pooling na UI) antes do despacho.
5. Aceite
- ✅ Claim/bump/ready endpoints
- ✅ UI KdsPage seções
- ⚠️ Confirmar UX “confirmação antes do claim” em todos fluxos
6. Camada de serviço (KdsService) — claim clássico
Arquivo: apps/api/src/kds/kds.service.ts (~1221 linhas)
| Método | Processo |
|---|---|
stationBoard |
Monta Fila/Comigo/Bloqueados da estação |
claim |
Exclusivo: grava claimedStationId/claimedAt; bloqueia peers |
bumpOrder |
Avança ticket; pode disparar ready |
ensurePrepTasks |
Garante tasks de produção |
listReady |
Board de prontos |
holdEstufa |
Move para estufa |
dispatch / batchDispatch |
Sai para despacho |
deliver |
Marca entregue no fluxo ready |
Diálogo tipico Socket
Após claim/bump, server emite eventos para atualizar outras telas KDS sem refresh.