obsidian-vault/Pizza-Digital/docs/SPEC-KDS-CLAIM.md
Roger 62a20a2573 Add Pizza-Digital docs to Obsidian vault and sync with VM125.
Mirror all SPECs and construction docs from pizza-digital, add hub/sidebar links and bidirectional sync scripts.
2026-11-09 19:45:11 +00:00

2.1 KiB
Raw Permalink Blame History

SPEC — KDS PEGAR (claim) + pooling

Campo Valor
Produto Pizza Digital
Capítulo RF-KDS claim exclusivo
Versão 0.2.0
Data 2026-10-20
Owner Roger / iTecnologys
UI /kds/:station
API POST /api/kds/:station/claim/:orderId

1. Objetivo

Na fila comum, o operador não puxa o ticket no primeiro clique. PEGAR abre confirmação com:

  • nome do operador logado
  • nome da dona da pizza (cliente)
  • pedido #código, estação, itens

Só Confirmar — é minha dispara o claim exclusivo.


2. Regras

  1. Fila comum: todos veem tickets view=pool (canClaim).
  2. Clique PEGAR → modal; não chama a API ainda.
  3. Confirmar → POST …/claim/:orderId (uma estação ganha; demais veem bloqueado).
  4. Cancelar / clique fora fecha o modal.
  5. Ticket mostra pill Pizza de {primeiro nome}.
  6. Contadores: fila comum / comigo / outras estações.

3. Pooling (tempo real + backup)

Fonte Comportamento
Socket.io order.* / ticket.bumped com debounce 180 ms
Poll backup 10 s se socket ao vivo; 3 s se offline
Aba oculta não polla
Foco / visível recarrega na hora

RF-KDS-02 (WS sem polling) continua o caminho feliz; o poll é rede de segurança para TV/tablet com socket instável.


4. Copy da confirmação

Confirmar PEGAR
Pedido #A12
{Operador} vai pegar a pizza de {Dona}?

Operador        {user.name}
Dona da pizza   {shortCustomerName}
Estação         Massa | Montagem | …
Itens           1× Calabresa G, …

[Cancelar]  [Confirmar — é minha]

5. Requisitos

ID Requisito Status
RF-KDS-C1 Claim exclusivo por estação (0.2.4) feito
RF-KDS-C2 Modal PEGAR com operador + dona da pizza feito
RF-KDS-C3 Poll backup + debounce + visibility feito
RF-KDS-C4 Contadores de pool / mine / locked feito

Satélite. Claim original: CHANGELOG 0.2.4. Produto pai: SPEC.md v0.3.5.