Skip to content

Preços Agendados

Visão Geral

Permite agendar mudanças de preço para itens do cardápio em uma data e hora específicas. O sistema aplica o novo preço automaticamente quando o horário programado chega.

Localização

frontend-react/src/views/admin/PriceSchedulesView.tsx

Casos de Uso

  • Happy hour (reduções de preço por horário)
  • Promoções sazonais em datas específicas
  • Ajustes de preço programados para o futuro

Schema

CampoTipoDescrição
menuItemObjectId (ref MenuItem)Item do cardápio que terá o preço alterado
newPricenumberNovo preço a ser aplicado
scheduledAtDateData e hora de aplicação
appliedAtDate?Data em que foi de fato aplicado
statuspending | applied | cancelledEstado atual do agendamento
createdByObjectId (ref User)?Usuário que criou o agendamento
tenantObjectIdTenant

Índice: { tenant, status, scheduledAt } — otimiza a query de agendamentos pendentes.

API

POST /t/:slug/menu/price-schedules

Cria um novo agendamento de preço.

Auth: Admin

Body:

json
{
  "menuItem": "6791abc123...",
  "newPrice": 1290,
  "scheduledAt": "2026-03-15T17:00:00.000Z"
}

Response: O documento criado com status: "pending".

GET /t/:slug/menu/price-schedules

Lista todos os agendamentos do tenant.

Auth: Admin

Query params:

  • status — Filtrar por status (pending, applied, cancelled)

PUT /t/:slug/menu/price-schedules/:id/cancel

Cancela um agendamento pendente.

Auth: Admin

Regra: Só é possível cancelar agendamentos com status: "pending".

Fluxo de Status

pending → applied   (automático, quando scheduledAt é atingido)
pending → cancelled (manual, via PUT /cancel)

Relacionados

Lançado sob a licença MIT.