Fábrica de Sites

Sistema completo para criação e padronização de novos sites na plataforma multi-tenant.

Visão Geral

A Fábrica de Sites é o ecossistema responsável por definir como cada novo site (tenant) será criado. Ela reúne quatro pilares que trabalham juntos:

Template
Estrutura visual do site (header, footer, CSS, JS)
Componentes
Menus, links, busca, carrinho, newsletter
Starter Kit
Pacote que une template + módulos + páginas
Páginas Modelo
Conteúdo pré-configurado importado automaticamente
O fluxo é: cria-se um Template com componentes, associa-se a um Starter Kit com módulos e páginas modelo. Ao criar um novo tenant e selecionar o kit, tudo é configurado automaticamente.

Templates

Templates definem a estrutura visual de cada site: header, body, footer, CSS e JavaScript. São globais (compartilhados entre todos os tenants) e podem ser associados a um Starter Kit.

Seleção do Starter

O primeiro passo ao criar um template é escolher um Starter (modelo base) — um conjunto de HTML/CSS pré-pronto que serve de ponto de partida:

Formulário de Criação

Após escolher o starter, o formulário de criação pede:

Os componentes selecionados na criação são inseridos no HTML de forma inteligente. O starter é apenas o ponto de partida — após a criação, o HTML é totalmente editável no Editor.

Editor

O editor tem layout de três colunas:

A barra de ações do editor inclui: badge do nome/kit, botão Preview (abre em nova janela), Reset (restaura ao HTML original do starter) e Salvar (ou Ctrl+S).

Variáveis Blade

O HTML do template é compilado pelo Blade com dados reais do tenant. Variáveis disponíveis:

{{ $siteName }}          — Nome do site
{{ $siteLogo }}          — URL do logo
{{ $sitePhone }}         — Telefone principal
{{ $siteWhatsapp }}      — Número do WhatsApp
{{ $siteWhatsappLink }}  — Link completo wa.me
{{ $siteEmail }}         — E-mail principal
{{ $siteFullAddress }}   — Endereço completo
{{ $primaryColor }}      — Cor primária (#hex)
{{ $secondaryColor }}    — Cor secundária
{{ $footerCopyright }}   — Texto do copyright
...e mais ~40 variáveis de identidade, contato, redes sociais, SEO
A lista completa de variáveis está disponível no painel lateral "Variáveis Disponíveis" dentro do editor.

Componentes do Site

Componentes são blocos funcionais que definem quais links e elementos existirão no HTML do template. Cada componente é renderizado automaticamente pelo Laravel com dados reais do tenant.

Os componentes aparecem em dois momentos:

  1. Na criação do template — como checkboxes para seleção inicial (inseridos automaticamente no HTML do starter)
  2. No editor — no painel lateral "Componentes do Site", com controles para inserir, navegar e remover

Catálogo de Componentes

Todos os componentes disponíveis, organizados por grupo:

GrupoComponenteDescrição
Menus de Módulos
Dropdowns automáticos com categorias do módulo
BlogMenu dropdown com categorias do blog
ProdutosMenu dropdown com categorias de produtos
ImóveisMenu dropdown com categorias de imóveis
VeículosMenu dropdown com categorias de veículos
PortfólioMenu dropdown com categorias de portfólio
FAQMenu dropdown com categorias de FAQ
DownloadsMenu dropdown com categorias de downloads
Links de Módulos
Links diretos sem dropdown
EquipeLink para a página de equipe (/equipe)
DepoimentosLink para a página de depoimentos (/depoimentos)
Páginas
Links para páginas do site
Sobre NósLink para a página "Sobre" (/sobre) — vinculado à página modelo
ContatoLink para a página "Contato" (/contato) — vinculado à página modelo
Utilitários
Componentes funcionais
BuscaCampo de busca (<x-front.search-box />)
Carrinho/OrçamentoMini-cart (<x-front.mini-cart />) — requer módulo orçamento
Seletor de IdiomaSwitcher de idioma (<x-front.language-switcher />)
Rodapé NewsletterFormulário de newsletter (<x-front.newsletter-form />) — requer módulo newsletter
Cada componente está ligado a um módulo ou página. Menus de módulos precisam que o respectivo módulo esteja ativo no Starter Kit. Links de páginas (Sobre, Contato) precisam que a respectiva página modelo esteja incluída no kit. Essa relação é validada automaticamente (veja Validação Cruzada).

Inserção na Criação

Na tela de criação do template, os componentes aparecem como checkboxes organizados por grupo. Ao marcar um componente e criar o template, ele é inserido automaticamente no HTML do starter na posição adequada:

Inserção no Editor

No painel lateral "Componentes do Site" do editor, cada componente mostra sua tag Blade e um botão "Inserir". O posicionamento é inteligente:

Detecção e Navegação

O sistema detecta automaticamente quais componentes já estão presentes no HTML, escaneando o conteúdo de todas as abas (header, body, footer). O status de cada componente atualiza em tempo real conforme o HTML é editado.

Remoção

O botão × ao lado do badge remove uma ocorrência por vez — a que está no ciclo de navegação atual. Ao remover:

  1. Navega até a ocorrência no editor e ativa a aba correta
  2. Destaca em vermelho as linhas que serão removidas
  3. Remove o componente e o comentário Blade acima dele (se existir)
  4. Atualiza a contagem automaticamente
A remoção é sempre individual para segurança. Em templates customizados, o mesmo componente pode existir em locais diferentes intencionalmente (ex: menu desktop e mobile). Use Ctrl+Z no editor para desfazer.

Starter Kits

Starter Kits são pacotes pré-configurados que definem como um novo site será criado. Cada kit reúne:

Informações do Kit

Cada kit tem um nome, ícone (FontAwesome) e cor que formam sua identidade visual. Esses dados aparecem na seleção ao criar um novo site. O formulário inclui preview em tempo real do ícone com a cor selecionada.

Template Padrão

No formulário do kit, seleciona-se o template padrão — o template que será aplicado automaticamente quando um site for criado com este kit.

Ao selecionar um template, o sistema exibe um painel de componentes detectados mostrando todos os componentes presentes no HTML do template. Esse painel é a base da Validação Cruzada.

Templates Vinculados

Um kit pode ter múltiplos templates associados (cada template define seu segment_id no editor). O template padrão é o aplicado automaticamente; os demais ficam disponíveis para o tenant escolher depois. Na edição do kit, os templates vinculados aparecem como badges com link direto para o editor.

A associação template → kit é feita no editor do template (campo "Starter Kit" nas configurações). Para vincular mais templates, vá à Fábrica de Templates.

Módulos

A seção de módulos lista todos os módulos disponíveis, organizados por categoria (Conteúdo, Funcionalidades, E-commerce, etc.). Para cada módulo:

Módulos selecionados aparecem com borda azul. Ao desmarcar um módulo, o switch obrigatório é desabilitado automaticamente.

Páginas Modelo

Mesma lógica dos módulos: checkboxes + switch "Obrig." para cada página modelo disponível. Páginas selecionadas ficam com borda verde. Páginas que usam Page Builder exibem badge "PB".

Filtragem de Templates por Kit

Quando um tenant pertence a um Starter Kit, a tela de seleção de templates no painel do tenant exibe apenas:

Se o tenant não tiver kit, todos os templates ativos são exibidos.

Criação Rápida

É possível criar um Starter Kit sem sair do formulário de criação/edição de template. O botão + ao lado do seletor abre um modal para criar rapidamente um kit com nome, ícone e cor. Depois é possível editar o kit completo com módulos e páginas.

Validação Cruzada

A Fábrica de Sites possui um sistema de validação cruzada em tempo real que garante a consistência entre template, módulos e páginas modelo dentro de um Starter Kit.

Como Funciona

Ao editar um Starter Kit e selecionar (ou trocar) o template padrão, o sistema automaticamente:

  1. Detecta quais componentes estão presentes no HTML do template
  2. Lista cada componente com seu ícone, nome e grupo
  3. Cruza os componentes com os módulos e páginas selecionados no kit
  4. Exibe alertas para inconsistências

Alertas de Inconsistência

O painel de validação exibe avisos amarelos em dois cenários:

SituaçãoAvisoSignificado
Template tem menu de Blog mas o módulo Blog não está ativo "módulo não ativado" O menu aparecerá no site mas o módulo não funcionará — ative o módulo Blog no kit
Template tem link Sobre mas a página modelo "Sobre" não está incluída "página não incluída" O link aparecerá no menu mas a página não será criada — inclua a página modelo no kit

No final do painel, um resumo lista todas as pendências:

Atualização em Tempo Real

A validação atualiza automaticamente quando:

Use a validação cruzada como checklist: insira componentes no template, depois vá ao kit e ative os módulos/páginas que o painel indicar como faltantes. O objetivo é garantir que todo link no template tenha o módulo ou página correspondente ativo no kit.

Páginas Modelo

Páginas Modelo (Starter Pages) são páginas pré-configuradas com conteúdo pronto, importadas automaticamente para cada novo site vinculado ao kit.

Tipos de Conteúdo

Campos da Página

Vinculação a Kits

Cada página modelo pode estar vinculada a um ou mais kits (relação muitos-para-muitos). A vinculação pode ser feita em dois lugares:

Páginas sem nenhum kit selecionado são consideradas universais — incluídas automaticamente para todos os kits. Use isso para páginas comuns como "Sobre Nós" ou "Contato".

Páginas do Sistema

A plataforma já vem com 3 páginas modelo pré-configuradas (criadas automaticamente na instalação):

PáginaSlugTipoConteúdo
Página Inicial /home Page Builder Slider, cards de serviços, seção sobre e features
Sobre Nós /sobre WYSIWYG História, valores e missão da empresa
Contato /contato Page Builder Texto introdutório e formulário de contato
Estas páginas são marcadas como "Sistema" e não podem ser excluídas. Sem vínculo a nenhum kit específico, são universais — disponíveis para todos os kits automaticamente. Seu conteúdo pode ser editado livremente.

O que é Importado

Ao criar um site, para cada página modelo do kit:

Se o tenant já possuir uma página com o mesmo slug (ex: já tem /sobre), a página modelo não é importada — a página existente é preservada. O sistema informa quais páginas serão criadas e quais serão ignoradas antes da confirmação.

Preview

O sistema de preview renderiza o template completo com dados fictícios, permitindo visualizar o resultado antes de publicar.

Como Funciona

  1. O HTML do template (header + body + footer) é concatenado
  2. O placeholder [[CONTENT]] é substituído pelo conteúdo de uma página real do site modelo
  3. Componentes Blade (<x-front.*>) são substituídos por mocks visuais estáticos
  4. O Blade é compilado com variáveis mock (nome, telefone, cores, etc.)
  5. O CSS é compilado separadamente com as mesmas variáveis

Mocks dos Componentes

Cada componente tem um mock visual específico no preview:

Site Modelo

A plataforma possui um tenant especial chamado "Site Modelo" (is_model = true). Esse tenant faz parte da infraestrutura do sistema e é criado automaticamente na instalação.

Ele é usado como fonte padrão de dados para o preview de templates e páginas modelo. Ao abrir o preview:

O Site Modelo não pode ser excluído — essa proteção existe tanto no painel quanto no banco de dados. Ele pode ser editado normalmente: alterar nome, configurar módulos, criar páginas, ajustar identidade visual — tudo isso alimenta o preview com dados mais realistas.

Dados Iniciais

A plataforma vem com dados pré-configurados criados automaticamente na instalação (seeders). Esses dados formam a base para o funcionamento da Fábrica de Sites:

Site Modelo

Um tenant especial chamado "Site Modelo" é criado com domínio modelo.localhost. Este tenant serve como ambiente de referência para previews de templates e páginas modelo. Não pode ser excluído (veja Preview).

Módulos

14 módulos são cadastrados, divididos em categorias:

Starter Kits Padrão

5 kits pré-configurados, cada um com módulos obrigatórios e opcionais específicos:

KitMódulos ObrigatóriosMódulos Opcionais
InstitucionalSliders, ContatoEquipe, Portfólio, Depoimentos, FAQ, Newsletter, Downloads
ImobiliáriaSliders, Contato, ImóveisDepoimentos, FAQ, Equipe, Newsletter
CatálogoSliders, Contato, ProdutosDepoimentos, FAQ, Equipe, Newsletter, Downloads
PortalSliders, Contato, BlogNewsletter, Depoimentos, FAQ, Equipe
ConcessionáriaSliders, Contato, VeículosDepoimentos, FAQ, Equipe, Newsletter

Páginas Modelo do Sistema

3 páginas universais (Home, Sobre e Contato) — detalhadas na seção Páginas Modelo.

Todos esses dados são editáveis. Você pode criar novos kits, adicionar módulos, modificar as páginas do sistema e configurar o Site Modelo com dados reais para previews mais fiéis.

Fluxo Completo

Resumo do fluxo ponta a ponta:

1 Criar Template

Escolha um starter, selecione os componentes desejados (menus, links, busca, newsletter) e crie o template. Os componentes são inseridos automaticamente no HTML.

2 Editar e Refinar

No editor, ajuste o HTML/CSS, adicione ou remova componentes pelo painel lateral. Visualize o resultado no preview com dados mock.

3 Criar Starter Kit

Associe o template, selecione os módulos e páginas modelo. Use a validação cruzada para garantir que todos os componentes do template tenham seus módulos e páginas correspondentes ativos.

4 Criar Páginas Modelo

Configure páginas com WYSIWYG ou Page Builder. Vincule aos kits desejados ou deixe universal para todos os kits.

5 Criar Novo Site

Ao criar um tenant e selecionar o kit, o sistema automaticamente: aplica o template, ativa os módulos, importa as páginas modelo com seus blocos, URLs e configurações.

Após a criação, o tenant pode personalizar seu template, adicionar novos conteúdos e gerenciar módulos independentemente. As alterações no template da fábrica afetam apenas novos sites.