Mirror all SPECs and construction docs from pizza-digital, add hub/sidebar links and bidirectional sync scripts.
79 lines
2.1 KiB
Markdown
79 lines
2.1 KiB
Markdown
# 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.*
|