# Guia de Configuração de Calendários

> Documentação para vendedores da Unefesta.
> Versão HTML: https://www.unefesta.com.br/documentacao-vendedor/calendarios/guia-de-configuracao-de-calendarios

Esta tabela ajuda a entender a lógica de calendários, e como pode ser utilizado para gerenciar a disponibilidade dos seus serviços e produtos.

**LEMBRE-SE: Você poderá criar a combinação que melhor se adapta ao seu negócio.**

---

## Casos de Uso: Sem Estoque

**1. Recurso Único Compartilhado**
*   **Caso de Uso:** Quando você tem um único recurso (você mesmo, um espaço, um equipamento) que não pode ser usado simultaneamente para diferentes serviços.
*   **Exemplo:** Buffet infantil com vários cardápios: cada cardápio é um produto/serviço. Se um cliente faz uma reserva, independente do cardápio escolhido, aquele dia/horário não vai estar disponível para nenhuma outra opção de cardápio.
*   **Impacto nas Reservas:** Uma reserva bloqueia o horário para todos os produtos/serviços associados ao mesmo calendário.

**2. Profissional Único**
*   **Caso de Uso:** Quando você é um único profissional oferecendo diferentes serviços.
*   **Exemplo:** Fotógrafo com vários pacotes de serviço: cada pacote é um produto/serviço. O calendário representa a agenda do fotógrafo, independente do pacote escolhido, aparecem apenas horários livres que não tenham sido reservados para nenhum produto/serviço.
*   **Impacto nas Reservas:** Se você bloquear uma data para férias, nenhum produto/serviço estará disponível nesse período.

**3. Múltiplos Profissionais (Mesmo Serviço)**
*   **Caso de Uso:** Quando você tem vários profissionais que oferecem os mesmos serviços.
*   **Exemplo:** Para vários recreadores de uma empresa: cada recreador tem um calendário, porém todos prestam os mesmos serviços. Serão consultadas disponibilidades dos calendários relacionados aos serviços criados. Iremos exibir se houver pelo menos 1 disponível.
*   **Impacto nas Reservas:** O sistema mostrará disponibilidade se pelo menos um dos profissionais estiver livre no horário solicitado.

---

## Casos de Uso: Com Estoque

**4. Itens Similares Independentes**
*   **Caso de Uso:** Quando você tem múltiplos itens idênticos ou similares que podem ser alugados independentemente.
*   **Exemplo:** Loja de locação: Locação de bandeja azul, locação de bandeja amarela. A locação de uma não interfere na disponibilidade da outra, mesmo tendo o mesmo calendário relacionado.
*   **Impacto nas Reservas:** Uma reserva afeta apenas a disponibilidade do produto/serviço específico que foi reservado.

**5. Itens de Decoração Separados**
*   **Caso de Uso:** Quando você tem múltiplos itens de decoração que podem ser alugados separadamente.
*   **Exemplo:** Locação de mesas e cadeiras: Cada item tem sua própria disponibilidade, mesmo que compartilhem o mesmo calendário base.
*   **Impacto nas Reservas:** A consulta de disponibilidade filtra apenas reservas feitas para este produto/serviço e ignora outros.

**6. Independência de Produtos**
*   **Caso de Uso:** Útil para não ter que criar um calendário para cada produto/serviço quando elas são independentes.
*   **Exemplo:** Aluguel de fantasias: Cada fantasia é um produto com disponibilidade independente, mesmo que todas usem o mesmo calendário base.
*   **Impacto nas Reservas:** Você pode ter múltiplas reservas simultâneas para diferentes produtos/serviços no mesmo horário.

---

## Notas importantes sobre Calendários:

### No exemplo do calendário 1 (Sem Estoque):
*   Qualquer bloqueio no calendário interfere na disponibilidade de todas as variantes associadas.
*   Ideal quando você tem uma única agenda ou recurso compartilhado entre diferentes ofertas.
*   Evita conflitos de agendamento quando você não pode atender múltiplos clientes simultaneamente.

### No exemplo do calendário 2 (Com Estoque):
*   Cada variante tem sua própria disponibilidade independente.
*   A reserva de uma variante não impacta na disponibilidade de outras variantes.
*   Útil para não ter que criar um calendário para cada variante quando elas são independentes.

### Quando o cliente faz uma reserva:
*   O comprador só poderá reservar um dia ou horário disponível (ou o sistema agenda a primeira janela, quando configurado).
*   Uma pré-reserva é feita quando o link de pagamento é gerado.
*   O dia ou horário escolhido só será confirmado como **reserva paga** após o pagamento.
*   Pagamento negado / pedido em erro libera a pré-reserva de checkout.
*   Você pode bloquear manualmente datas em que não estará disponível para atendimento.

---

## Casos de Uso: compartilhamento no mesmo pedido (sem estoque)

**7. Multi-item / entregas / capacidade por janela**
*   **Configuração:** no calendário, marque **Permitir vários itens do mesmo pedido no mesmo período**, **máximo de pedidos por período** (1, N ou ilimitado) e **quem define a data** (cliente escolhe ou sistema agenda).
*   **Escopo:** só produtos/kits com **calendário habilitado e sem estoque**. Com estoque, o compartilhamento no pedido não se aplica.
*   **Mesmo pedido:** bolo + doces no mesmo horário = **1 vaga**.
*   **Pedidos diferentes:** até o máximo configurado no mesmo período. Valor > 1 permite vários clientes no mesmo horário — use com cuidado.
*   **Cliente escolhe:** data após frete (página do produto / carrinho / checkout); dias de frete entram no lead.
*   **Sistema agenda:** aloca a primeira janela válida; você realoca em Pedidos. O comprador vê “a partir de…”.
*   **Ocupação:** a capacidade é contada **por horário/janela**, sem “travar” o intervalo inteiro da consulta por um único pedido em outro dia.
*   **Guia completo:** [Encomendas e disponibilidade](./encomendas-e-disponibilidade.md).

---

## Horário de funcionamento (calendário)

Configurado no cadastro/edição do **calendário**, seção **Horários de funcionamento**.

| O que define | Efeito |
|--------------|--------|
| Dias da semana marcados | Dias em que a agenda **aceita reserva** |
| Faixas início/fim | Janelas horárias disponíveis (em duração por horas) |
| Dia inteiro | Início `00:00` e fim `23:59` nos dias marcados |

### Comportamento

*   Fora dos dias/faixas **não é possível agendar**.
*   Com produto/serviço vinculado ao calendário, esses dias também entram na conta do **prazo de produção** (veja abaixo).
*   Sem nenhuma faixa ou sem nenhum dia marcado, o sistema trata o expediente de forma especial (todos abertos ou nenhum — evite deixar incompleto).
*   Bloquear um dia no **produto** (ex.: toda segunda) **não substitui** o horário comercial: os dois filtros se aplicam juntos.

### Dica

Revise o resumo “Aberto / Fechado” no formulário do calendário antes de salvar.

---

## Feriados

Há **duas configurações distintas** — uma no calendário e outra no produto/serviço.

### Fechamos em feriados (calendário)

Checkbox **Fechamos em feriados**, junto aos horários de funcionamento.

| Opção | Reserva no feriado | Prazo de produção |
|-------|--------------------|-------------------|
| **Desmarcada** (padrão) | Feriados **não** fecham a agenda | Dias de feriado **contam** como dia de funcionamento (se o expediente incluir aquele weekday) |
| **Marcada** | Feriados nacionais e extras ficam **indisponíveis** (como fora do expediente) | Feriados **não contam** no prazo de produção |

Com a opção marcada, o **Exceto feriados** do produto **não** reabre o dia — a loja está fechada.

### Exceto feriados (produto/serviço)

Checkbox no produto/serviço, junto aos **dias da semana bloqueados**.

| Opção | Dia bloqueado que cai em feriado |
|-------|----------------------------------|
| Desmarcada | Continua **indisponível** |
| Marcada | Fica **disponível** naquele dia **somente se** o calendário **não** tiver “Fechamos em feriados” |

Mesmo liberado pelo Exceto feriados, o dia ainda precisa passar em: horário de funcionamento, slots/reservas, estoque (se houver) e prazo mínimo.

### Quais datas contam como feriado

| Tipo | Onde | Observação |
|------|------|------------|
| **Nacionais (BR)** | Automático | Fixos e móveis (Carnaval, Sexta-feira Santa, etc.). Não precisa cadastrar. |
| **Extras** | Calendário → Feriados extras | Locais ou datas especiais da loja (data + nome opcional). |

Na vitrine, a grade de disponibilidade **exibe** os feriados do período pesquisado (nacionais e extras).

Guia detalhado: [Bloqueio semanal e feriados](./bloqueio-semanal-e-feriados.md).

---

## Prazo de produção (produto/serviço + calendário)

Campo **Tempo de produção** / `productionDays` no produto ou kit (quando aplicável, ex. sob demanda).

Com **calendário habilitado**, a produção conta em **dias de funcionamento do calendário**, não em “dias corridos”.

| Conta no prazo de produção | Não conta |
|----------------------------|-----------|
| Dias com expediente marcado em **Horários de funcionamento** | Dias fora do expediente |
| — | Feriados (nacionais + extras), **se** “Fechamos em feriados” estiver marcado |

### Exemplos

*   Produção = 2 dias; calendário aberto seg–sex; pedido na sexta → o piso de produção cai na **terça** seguinte (sáb/dom não contam).
*   Mesmo caso com “Fechamos em feriados” e segunda sendo feriado → o segundo dia útil de produção empurra para a **quarta**.

Sem calendário habilitado, estimativas de entrega em outras telas podem usar **dias úteis comerciais** (seg–sex); o lead da agenda com calendário segue a regra acima.

---

## Prazo de entrega / frete

Dias de frete (`freightDays`) vêm da cotação (transportadora, frete próprio, etc.).

| Regra | Detalhe |
|-------|---------|
| Contagem | **Dias úteis comerciais** (segunda a sexta) |
| Feriados nacionais | **Não contam** no prazo de frete (SLA típico de transportadora) |
| Feriados extras da loja | Não alteram o frete por si só (afetam agenda/produção conforme “Fechamos em feriados”) |

Na página do produto, ao escolher frete, esses dias entram no **lead** junto com a produção.

---

## Como o sistema combina os prazos (lead)

A primeira data/hora reservável usa o **maior** entre:

1. **Produção + frete** (nesta ordem: primeiro dias de funcionamento/produção, depois dias úteis de frete), e  
2. **Antecedência mínima** do calendário (`minBefore` em minutos/horas/dias —
