Mirror all SPECs and construction docs from pizza-digital, add hub/sidebar links and bidirectional sync scripts.
2.1 KiB
2.1 KiB
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
- Fila comum: todos veem tickets
view=pool(canClaim). - Clique PEGAR → modal; não chama a API ainda.
- Confirmar →
POST …/claim/:orderId(uma estação ganha; demais veem bloqueado). - Cancelar / clique fora fecha o modal.
- Ticket mostra pill Pizza de {primeiro nome}.
- 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.