Skip to content

Escalonamento de Equipe

Visão Geral

O módulo de Escalonamento integra planejamento manual de turnos com sugestões de escala geradas por IA (Claude Sonnet 4.6), análise de demanda histórica e controle de disponibilidade da equipe.

CaracterísticaDetalhe
Rota/t/:slug/admin/scheduling
Viewfrontend-react/src/views/admin/SchedulingView.tsx
Backendbackend/src/scheduling/
PermissãoAdmin, Superadmin
IAClaude Sonnet 4.6 via Anthropic SDK

Abas

A view possui 4 abas:

AbaConteúdo
EscalaGrade semanal de turnos — calendário visual WeekCalendarGrid
DemandaHeatmap de tráfego histórico por dia e hora
DisponibilidadeCadastro e edição de disponibilidade da equipe
CustosResumo de custo de mão de obra por semana

Sugestões de Escala via IA

Como funciona

Todo Monday às 07:00 um cron job (@Cron('0 7 * * 1')) gera sugestões de escala para todas as filiais ativas de todos os tenants.

Dados analisados:

  • Tráfego histórico de pedidos por hora (getHourlyTraffic — últimos 28 dias)
  • Disponibilidade cadastrada da equipe (StaffAvailability)
  • Sugestão anterior (feedback loop — evita repetir o mesmo erro)

Modelo: claude-sonnet-4-6 com prompt especializado em escalação de restaurantes.

Output: Array de ShiftSuggestion persistido em StaffingSuggestion.

Schemas

StaffingSuggestion

backend/src/scheduling/schemas/staffing-suggestion.schema.ts

CampoTipoDescrição
tenantObjectIdTenant
branchObjectId → BranchFilial
weekStartDateDateSegunda-feira da semana sugerida
suggestionsShiftSuggestion[]Turnos sugeridos
statusenumpending | applied | dismissed

ShiftSuggestion (sub-documento)

CampoTipoDescrição
dayOfWeeknumber (0–6)Dia da semana (0 = Domingo)
startTimestringHorário início (ex: "10:00")
endTimestringHorário fim (ex: "18:00")
requiredStaffnumberNúmero de colaboradores recomendado
rolestring?Função/cargo recomendado
notesstring?Observações adicionais do modelo

StaffAvailability

backend/src/scheduling/schemas/staff-availability.schema.ts

CampoTipoDescrição
tenantObjectIdTenant
userObjectId → UserColaborador
dayOfWeeknumber (0–6)Dia da semana
startTimestringInício da disponibilidade
endTimestringFim da disponibilidade
maxHoursPerWeeknumber?Limite semanal de horas

Feedback Loop

Ao gerar uma nova sugestão, o serviço recupera a sugestão anterior da mesma filial (getLastSuggestion) e inclui no prompt para que o modelo aprenda com aceitações e rejeições anteriores.


Heatmap de Demanda

Componente: frontend-react/src/components/scheduling/DemandHeatmap.tsx

Exibe um grid de dias × horas colorido por intensidade de pedidos. Útil para identificar horários de pico e calibrar a escala manualmente.

API: GET /t/:slug/scheduling/demand-heatmap?branchId=&weeks=4

Retorna DemandHeatmapCell[]:

ts
interface DemandHeatmapCell {
  dayOfWeek: number;   // 0–6
  hour: number;        // 0–23
  orderCount: number;  // média de pedidos neste slot
}

Resumo de Custos

Componente: frontend-react/src/components/scheduling/LaborCostSummary.tsx

Agrega os turnos planejados para a semana selecionada e calcula:

  • Total de horas por colaborador
  • Custo estimado por colaborador (horas × taxa horária cadastrada)
  • Total de custo de mão de obra da semana

API

Base: /t/:slug/scheduling

Guards: JwtAuthGuard, TenantGuard

MétodoEndpointDescrição
GET/shifts?branchId=&start=&end=Listar turnos da semana
POST/shiftsCriar turno manualmente
PUT/shifts/:idAtualizar turno
DELETE/shifts/:idRemover turno
GET/suggestions?branchId=Última sugestão IA da filial
POST/suggestions/generateGerar nova sugestão IA
PUT/suggestions/:id/applyAplicar sugestão (importa turnos)
PUT/suggestions/:id/dismissDispensar sugestão
GET/availabilityListar disponibilidade da equipe
POST/availabilityCadastrar disponibilidade
DELETE/availability/:idRemover disponibilidade
GET/demand-heatmapHeatmap de tráfego histórico
GET/labor-costResumo de custo de mão de obra

Backend

ArquivoDescrição
backend/src/scheduling/scheduling.module.tsMódulo NestJS
backend/src/scheduling/scheduling.controller.tsController REST
backend/src/scheduling/staffing-suggestions.service.tsGeração de sugestões via IA
backend/src/scheduling/schemas/staffing-suggestion.schema.tsSchema de sugestões
backend/src/scheduling/schemas/staff-availability.schema.tsSchema de disponibilidade
backend/src/scheduling/schemas/schedule-shift.schema.tsSchema de turno

Relacionados

Lançado sob a licença MIT.