pizza-digital/PRD/PRD-SPEC-KDS-CLAIM.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

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

  1. Cozinheiro abre /kds/:station (massa|montagem|forno|expedicao…)
  2. GET /api/kds/:station devolve seções: Fila / Comigo / Bloqueados
  3. Na Fila, clicar PEGAR não claima imediatamente → confirmação (Spec)
  4. Confirma → POST /api/kds/:station/claim/:orderId
  5. Outras estações veem pedido bloqueado (claimedStationId)
  6. Ao concluir → POST /api/kds/:station/orders/:orderId/bump
  7. Expedição só bumpa quando pré-requisitos ok
  8. Ready board: GET /api/kds/ready/list

3. Processo — pós-pronto

  • POST /api/kds/ready/:orderId/estufa
  • POST /api/kds/ready/:orderId/dispatch
  • POST /api/kds/ready/:orderId/deliver
  • POST /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.