Skip to content

Alertas de Alergia na Cozinha

Visão Geral

Restrições alimentares (alergias, intolerâncias, preferências) chegam à cozinha com sinalização visual impossível de ignorar: um banner vermelho acima dos itens do pedido, exibido no KDS sempre que o sistema detecta restrição.


Onde as Restrições São Registradas

Há três fontes de dados que disparam o alerta:

FonteCampoQuem preenche
Item do pedidoOrderItem.allergens[]Sistema — copiado do MenuItem.allergens[] no momento do pedido
Nota do itemOrderItem.notesCliente (no cardápio QR) ou atendente (no PDV)
Perfil do clienteCustomer.dietaryRestrictions[]CRM — preenchido em cadastros anteriores

Lógica de Detecção (Frontend)

frontend-react/src/views/kitchen/KitchenDisplayView.tsxKitchenOrderCard:

typescript
const hasAllergyAlert =
  order.items.some(item =>
    (item.allergens ?? []).length > 0 ||
    /alergi|intoler|sem glúten|sem lactose|celíac|vegano|vegetarian/i.test(item.notes ?? '')
  );

Quando hasAllergyAlert === true, o card exibe:

┌────────────────────────────────────────────────────┐
│ ⚠  ATENÇÃO — RESTRIÇÃO ALIMENTAR                   │  ← banner vermelho
│   Sem glúten · Alergia a amendoim                  │
├────────────────────────────────────────────────────┤
│ 1× Hambúrguer Artesanal   s/ gergelim               │
│ 2× Suco de Laranja                                  │
└────────────────────────────────────────────────────┘

Configuração no Cardápio

Para que o alerta apareça automaticamente:

  1. Admin → Cardápio → Item → Alergênicos
  2. Marque os alergênicos presentes (glúten, lactose, nozes, amendoim, etc.)
  3. Salve

Quando o cliente pede esse item, allergens[] é copiado para OrderItem.allergens[] — a cozinha vê o alerta sem o cliente precisar digitar nada.


Nota Livre do Cliente

Quando o cliente digita uma observação no cardápio QR (ex.: "sem cebola — alergia"), a nota chega em OrderItem.notes e é exibida destacada abaixo do item. O regex da detecção cobre as variações mais comuns em português.


Perfil do Cliente (CRM)

Se o cliente está cadastrado e tem dietaryRestrictions preenchido no CRM, o PDV exibe um aviso no momento de criar o pedido. O operador pode confirmar que a restrição foi anotada nas observações do item.


Backend — Schema

typescript
// OrderItem (backend/src/orders/schemas/order.schema.ts)
@Prop({ type: [String], default: [] })
allergens: string[];

@Prop()
notes?: string;
typescript
// MenuItem (backend/src/menu/schemas/menu-item.schema.ts)
@Prop({ type: [String], default: [] })
allergens: string[];

Responsabilidades

QuemO Que Fazer
AdminCadastrar alergênicos em cada item do cardápio
Atendente (PDV)Confirmar e anotar restrições do cliente ao criar pedido
CozinheiroLer o banner vermelho antes de iniciar preparo
SistemaExibir alerta sem ação manual — automático

Relacionados

Lançado sob a licença MIT.