BeautyScale (Escala)
A BeautyScale representa uma escala de trabalho de um profissional ou estacao de trabalho no centro de estetica.
Descricao
A escala define os horarios disponiveis para agendamento, associando um profissional (ou recurso) a slots de tempo especificos. E usada para validar disponibilidade e organizar a agenda.
Dados
Informacoes da Escala
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| name | Texto | Sim | Nome da escala (ex: "Maria - Banho") |
| color | Texto | Nao | Cor para exibicao no calendario |
| active | Booleano | Sim | Se escala esta ativa |
Configuracao de Horarios
| Campo | Tipo | Descricao |
|---|---|---|
| work_days | Array | Dias da semana trabalhados |
| start_time | Hora | Horario de inicio |
| end_time | Hora | Horario de termino |
| slot_duration | Numero | Duracao de cada slot (minutos) |
| break_start | Hora | Inicio do intervalo |
| break_end | Hora | Fim do intervalo |
Relacionamentos
Pertence a
| Entidade | Obrigatorio | Descricao |
|---|---|---|
| Account | Sim | Conta do petshop |
| Store | Sim | Filial |
| Professional | Nao | Profissional associado |
Possui
| Entidade | Descricao |
|---|---|
| BeautyAppointments | Agendamentos nesta escala |
Dias da Semana
| Valor | Dia |
|---|---|
| 0 | Domingo |
| 1 | Segunda |
| 2 | Terca |
| 3 | Quarta |
| 4 | Quinta |
| 5 | Sexta |
| 6 | Sabado |
Slots de Tempo
Calculo de Slots
slots_por_dia = (end_time - start_time - intervalo) / slot_duration
Exemplo
Inicio: 08:00
Fim: 18:00
Intervalo: 12:00 - 13:00
Duracao slot: 30 min
Slots: 08:00, 08:30, 09:00, ..., 11:30, 13:00, 13:30, ..., 17:30
Validacao de Disponibilidade
Verificacao
Quando usuario tenta agendar:
- Verifica se dia esta em work_days
- Verifica se horario esta no range start_time - end_time
- Verifica se nao esta no intervalo
- Verifica se slot esta livre
Conflitos
Visualizacao no Calendario
Agrupamento
- Agendamentos sao agrupados por BeautyScale
- Cada escala aparece como uma coluna/recurso
- Cor da escala e usada para identificacao
Disponibilidade Visual
- Slots livres: clicaveis para criar agendamento
- Slots ocupados: exibem agendamento existente
- Fora do horario: bloqueado
Uso em Agendamentos
Obrigatoriedade
- BeautyScale e obrigatoria para agendamentos (
schedule = true) - Nao e obrigatoria para atendimentos imediatos (walk-in)
Associacao
Um agendamento pertence a uma escala:
- Define onde/quem vai atender
- Usado para validar horario
Permissoes
| Acao | Descricao |
|---|---|
| Criar | Criar nova escala |
| Editar | Alterar horarios e configuracao |
| Desativar | Marcar como inativa |
| Visualizar | Ver agenda da escala |
Regras de Negocio
- Escala deve ter pelo menos um dia de trabalho
- Horario de inicio deve ser antes do fim
- Intervalo deve estar dentro do horario de trabalho
- Duracao do slot deve ser maior que 0
Integracoes
Com Profissional
Se escala esta vinculada a um Professional:
- Profissional aparece nos agendamentos
- Pode receber comissao pelos servicos
- Disponibilidade segue a escala
Com BeautyAppointment
- Agendamento herda informacoes da escala
- Validacao de conflitos usa a escala
- Calendario exibe por escala