# 2. Configurar a loja

Toda a configuração operacional — horário, serviços, espaços, equipa, menu — pertence a uma \*\*loja\*\*. Se tiver várias lojas, \*\*confirme primeiro qual está ativa\*\* no seletor de loja (canto superior direito) antes de mexer nas definições.

# Introdução

Toda a configuração operacional — horário, serviços, espaços, equipa, menu — pertence a uma **loja**.
Se tiver várias lojas, **confirme primeiro qual está ativa** no seletor de loja (canto superior
direito) antes de mexer nas definições.

> 🧭 **Ordem recomendada:** (1) tipo de agenda → (2) horário → (3) serviços → (4) espaços, se aplicável
> → (5) colaboradores → (6) menu, se aplicável → (7) janela de reservas. Faça por esta ordem que tudo
> "encaixa".

---

# 2.1 Detalhes da loja

1. Vá a **Definições → Lojas** e clique em **Editar** na loja.
2. Preencha **nome, morada, telefone, email**.
3. **Localização no mapa (opcional, recomendado):** clique no mapa ou arraste o marcador para a porta
   da loja. As coordenadas tornam o endereço **clicável** na página pública — o cliente toca e abre o
   Google Maps com direções.
4. **Ativa/Inativa:** uma loja inativa deixa de aparecer na página pública e no seletor, mas mantém o
   histórico. Útil para fecho temporário.
5. Guarde.

> 📸 **`02-loja-editar.png`** — Página de edição da loja com o seletor de mapa (Leaflet/OpenStreetMap).
![Editar loja](images/02-loja-editar.png)

---

# 2.2 Escolher o tipo de agenda

Esta é a **definição mais importante**: controla como as reservas são estruturadas e como a agenda é
desenhada. Vá a **Configuração da loja → Agenda**.

| Tipo | Indicado para | A agenda mostra | A reserva pede |
|---|---|---|---|
| **Por mesa (TimeSlot)** | restaurantes | Gantt horizontal, 1 linha por mesa | mesa + nº de pessoas |
| **Por colaborador (ByStaff)** | barbearias, salões, clínicas | colunas por colaborador | serviço + profissional |
| **Por espaço (ByLocation)** | campos, salas, escape rooms | colunas por espaço | espaço (+ nº de pessoas) |
| **Por serviço (ByService)** | tratamentos sem profissional fixo | colunas por serviço | serviço (profissional opcional) |

1. Clique no **cartão** do tipo adequado.
2. Defina:
   - **Duração do intervalo** (ex. 15 min para barbearia, 30 min para clínica, 60 min para restaurante
     ou padel). É a "grelha" de horas.
   - **Antecedência mínima** — minutos antes de um horário em que ainda se aceita reserva online
     (ex. 120 = não se reserva para daqui a menos de 2 h).
   - **Limite diário** de reservas online (deixe vazio = sem limite).
   - **Antecedência máxima** (dias) — até quando se pode reservar (ex. 60 = dois meses).
3. Guarde.

> 📸 **`02-tipo-agenda.png`** — Página da Agenda com os quatro cartões de tipo de agenda e os campos de configuração.
![Tipo de agenda](images/02-tipo-agenda.png)

> ⚠️ **Mudar de tipo de agenda** numa loja já a funcionar muda a forma como as reservas existentes são
> mostradas. Evite trocar com a agenda cheia.

---

# 2.3 Horário de funcionamento

1. Vá a **Configuração da loja → Horário**.
2. Para cada dia da semana, ligue/desligue **Aberto**.
3. Defina **um ou mais intervalos** por dia. Para uma **pausa de almoço**, crie dois intervalos
   (ex. `09:00–13:00` e `15:00–19:00`) com o botão **+ Período**. O período entre eles fica fechado.
4. Guarde. O sistema **valida** e impede intervalos sobrepostos.

> 📸 **`02-horario.png`** — Grelha semanal com dois intervalos num dia (pausa de almoço).
![Horário](images/02-horario.png)

> 💡 Os horários disponíveis para reserva (online e no backoffice) saem **deste** horário, cruzado com
> o horário de cada colaborador (2.8) e com os conflitos existentes.

---

# 2.4 Horário especial e feriados

Para datas pontuais que fogem ao horário normal (feriados, inventários, eventos):

1. Vá a **Configuração da loja → Horário Especial** e clique em **Adicionar**.
2. Escolha a **data**.
3. Marque **Fechado** (a loja não aceita reservas nesse dia) **ou** defina **intervalos especiais**
   (ex. só de manhã).
4. Opcional: adicione uma **nota** (ex. "Natal", "Feriado Municipal").
5. Guarde.

O horário especial **substitui** o horário normal nessa data — na agenda do backoffice e na página
pública (os dias fechados aparecem bloqueados ao cliente).

> 📸 **`02-horario-especial.png`** — Adicionar um dia especial (fechado / horário personalizado) com nota.
![Horário especial](images/02-horario-especial.png)

---

# 2.5 Serviços

1. Vá a **Configuração da loja → Serviços** e clique em **Novo serviço**.
2. Preencha:
   - **Nome** e **descrição**.
   - **Duração** (minutos) — determina quanto espaço o serviço ocupa na agenda e os horários possíveis.
   - **Preço**.
   - **Cor** — usada para identificar o serviço na agenda (escolha um gradiente).
3. **Grupos (opcional):** crie grupos (ex. "Cabelo", "Barba") e associe os serviços; arraste pelo
   manípulo para **reordenar** serviços e grupos. Os grupos aparecem como cabeçalhos na reserva
   pública e nos seletores do backoffice.
4. Guarde. Pode marcar um serviço como **inativo** para o esconder sem o apagar.

> 📸 **`02-servicos-lista.png`** — Lista de serviços agrupados com cores, duração e preço, e o botão "Novo serviço".
![Serviços](images/02-servicos-lista.png)

> 📸 **`02-servico-editar.png`** — Edição de um serviço (duração, preço, cor, grupo).
![Editar serviço](images/02-servico-editar.png)

> 💡 **Cenário (clínica):** crie "Consulta" (30 min), "Fisioterapia" (45 min), "Nutrição" (30 min). A
> duração diferente faz com que cada serviço ocupe o espaço certo na agenda.

---

# 2.6 Espaços / mesas

Aplica-se às agendas **Por mesa** e **Por espaço**. Vá a **Configuração da loja → Espaços**.

1. Clique em **Novo espaço** e defina:
   - **Nome** (ex. "Mesa 4", "Campo 1", "Sala Egito").
   - **Capacidade** — nº máximo de pessoas (opcional).
   - **Preço** e **modo de preço:** *por reserva* (preço fixo) ou *por pessoa* (preço × nº de pessoas).
   - **Reserva exclusiva:** ligado = uma única reserva ocupa o espaço no intervalo (court, sala);
     desligado = várias reservas partilham até à capacidade (ex. mesa de bar comunitária).
2. Opcional: organize em **grupos** e arraste para reordenar.

> 📸 **`02-espacos.png`** — Lista de espaços/mesas com capacidade, preço e o indicador de exclusividade.
![Espaços](images/02-espacos.png)

> 💡 **Cenário (restaurante):** crie M1–M6 (exclusivas, capacidades 2–8) e "Bar" (partilhada, 4 lugares).
> 💡 **Cenário (padel):** crie "Campo 1–4" (exclusivos, €24/reserva).
> 💡 **Cenário (escape room):** crie as salas com preço **por pessoa** e capacidade (ex. 6/4/8).

---

# 2.7 Colaboradores

Em **Colaboradores → Novo colaborador**:

1. **Nome** e **cor** (usada na agenda para distinguir a coluna do colaborador).
2. **Função (acesso):**
   - **Colaborador** — só vê as reservas; sem acesso às definições; fica fixo à loja atribuída.
   - **Admin de loja** — gere as definições da loja (horário, serviços, agenda); não mexe no negócio
     nem noutras lojas.
   - **Admin do negócio** — acesso total (como o dono).
3. **Lojas:** atribua a uma ou mais lojas. Por loja, defina o **âmbito de serviços**: *Todos*,
   *Selecionados* (escolhe a lista) ou *Nenhum* (atribuído mas não recebe marcações nessa loja).
4. **Serviços:** se o âmbito for *Selecionados*, escolha que serviços o colaborador realiza. Sem
   serviços selecionados = realiza todos.
5. **Conta de acesso (opcional):** associe um **email + palavra-passe** para o colaborador entrar na
   plataforma. Pode desassociar depois.
6. Guarde.

> 📸 **`02-colaborador-editar.png`** — Edição de colaborador: função, lojas atribuídas, âmbito de serviços e conta de acesso.
![Colaborador](images/02-colaborador-editar.png)

> 💡 O dono é automaticamente criado como colaborador com acesso a todas as lojas — por isso no plano
> Grátis (1 profissional) o dono já é esse profissional.

---

# 2.8 Horário de trabalho do colaborador (por loja)

Define em que horas cada colaborador trabalha — útil quando difere do horário da loja.

**Exemplo:** a loja abre das **09:00 às 22:00**, mas a Ana só trabalha das **09:00 às 14:00**. Sem
horário personalizado, o sistema ofereceria slots da Ana a toda a hora; com ele, só oferece 09:00–14:00.

1. Na edição do colaborador, ligue **"Usar horário personalizado"**.
2. Para **cada loja atribuída** aparece uma grelha de **7 dias**. Em cada dia marque **Trabalha** e
   defina os intervalos (suporta vários por dia, ex. manhã + tarde).
3. Guarde.

**Regras importantes:**

- Os horários disponíveis do colaborador são a **interseção** do horário da loja com o seu horário. Se
  definir um horário **maior** que o da loja, só contam as horas em que **ambos** coincidem.
- Quem está atribuído a **2 ou mais lojas é obrigado** a usar horário personalizado (tem de dizer as
  horas em cada loja). O interruptor fica **ligado e bloqueado**.
- Na **agenda diária**, as horas em que o colaborador **não está na loja** aparecem **sombreadas** na
  coluna dele; arrastar uma marcação para essas horas é **recusado**.
- Na **edição/criação manual**, marcar para fora do horário do colaborador mostra um **alerta** e
  **impede** a gravação.

> 📸 **`02-horario-colaborador.png`** — "Usar horário personalizado" ligado, com uma grelha de 7 dias por loja.
![Horário do colaborador](images/02-horario-colaborador.png)

> 📸 **`02-agenda-bloqueio.png`** — Coluna de um colaborador na agenda diária com as horas fora do horário sombreadas.
![Bloqueio na agenda](images/02-agenda-bloqueio.png)

---

# 2.9 Menu

Para negócios com menu (ex. restaurantes), vá a **Configuração da loja → Menu**:

1. Crie **categorias** (ex. "Entradas", "Pratos", "Sobremesas").
2. Dentro de cada categoria, crie **itens** (nome, descrição, preço, **imagem** — carregada e
   recortada no editor).
3. Arraste pelo manípulo para **reordenar** categorias e itens.

O menu pode ser mostrado na página pública (capítulo 4) e está disponível para qualquer tipo de agenda.

> 📸 **`02-menu.png`** — Gestão do menu: categorias e itens com fotos.
![Menu](images/02-menu.png)

---

# 2.10 Janela de reservas (resumo)

Os campos do passo 2.2 controlam **quando** o cliente pode reservar online:

- **Antecedência mínima** — evita reservas "para já".
- **Antecedência máxima (dias)** — até quando se aceita.
- **Limite diário** — trava o nº de reservas por dia.

No dia atual, os horários já passados (e dentro da antecedência mínima) deixam de aparecer
automaticamente.

---
**A seguir:** [Gerir marcações](03-gerir-marcacoes.md).