Painel de Produção
Visão Geral
O painel de produção oferece uma visão operacional da cozinha em tempo real: itens em fila por estação, tempo médio de preparo, pedidos que ultrapassaram o SLA e os itens mais pedidos no turno. É distinto do KDS (que serve aos cozinheiros) — o painel é voltado para o gerente de cozinha monitorar o fluxo.
| Característica | Detalhe |
|---|---|
| Rota | /t/:slug/kitchen (tab "Produção" dentro do KDS) |
| Acesso | Admin, branch_manager, staff |
| Fonte de dados | Pedidos do turno ativo via API REST + WebSocket |
| Frontend | frontend-react/src/views/kitchen/KitchenDisplayView.tsx |
Métricas Exibidas
| Métrica | Cálculo |
|---|---|
| Pedidos ativos | Count de orders em pending / confirmed / preparing |
| Tempo médio de preparo | Média de (deliveredAt − createdAt) dos últimos N pedidos do turno |
| Pedidos fora do SLA | Count de orders onde elapsedMinutes > slaMinutes |
| Itens mais pedidos | Aggregation de items[].name no turno atual |
| Throughput (pedidos/hora) | Count de orders entregues na última hora |
SLA por Estação
Cada zona (printZone) pode ter um SLA diferente:
| Zona | SLA sugerido |
|---|---|
hot | 12–15 min |
bar | 3–5 min |
cold | 5–8 min |
O Branch.kdsSlaMinutes define o limiar global. SLA por zona ainda não é armazenado em campo próprio — usa o limiar global e o cozinheiro distingue pelo bom senso ou pela zona configurada.
Gargalos
O sistema destaca em vermelho qualquer estação onde:
- Há 3 ou mais pedidos no status
preparingsimultaneamente - O tempo médio da última hora excede o SLA da filial em 50%
Esses alertas são calculados no frontend sobre os dados do WebSocket — sem endpoint específico.
Backend — API REST usada pelo painel
GET /t/:slug/orders?status=pending,confirmed,preparing&branchId=:id
GET /t/:slug/admin/branches/:branchId/daily-reportO daily-report agrega totalOrders, totalRevenue e breakdown por PDV — usado para o throughput horário.