Atrações
A atração é a entidade central do catálogo — a “coisa” vendável na qual se penduram ocorrências, passaportes, produtos, regras de preço, complementos e vouchers.
O que é e para que serve
Uma atração não carrega data nem preço. Ela define o que existe (Piscinas, Churrasqueiras, Show de Verão) e quais comportamentos aceita. As datas vêm das ocorrências, os ingressos dos passaportes e os valores das regras de preço.
Quem pode acessar
attractions.view— navegar pelo módulo.attractions.manage— criar, editar, arquivar e reordenar.
Como acessar
Menu lateral → Atrações.
Visão geral da tela
Listagem
Busca por texto, construtor de filtros, seletor de colunas e listas salvas. As listas de sistema são: Todas, Ativas, Inativas, Arquivadas, Permanentes e Eventos.
| Botão | O que faz |
|---|---|
| Nova atração | Abre o formulário de cadastro. |
| Reordenar | Abre um painel de arrastar e soltar que define a ordem das atrações na loja. |
| Colunas / Filtros / Listas salvas | Mesmo padrão dos demais módulos. |
Abas da tela de detalhe
| Aba | Conteúdo |
|---|---|
| Resumo | Situação geral da atração. |
| Detalhes | O formulário de edição. |
| Comentários | Anotações internas da equipe. |
| Relacionados | Contagem de ocorrências, passaportes e regras de preço vinculados. |
| Complementos | Outras atrações ofertadas junto desta no checkout. |
| Auditoria | Histórico de alterações, campo a campo. |
Tipos e flags de comportamento
| Configuração | Padrão | Efeito quando ligada | Efeito quando desligada |
|---|---|---|---|
| Tipo | Permanente | Permanente = atração contínua; Evento = data específica. | — |
| Gera ocorrências | Ligada | Permite criar datas e regras de recorrência. | Bloqueia a criação de ocorrências e de regras (erro attraction_no_occurrence). |
| Aceita passaportes | Desligada | Permite pendurar tipos de ingresso. | Bloqueia a criação e o revínculo de passaportes (erro attraction_no_passport). |
| Aceita produtos | Desligada | Permite vincular produtos à atração. | Bloqueia o vínculo (erro attraction_no_products). |
Desligar uma flag não apaga nem invalida o que já existe: ela impede novas criações e
novos vínculos. E as mensagens desses três bloqueios ainda aparecem em inglês, sem tradução — se você vir
attraction_no_passport ao criar um passaporte, o motivo é a flag da atração.
Ordem das atrações na loja
O botão Reordenar grava a ordem de exibição. Ela é usada apenas no fluxo em que o cliente escolhe primeiro a data: as atrações disponíveis naquele dia sempre aparecem acima das indisponíveis, e a ordem definida serve para desempatar dentro do grupo disponível.
Clicar no cabeçalho de uma coluna reordena apenas a sua visualização no painel. A ordem que o cliente vê é definida só pelo painel de reordenar.
Complementos
Um complemento é uma atração relacionada ofertada junto de outra no checkout — o caso clássico é a churrasqueira ofertada junto do ingresso da piscina. O complemento mantém calendário, capacidade, ingressos e vouchers próprios. O vínculo define título da oferta, descrição curta, status, ordem de exibição e limite de quantidade. Detalhes em cadastro de complemento.
Status × arquivamento
| Inativa | Arquivada | |
|---|---|---|
| Efeito | Pausa a venda; continua no catálogo do painel | Sai da listagem principal |
| Reversível | Sim | Sim (restaurar) |
| Ingressos vendidos | Continuam válidos | Continuam válidos |
| Bloqueio | — | Bloqueada se houver venda futura |
Regras de negócio
- Nome único por empresa, incluindo arquivadas. Não é possível criar ou renomear para um nome já usado, mesmo que a outra atração esteja arquivada.
- Desarquivar só é bloqueado se houver outra atração ativa com o mesmo nome.
- Arquivar com venda futura é proibido. A mensagem informa a quantidade de ingressos: “Esta atração tem N ingresso(s) vendido(s) em datas futuras. Remarque ou reembolse essas vendas antes de arquivar.”
- Nome tem no máximo 80 caracteres, com contador no formulário.
- Imagem: aceita JPG, PNG, WEBP e GIF, com até 5 MB.
- Nunca há exclusão definitiva — relatórios e check-in leem o nome ao vivo.
Erros e dúvidas comuns
| Mensagem | Causa | Solução |
|---|---|---|
| Já existe uma atração com esse nome nesta empresa (ativa ou arquivada). | Nome duplicado | Escolher outro nome ou restaurar a atração arquivada |
| Já existe uma atração ativa com esse nome nesta empresa. Renomeie antes de desarquivar. | Conflito ao restaurar | Renomear uma das duas |
| Esta atração tem N ingresso(s) vendido(s) em datas futuras… | Trava de arquivamento | Remarcar ou reembolsar as vendas antes |
| Arquivo inválido: envie uma imagem (JPG, PNG, WEBP ou GIF). | Formato não aceito | Converter a imagem |
| Imagem muito grande. O tamanho máximo é 5 MB. | Arquivo grande | Reduzir a imagem |
| “Atrações com nome semelhante: …” | Aviso informativo durante a digitação | Apenas confira; não bloqueia o salvamento e pode dar falso positivo |
Exemplo de utilização
Um parque aquático cria a atração Piscinas (permanente, gera ocorrências, aceita passaportes e produtos) e a atração Churrasqueiras (permanente, gera ocorrências, aceita passaportes). Depois vincula Churrasqueiras como complemento de Piscinas, com o título de oferta “Reserve uma churrasqueira” e limite de 1 por compra. No checkout, quem compra o dia na piscina recebe a oferta da churrasqueira para a mesma data.
Boas práticas
- Defina as flags antes de cadastrar ocorrências e passaportes: elas são portões de criação.
- Use nomes claros para o cliente final — eles aparecem na loja, no voucher e no portão.
- Para tirar uma atração de venda temporariamente, use Inativa. Arquive apenas o que não voltará.
- Ao arquivar pela listagem, lembre-se de que a ação não gera registro de auditoria; prefira a tela de detalhe quando a rastreabilidade importar.