# Arquitetura Multi-tenant - Modelo de Negócio Aggios ## Visão Geral da Plataforma A plataforma Aggios utiliza uma arquitetura multi-tenant em três camadas principais: ``` ┌─────────────────────────────────────────────────┐ │ aggios.app (Site Institucional) │ │ - Marketing │ │ - Cadastro de novas agências │ └─────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────┐ │ dash.aggios.app (SuperAdmin) │ │ - Você (dono da plataforma) │ │ - Gerencia TODAS as agências │ │ - Vê analytics globais │ └─────────────────────────────────────────────────┘ │ ┌───────────┴───────────┐ ▼ ▼ ┌──────────────────┐ ┌──────────────────┐ │ idealpages. │ │ outraagencia. │ │ aggios.app │ │ aggios.app │ ├──────────────────┤ ├──────────────────┤ │ Painel da │ │ Painel da │ │ IdeaPages │ │ Outra Agência │ │ │ │ │ │ • CRM │ │ • CRM │ │ • ERP │ │ • ERP │ │ • Projetos │ │ • Projetos │ │ • White Label │ │ • White Label │ │ (seu logo) │ │ (logo deles) │ └──────────────────┘ └──────────────────┘ │ │ ▼ ▼ Clientes da Clientes da IdeaPages Outra Agência ``` ## Como Funciona na Prática ### 1. Sua Agência (Exemplo: IdeaPages) - **URL**: `idealpages.aggios.app` - **White Label**: Logo e cores da IdeaPages - **Clientes**: Cadastrados DENTRO da agência IdeaPages - **Isolamento**: Cada cliente é isolado por tenant_id (multi-tenant) ### 2. Quando um Cliente Precisa do CRM **Você SEMPRE manda a URL da sua agência**, não aggios.app! - Cliente cria conta em `idealpages.aggios.app` - Cliente acessa `idealpages.aggios.app` com login próprio - Cliente vê **SEU logo** (IdeaPages) - Cliente vê **SEU white label** - Cliente só vê os dados DELE (isolamento por tenant) ### 3. Estrutura de Clientes ``` IdeaPages (você - agência) ├── Cliente 1 (Empresa ABC) │ ├── Vê: Logo IdeaPages │ ├── Acessa: idealpages.aggios.app │ └── Usa: CRM, ERP, Projetos (dados isolados) │ ├── Cliente 2 (Tech Solutions) │ ├── Vê: Logo IdeaPages │ ├── Acessa: idealpages.aggios.app │ └── Usa: CRM, ERP, Projetos (dados isolados) │ └── Cliente 3 (Marketing Pro) ├── Vê: Logo IdeaPages ├── Acessa: idealpages.aggios.app └── Usa: CRM, ERP, Projetos (dados isolados) ``` ## Benefícios para a Agência ✅ **White Label Completo**: Cliente vê sua marca, não "Aggios" ✅ **Controle Total**: Você gerencia todos os seus clientes ✅ **Isolamento de Dados**: Cada cliente só vê os próprios dados ✅ **Escalável**: Adicione quantos clientes quiser na mesma agência ✅ **Identidade Visual**: Logo e cores personalizadas por agência ## Fluxo de Trabalho 1. **Agência se cadastra** → Cria subdomínio (ex: idealpages.aggios.app) 2. **Agência personaliza** → Upload de logo, cores, identidade visual 3. **Agência adiciona clientes** → Cada cliente recebe credenciais 4. **Cliente acessa** → idealpages.aggios.app (vê marca da agência) 5. **Cliente usa módulos** → CRM, ERP, Projetos (dados isolados) ## Resposta Direta **Pergunta**: "Cliente precisa do CRM, mando aggios.app ou idealpages.aggios.app?" **Resposta**: **`idealpages.aggios.app`** ✅ O cliente SEMPRE acessa o painel da sua agência, onde verá sua marca e terá acesso aos módulos que você liberar. --- ## Sistema de Links de Cadastro Personalizados ### Visão Geral Sistema que permite ao SuperAdmin criar links de cadastro customizados, escolhendo: - **Campos do formulário**: Quais informações coletar - **Módulos habilitados**: Quais funcionalidades o cliente terá acesso - **Branding**: Logo e cores personalizadas ### Fluxo de Uso 1. **SuperAdmin** acessa `dash.aggios.app/superadmin/signup-templates` 2. **Cria template** selecionando: - Campos: email, senha, subdomínio, CNPJ, telefone, etc. - Módulos: CRM, ERP, PROJECTS, FINANCIAL, etc. - Slug: URL amigável (ex: `crm-rapido`) 3. **Compartilha link**: `aggios.app/cadastro/crm-rapido` 4. **Cliente acessa** e vê formulário personalizado 5. **Após cadastro**, tenant criado com módulos específicos ### Exemplo Real: DH Projects ``` Template: "CRM Rápido" Slug: crm-rapido Campos: email, senha, subdomínio, nome da empresa Módulos: CRM Link gerado: aggios.app/cadastro/crm-rapido Cliente preenche: - Email: contato@dhprojects.com - Senha: ******** - Subdomínio: dhprojects - Empresa: DH Projects Resultado: ✅ Tenant criado: dhprojects.aggios.app ✅ Módulo CRM habilitado ✅ Outros módulos desabilitados ``` ### Estrutura Técnica **Backend:** - Tabela: `signup_templates` - Repository: `SignupTemplateRepository` - Handlers: `/api/admin/signup-templates` (CRUD) - Handler público: `/api/signup-templates/slug/{slug}` (renderiza form) **Frontend:** - Gerenciamento: `dash.aggios.app/superadmin/signup-templates` - Cadastro público: `aggios.app/cadastro/{slug}` **Campos Disponíveis:** - email, password, subdomain (obrigatórios) - company_name, cnpj, phone, address, city, state, zipcode (opcionais) **Módulos Disponíveis:** - CRM, ERP, PROJECTS, FINANCIAL, INVENTORY, HR ### Benefícios ✅ Cadastro rápido para clientes específicos ✅ Coleta apenas informações necessárias ✅ Habilita somente módulos contratados ✅ Reduz fricção no onboarding ✅ Personalização por caso de uso