What problem does it solve?
Resolve a lógica de agendamento: criação, modificação ou depuração de blocos de horário, fases de procedimento, verificação de disponibilidade do barbeiro, cálculo de slots livres ou conflitos de agenda.
Core Features & Use Cases
- Bloqueios ATIVO vs LIVRE: blocos ATIVO ocupam o barbeiro e geram conflitos; blocos LIVRE são intervalos sem conflito.
- Cálculo de blocos: blocos criados sequencialmente a partir das fases do procedimento, respeitando a ordem de ProcedimentoFase.
- Verificação de disponibilidade: checagem de conflitos apenas em blocos ATIVOS e BloqueioAgenda do barbeiro.
- Busca de horários disponíveis: respeita horárioAbertura/horarioFechamento e diasFuncionamento; intervalo mínimo entre slots de 10 minutos.
Quick Start
Read the current agenda-engine.ts and run a simple block calculation for a sample procedure.