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

79 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```text
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.*