Gerenciamento de Cardápio
Visão Geral
Permite gerenciar categorias e itens do cardápio do restaurante.
Localização
frontend-react/src/views/admin/MenuManagementView.tsx
Funcionalidades
Categorias
- Criar categorias
- Ordenar categorias (drag-and-drop)
- Ativar/desativar categorias
- Editar nome
Itens
- Criar itens com:
- Nome
- Descrição
- Preço
- Imagem
- Tempo de preparo (minutos)
- Ativar/desativar itens
- Editar detalhes
Estrutura
Cardápio
├── Categoria 1
│ ├── Item A
│ └── Item B
├── Categoria 2
│ └── Item CCampos do Item
| Campo | Tipo | Descrição |
|---|---|---|
| name | string | Nome do item |
| description | string | Descrição detalhada |
| price | number | Preço em centavos |
| image | string | URL da imagem |
| category | ObjectId | Categoria relacionada |
| preparationTime | number | Tempo em minutos |
| isAvailable | boolean | Disponibilidade |
Insumos do Prato (Ficha Técnica)
O painel Insumos do Prato aparece no formulário de edição de um item existente (não visível ao criar um novo item — salve primeiro).
Cabeçalho do painel
O cabeçalho exibe "Insumos do Prato (N)" onde N é a contagem de ingredientes já vinculados. Quando não há nenhum vínculo, o badge não aparece.
Linha de ingrediente
Cada linha da tabela de insumos exibe:
| Elemento | Descrição |
|---|---|
| Nome / SKU | Nome do item de estoque |
| Quantidade | Quantidade consumida por porção do prato |
| Unidade | Rótulo da unidade (ex: kg, un, l) |
| Pill de estoque | Indicador colorido em tempo real: vermelho (sem estoque), âmbar (abaixo do mínimo), cinza (ok) |
| Botão remover | Remove o vínculo (não apaga o item de estoque) |
O pill mostra 📦 X un com a availableQuantity atual do ingrediente.
Adicionar ingrediente
- No dropdown "Selecionar insumo", escolha o item de estoque
- Ao selecionar, o campo de unidade ao lado do input de quantidade é preenchido automaticamente
- Informe a quantidade por porção (ex:
0.2para 200 g) - Clique em + Adicionar
Loading e estado vazio
- Enquanto os ingredientes são carregados, o painel exibe um skeleton animado (3 linhas)
- Se não houver nenhum insumo vinculado, aparece um texto descritivo explicando que nenhum insumo foi adicionado ainda
Prioridade
Se um item tiver ficha técnica (insumos via este painel), o campo Item de Estoque simples (vínculo 1:1) é ignorado. A ficha técnica tem prioridade.