Files
aggios.app/1. docs/old/projeto.md
2025-12-08 21:47:38 -03:00

1046 lines
24 KiB
Markdown

# 🚀 AGGIOS - PLATAFORMA SAAS MULTITENANT
**Documento Completo de EspecificaçÔes e Arquitetura**
**VersĂŁo**: 1.0
**Data**: 04/12/2025
**Status**: Pronto para Desenvolvimento (Code Agent)
---
## 📋 Índice
1. [VisĂŁo Geral](#visĂŁo-geral)
2. [Estrutura de DomĂ­nios](#estrutura-de-domĂ­nios)
3. [UsuĂĄrios e Roles](#usuĂĄrios-e-roles)
4. [MĂłdulos Principais](#mĂłdulos-principais)
5. [Modelo de NegĂłcio](#modelo-de-negĂłcio)
6. [Stack Técnico](#stack-técnico)
7. [Arquitetura](#arquitetura)
8. [Fluxo de Cadastro (5 Steps)](#fluxo-de-cadastro-5-steps)
9. [CRM - MVP](#crm---mvp)
10. [Desenvolvimento Local](#desenvolvimento-local)
11. [Deploy Produção](#deploy-produção)
12. [Roadmap](#roadmap)
13. [Segurança](#segurança)
14. [Escalabilidade](#escalabilidade)
---
## 🎯 Visão Geral
**Aggios** Ă© uma plataforma SaaS multitenant que unifica ferramentas de gestĂŁo para agĂȘncias digitais.
**Problema Resolvido**: AgĂȘncias precisam gerenciar clientes, projetos, contratos, pagamentos e documentos em uma Ășnica plataforma integrada.
**Solução**: Dashboard personalizado por agĂȘncia onde:
- Admin da agĂȘncia gerencia equipe, CRM, projetos
- Clientes acessam portal para acompanhar seus projetos
- Tudo integrado: CRM, ERP, Helpdesk, Pagamentos, Contratos
**PĂșblico-alvo**: AgĂȘncias digitais de 1-50 pessoas
**Modelo**: SaaS subscription com planos diferentes
---
## 🌐 Estrutura de Domínios
### DomĂ­nios Principais
**aggios.app** - Site Institucional
- Marketing da plataforma
- Pricing (mostra planos)
- Blog/Recursos
- Landing pages
- SEO e pĂșblico geral
**dash.aggios.app** - Admin Interno Aggios
- Super admin da plataforma
- Ver todas as agĂȘncias cadastradas
- Gerenciar assinaturas e faturamento
- Impersonate (logar como admin de outra agĂȘncia)
- Analytics da plataforma
- Suporte (abrir tickets para clientes)
**{agencia}.aggios.app** - Painel da AgĂȘncia (Multitenant)
- Exemplo: `idealpages.aggios.app`
- Admin e equipe da agĂȘncia acessam aqui
- Personalizado com logo, cores, dados da agĂȘncia
- Todos os mĂłdulos: CRM, ERP, Projetos, etc
- Subpath do portal cliente: `{agencia}.aggios.app/portal/{cliente}`
### Portal Cliente
**URL**: `{agencia}.aggios.app/portal/{cliente-id}?token=xyz`
- Cliente acessa seus projetos especĂ­ficos
- Read-only + comentĂĄrios
- Acompanha progresso
- Download de arquivos
- Sem acesso a dados de outras agĂȘncias
---
## đŸ‘„ UsuĂĄrios e Roles
### Tipos de UsuĂĄrios
**Admin Aggios** (Plataforma)
- Acessa: `dash.aggios.app`
- PermissĂ”es: ver todas agĂȘncias, faturamento, assinaturas, analytics, impersonate
- Uso: time Aggios (suporte, vendas, admin)
**Admin da AgĂȘncia**
- Acessa: `{agencia}.aggios.app`
- PermissĂ”es: gerenciar equipe, configurar agĂȘncia, todos os mĂłdulos, relatĂłrios
- Uso: dono/gerente geral da agĂȘncia
**Gerente/Operacional**
- Acessa: `{agencia}.aggios.app`
- PermissÔes: CRM, projetos, helpdesk, mas sem financeiro/admin
- Uso: coordenador de projetos, gerente de equipe
**Membro da Equipe**
- Acessa: `{agencia}.aggios.app`
- PermissÔes: módulos específicos conforme papel (desenvolvedores, designers, etc)
- Uso: equipe interna
**Cliente (Portal)**
- Acessa: `{agencia}.aggios.app/portal/{cliente}`
- PermissÔes: ver próprios projetos, comentar, download de arquivos
- Uso: clientes da agĂȘncia
---
## 📩 Módulos Principais
### MVP (VersĂŁo Inicial)
**CRM** (Customer Relationship Management)
- Gerenciar clientes (lista, adicionar, editar, deletar)
- Status: prospect, client, inactive
- Dashboard com estatĂ­sticas
- Filtros e busca
- Histórico de interaçÔes (futuro)
**Projetos**
- Criar projeto (nome, cliente, data de entrega)
- Kanban (To Do, In Progress, Done)
- Timeline com marcos
- Atribuir ao membro da equipe
- Anexar arquivos
**Pagamentos**
- Integração com Stripe
- Cobranças automåticas
- Faturas geradas
- HistĂłrico de pagamentos
**Portal Cliente**
- Compartilhar projeto via link
- Cliente faz login/cria conta
- Visualiza progresso
- Faz comentĂĄrios
### MĂłdulos Futuros (v1.0+)
**ERP**
- Recursos (materiais, ferramentas)
- Financeiro avançado (custos, lucro)
- RelatĂłrios financeiros
- Exportação de dados
**Helpdesk**
- Tickets de suporte
- SLA (tempo de resposta)
- Base de conhecimento
- Automação
**Contratos**
- Templates de contratos
- E-signature (assinatura digital)
- Versionamento
- HistĂłrico de assinaturas
**IntegraçÔes**
- Zapier
- Slack
- Google Workspace
- GitHub
- Jira
---
## 💰 Modelo de Negócio
### Planos de Assinatura
**STARTER** - R$99/mĂȘs
- CRM + Contratos + Pagamentos
- 3 usuĂĄrios
- 10 projetos simultĂąneos
- 5GB de armazenamento
- Suporte por email
**PROFESSIONAL** - R$299/mĂȘs
- Starter + ERP + Helpdesk + Projetos
- 10 usuĂĄrios
- Projetos ilimitados
- 100GB de armazenamento
- Suporte prioritĂĄrio
- API bĂĄsica
**ENTERPRISE** - R$999+/mĂȘs
- Professional + IntegraçÔes customizadas
- UsuĂĄrios ilimitados
- Armazenamento ilimitado
- Suporte 24/7
- API completa
- Webhooks
- SSO (Single Sign-On)
### À La Carte (Futuro)
- CRM: R$49/mĂȘs
- ERP: R$79/mĂȘs
- Helpdesk: R$59/mĂȘs
- Contratos: R$29/mĂȘs
- Projetos: R$39/mĂȘs
### Modelo de Receita
- Subscription mensal (principal)
- Taxa de setup: R$99 (primeira agĂȘncia)
- IntegraçÔes customizadas: R$1000+
- Suporte dedicado: R$500/mĂȘs
---
## đŸ› ïž Stack TĂ©cnico
### Frontend
**Next.js** (React)
- App router (nĂŁo pages router)
- Server components quando possĂ­vel
- TypeScript
- Tailwind CSS para estilos
- ShadcN UI ou Radix UI para componentes
**Interfaces Principais**:
- Landing page (aggios.app)
- Admin internal (dash.aggios.app)
- Painel da agĂȘncia ({agencia}.aggios.app)
- Portal do cliente
### Backend
**NestJS** (Node.js)
- Arquitetura modular
- TypeScript nativo
- Guards, Pipes, Interceptors
- Validation com class-validator
- Documentation com Swagger
**Principais MĂłdulos**:
- Authentication (JWT, refresh tokens)
- Tenants (multi-tenancy)
- CRM
- Projetos
- Pagamentos (Stripe integration)
### Banco de Dados
**PostgreSQL**
- Schema por tenant (isolamento de dados)
- Row-Level Security (RLS) para segurança
- Migrations com Typeorm ou Knex
- Backup automĂĄtico diĂĄrio
### Cache
**Redis**
- Sessions de usuĂĄrio
- Cache de dados frequentes
- Rate limiting
- Fila de jobs
### Storage
**Minio** (S3-compatible)
- Upload de logos
- Arquivos de projetos
- Documentos/contratos
- Backup de dados
### Roteamento
**Traefik**
- Load balancer
- Roteamento por hostname
- HTTPS/SSL automĂĄtico
### CI/CD
**GitHub Actions**
- Testes automĂĄticos
- Build da aplicação
- Deploy automĂĄtico em merge para main
---
## đŸ—ïž Arquitetura
### VisĂŁo Geral
```
┌─────────────────────────────────────────────┐
│ Frontend (Next.js) │
│ ├─ Landing: aggios.app │
│ ├─ Admin: dash.aggios.app │
│ ├─ App: {agencia}.aggios.app │
│ └─ Portal: {agencia}.aggios.app/portal │
└────────────────┬────────────────────────────┘
│ HTTPS
┌────────────────▌────────────────────────────┐
│ Traefik │
│ (Roteamento por hostname) │
└────────────────┬────────────────────────────┘
│
┌────────────────▌────────────────────────────┐
│ Backend (NestJS API) │
│ ├─ Auth Module │
│ ├─ Tenants Module │
│ ├─ CRM Module │
│ ├─ Projetos Module │
│ └─ Pagamentos Module │
└────────────────┬────────────────────────────┘
│
â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”Œâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”Źâ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
│ │ │ │
▌ ▌ ▌ ▌
┌─────────┐ ┌────────┐ ┌─────────┐ ┌──────┐
│PostgreSQL│ │ Redis │ │ Minio │ │Stripe│
│ │ │ │ │ (S3) │ │ │
└──────────┘ └────────┘ └─────────┘ └──────┘
```
### Isolamento de Dados
**Row-Level Security (RLS)** no PostgreSQL:
- Cada tenant tem suas prĂłprias linhas
- PolĂ­tica: usuĂĄrio sĂł vĂȘ dados do seu tenant
- ImpossĂ­vel vazar dados entre clientes
**Schema Compartilhado**:
- Uma tabela "tenants" com todas as agĂȘncias
- Foreign key tenant_id em todas as tabelas
- Sem criar schemas separados (simples)
---
## 📝 Fluxo de Cadastro (5 Steps)
### Resumo dos Steps
**Step 1**: Dados Pessoais (5 campos)
- Nome, email, telefone, whatsapp, senha
- Tempo: 2-3 minutos
**Step 2**: Empresa BĂĄsico (6 campos)
- Nome, CNPJ, descrição, website, indĂșstria, tamanho equipe
- Tempo: 3-4 minutos
**Step 3**: Localização e Contato (10 campos)
- CEP (com busca ViaCEP), estado, cidade, bairro, rua, nĂșmero, complemento
- Email comercial, telefone, whatsapp
- Tempo: 3-4 minutos
**Step 4**: Escolher DomĂ­nio (1 campo)
- Slug com sugestão automåtica e validação em tempo real
- Tempo: 1-2 minutos
**Step 5**: Personalização (3 campos)
- Logo (upload), cor primĂĄria, cor secundĂĄria
- Checkboxes: permitir upload cliente, portal automĂĄtico
- Tempo: 2-3 minutos
### Fluxo Técnico
```
User acessa: dash.aggios.app/cadastro
↓
Step 1: Preenche dados pessoais → POST /auth/signup/step-1
↓
Backend valida + INSERT signup_temp (temporĂĄrio, 24h)
↓
User redireciona para Step 2
↓
Step 2: Preenche dados empresa → POST /auth/signup/step-2
↓
Backend valida + UPDATE signup_temp
↓
Continua para Step 3, 4, 5...
↓
Step 5: Upload logo + cores → POST /auth/signup/step-5
↓
Backend executa TRANSAÇÃO:
├─ CREATE tenant (agĂȘncia)
├─ CREATE user (admin)
├─ DELETE signup_temp
├─ Gera JWT
└─ Retorna token + redirectUrl
↓
Frontend redireciona para: {slug}.aggios.app/welcome
```
### Dados Coletados
**Pessoal** (Step 1):
- Nome completo
- Email (login)
- Telefone
- WhatsApp
- Senha (hashed)
**Empresa** (Step 2):
- Nome agĂȘncia
- CNPJ (14 dĂ­gitos)
- Descrição
- Website
- IndĂșstria
- Tamanho equipe
**Localização** (Step 3):
- CEP (integração ViaCEP)
- Estado/UF
- Cidade
- Bairro
- Rua/Avenida
- NĂșmero
- Complemento
**Contato** (Step 3):
- Email comercial
- Telefone empresa
- WhatsApp empresa
**DomĂ­nio** (Step 4):
- Slug ({agencia}.aggios.app)
**Personalização** (Step 5):
- Logo URL (Minio)
- Cor primĂĄria (hex) - PadrĂŁo: #FF3A05
- Cor secundĂĄria (hex) - PadrĂŁo: #FF0080
- Gradiente de branding: `linear-gradient(90deg, #FF3A05, #FF0080)`
- Permitir upload cliente (sim/nĂŁo)
- Portal automĂĄtico (sim/nĂŁo)
### ValidaçÔes Importantes
**CNPJ**:
- 14 dĂ­gitos vĂĄlidos
- DĂ­gitos verificadores corretos
- NĂŁo duplicado no banco
**CEP**:
- 8 dĂ­gitos vĂĄlidos
- Busca em ViaCEP
- Se nĂŁo encontrado: preenchimento manual
**Slug**:
- 3-50 caracteres
- Apenas a-z, 0-9, hĂ­fen
- NĂŁo Ă© palavra reservada
- NĂŁo duplicado
**Senha**:
- 8+ caracteres
- 1 maiĂșscula, 1 nĂșmero, 1 especial
---
## đŸ’» CRM - MVP
### Funcionalidades IncluĂ­das (MVP)
**Lista de Clientes**
- Paginação (20 por pågina)
- Busca por nome/email
- Filtro por status (prospect, client, inactive)
- Ordenação (nome, data criação, status)
**Adicionar Cliente**
- Form simples: nome, email, telefone, empresa
- Validação de email
- Cliente criado com status "prospect"
**Editar Cliente**
- Atualizar dados
- Mudar status
- Salvar histórico de mudanças
**Deletar Cliente**
- Soft delete (marca como inactive)
- Ou hard delete (remove do banco)
**Dashboard Stats**
- Total de clientes
- Clientes por status (prospect, client, inactive)
- GrĂĄficos simples
### Funcionalidades Futuras (Deixar para depois)
- Pipeline de vendas (funil)
- Histórico de interaçÔes
- Tags/categorias
- Atividades (calls, emails)
- Emails integrados
- Relatórios avançados
- Import/export CSV
- Automação
### Dados Armazenados
**Clientes**:
- ID (UUID)
- Tenant ID (qual agĂȘncia)
- Nome (obrigatĂłrio)
- Email (obrigatĂłrio)
- Telefone
- Empresa
- Status (prospect/client/inactive)
- Data criação
- Data Ășltima atualização
- Criado por (user ID)
**HistĂłrico** (futuro):
- ID
- Cliente ID
- O que mudou
- Valor anterior
- Valor novo
- Quem mudou
- Data
### URLs
- `{agencia}.aggios.app/crm/customers` - Lista
- `{agencia}.aggios.app/crm/customers/new` - Novo
- `{agencia}.aggios.app/crm/customers/[id]` - Detalhe/editar
- `{agencia}.aggios.app/crm/dashboard` - Dashboard stats
### Telas "Em Breve"
Todos os outros módulos mostram tela "Este módulo serå lançado em breve":
- ERP
- Helpdesk
- Contratos
- Pagamentos
- Projetos
---
## đŸ—ïž Desenvolvimento Local
### Ambiente Local
**Ferramentas NecessĂĄrias**:
- Docker + Docker Compose
- Node.js 18+
- Git
### Serviços Locais (Docker)
```
PostgreSQL
├─ Host: localhost:5432
├─ User: aggios
├─ Password: password
└─ Database: aggios_dev
Redis
├─ Host: localhost:6379
└─ Port: 6379
Minio (S3-compatible)
├─ Host: localhost:9000
├─ User: minioadmin
├─ Password: minioadmin
└─ Bucket: aggios
Traefik
├─ Host: localhost (com config /etc/hosts para *.localhost)
├─ Dashboard: localhost:8080
└─ Router automático por hostname
```
### Hosts Locais
Configure em `/etc/hosts`:
```
127.0.0.1 aggios.localhost
127.0.0.1 dash.aggios.localhost
127.0.0.1 idealpages.aggios.localhost
127.0.0.1 test.aggios.localhost
```
### Iniciar Ambiente
```
1. Clone repositĂłrio
2. Configure .env (cĂłpiar de .env.example)
3. docker-compose up -d
4. npm install
5. npm run db:migrate
6. npm run dev
```
### URLs de Acesso
- Landing: http://aggios.localhost
- Admin: http://dash.aggios.localhost
- AgĂȘncia teste: http://idealpages.aggios.localhost
- Minio: http://localhost:9000
- Traefik: http://localhost:8080
---
## 🚀 Deploy Produção
### Infraestrutura
**VPS Recomendado**:
- 2GB RAM
- 20GB SSD
- Ubuntu 24 LTS
- IP pĂșblico estĂĄtico
**Provedor**: Linode, DigitalOcean, Vultr, AWS EC2
### Setup Produção (Dokploy)
**Passo 1**: Comprar VPS + domĂ­nio
**Passo 2**: Instalar Dokploy
- SSH no VPS
- Executar script instalação
- Interface web no `http://ip-vps:3000`
**Passo 3**: Configurar DNS
- Apontar domĂ­nio para IP do VPS
- SubdomĂ­nios: dash.aggios.app, *.aggios.app (wildcard)
**Passo 4**: Cadastrar 6 Serviços em Dokploy
1. **Landing** (Next.js - aggios.app)
- Port: 3000
- Build: `npm run build`
- Start: `npm start`
2. **Admin** (Next.js - dash.aggios.app)
- Port: 3001
- Build: `npm run build`
- Start: `npm start`
3. **API** (NestJS - *.aggios.app wildcard)
- Port: 3333
- Build: `npm run build`
- Start: `npm run start:prod`
4. **PostgreSQL**
- Port: 5432
- Backup automĂĄtico (daily)
5. **Redis**
- Port: 6379
6. **Minio**
- Port: 9000
**Passo 5**: GitHub Integration
- Conectar repositĂłrio GitHub
- Push em main → Deploy automático
- Webhook automĂĄtico
### O que Dokploy Cuida
- Traefik integrado (nĂŁo configurar manual)
- SSL automĂĄtico (Let's Encrypt)
- HTTPS forçado
- Backup automĂĄtico de banco
- Monitoramento bĂĄsico
- CI/CD nativo
- Logs centralizados
### Diferenças Local vs Produção
| Aspecto | Local | Produção |
|---------|-------|----------|
| Traefik | Manual config | Dokploy nativo |
| HTTPS | HTTP (.localhost) | HTTPS automĂĄtico |
| DomĂ­nios | *.localhost | DomĂ­nios reais |
| SSL | NĂŁo | Let's Encrypt |
| Backup | Manual | AutomĂĄtico |
| CI/CD | Manual | GitHub webhook |
| Monitoramento | NĂŁo | BĂĄsico |
| Logs | Docker | Dokploy |
---
## 📅 Roadmap
### MVP (MĂȘs 1-2)
**Prioridades**:
- Setup infraestrutura (Docker, Traefik, Dokploy)
- Autenticação (JWT, refresh tokens)
- Cadastro 5 steps
- Tenant middleware + RLS
- CRM bĂĄsico (CRUD)
- Painel inicial
- Upload de logo (Minio)
- Stripe integration bĂĄsica
- Deploy no Dokploy
**Resultado**: AgĂȘncia consegue se cadastrar e gerenciar clientes
### v1.0 (MĂȘs 2-3)
**AdiçÔes**:
- MĂłdulo Projetos (Kanban, timeline)
- Portal cliente (compartilhar projeto)
- Contratos com e-signature
- Helpdesk bĂĄsico
- RelatĂłrios simples
- Email notifications
- Onboarding/tour
**Resultado**: Plataforma funcional com todos mĂłdulos principais
### v1.1 (MĂȘs 3-4)
**AdiçÔes**:
- ERP bĂĄsico (recursos, financeiro)
- IntegraçÔes (Zapier, Slack)
- API documentada
- Webhooks
- Backup automĂĄtico na nuvem
- Autenticação 2FA
**Resultado**: Mais poderoso, integraçÔes com outros serviços
### v2.0 (Futuro)
**Inovação**:
- IA para sugestÔes (recomendaçÔes de tarefas)
- Mobile app (iOS/Android)
- Marketplace de integraçÔes
- Multi-regiĂŁo
- Chatbot suporte automĂĄtico
---
## 🔒 Segurança
### Autenticação
- JWT (JSON Web Tokens)
- Refresh tokens (7 dias)
- Access tokens (15 minutos)
- Refresh token rotation (novo token a cada uso)
- Logout (blacklist token)
### Autorização
- Row-Level Security (PostgreSQL RLS)
- Cada user sĂł vĂȘ dados do seu tenant
- Middleware valida tenant_id em cada requisição
- Guards em endpoints crĂ­ticos
### Dados
- Criptografia de senhas (bcrypt)
- HTTPS/SSL em produção (Let's Encrypt)
- SGBD com autenticação
- Redis com password
- Minio com credenciais
### Conformidade
- LGPD compliance (lei brasileira de dados)
- Termos de uso + Privacy policy
- Consentimento antes de cadastro
- Direito de dados (export/delete)
- Audit logs (quem fez o quĂȘ, quando)
### Backup
- Backup diĂĄrio do PostgreSQL
- Retenção: 30 dias
- Armazenamento: Minio ou nuvem
- Restore automĂĄtico testado semanalmente
---
## 📊 Escalabilidade
### Fase 1: AtĂ© 100 AgĂȘncias
**Infraestrutura**:
- 1 VPS (2GB RAM)
- PostgreSQL com plano starter
- Redis com cache bĂĄsico
- Minio com 50GB
**Capacidade**:
- ~10k usuĂĄrios
- ~100k clientes
- Resposta <500ms
---
### Fase 2: 100-500 AgĂȘncias
**Infraestrutura**:
- 1 VPS principal (4GB RAM)
- 1 VPS para banco (2GB RAM)
- PostgreSQL Read Replicas
- Redis Cluster
- Minio distribuĂ­do
**Mudanças**:
- Load balancer entre servidores API
- Connection pooling no banco
- Cache distribuĂ­do
---
### Fase 3: 500-2k AgĂȘncias
**Infraestrutura**:
- MĂșltiplas instĂąncias API
- RDS (AWS managed database)
- ElastiCache (Redis managed)
- S3 (AWS S3 real)
- CloudFront (CDN)
- ALB (Application Load Balancer)
**Mudanças**:
- Sharding de banco (por tenant)
- Cache camadas mĂșltiplas
- Workers para jobs longos
---
### Fase 4: 5k+ AgĂȘncias
**Infraestrutura**:
- Kubernetes (EKS)
- Autoscaling horizontal
- Multi-region replication
- Microsserviços
- Event-driven architecture
---
## 📊 Database Schema (Estrutura)
### Tabelas Principais
**tenants**
- AgĂȘncias cadastradas
- Campos: id, slug, name, cnpj, description, website, email, phone, whatsapp, logo_url, primary_color, secondary_color, industry, team_size, allow_client_uploads, enable_customer_portal, plan, status, created_at, updated_at
**users**
- UsuĂĄrios (admins, gerentes, equipe)
- Campos: id, tenant_id, first_name, last_name, email, password_hash, phone, whatsapp, role, status, last_login_at, created_at, updated_at
**signup_temp**
- Dados temporĂĄrios do cadastro (24h expiration)
- Campos: id, temp_user_id, [todos os dados coletados nos 5 steps], status, created_at, expires_at
**customers** (CRM)
- Clientes das agĂȘncias
- Campos: id, tenant_id, name, email, phone, company, status, created_at, updated_at
**projects** (futuro)
- Projetos por agĂȘncia
- Campos: id, tenant_id, name, client_id, status, start_date, due_date, created_at, updated_at
**tasks** (futuro)
- Tarefas dentro de projetos
- Campos: id, project_id, title, description, status, assigned_to, due_date, created_at, updated_at
**subscriptions**
- Assinaturas (plano + pagamento)
- Campos: id, tenant_id, plan, status, stripe_subscription_id, current_period_start, current_period_end, created_at
**audit_logs**
- Log de açÔes (segurança)
- Campos: id, tenant_id, user_id, action, resource, changes, created_at
---
## 📁 Estrutura de Pasta (Monorepo)
```
aggios/
├── apps/
│ ├── api-core/ (NestJS backend)
│ │ ├── src/
│ │ │ ├── modules/
│ │ │ │ ├── auth/
│ │ │ │ ├── tenants/
│ │ │ │ ├── crm/
│ │ │ │ ├── projects/
│ │ │ │ └── payments/
│ │ │ ├── common/
│ │ │ │ ├── guards/
│ │ │ │ ├── decorators/
│ │ │ │ ├── middleware/
│ │ │ │ └── filters/
│ │ │ ├── config/
│ │ │ └── main.ts
│ │ ├── migrations/
│ │ ├── Dockerfile
│ │ └── package.json
│ │
│ ├── landing/ (Next.js - aggios.app)
│ │ ├── app/
│ │ ├── components/
│ │ ├── public/
│ │ └── package.json
│ │
│ ├── dashboard/ (Next.js - dash.aggios.app)
│ │ ├── app/
│ │ │ ├── cadastro/
│ │ │ └── [admin pages]
│ │ ├── components/
│ │ └── package.json
│ │
│ └── tenant-app/ (Next.js - {agencia}.aggios.app)
│ ├── app/
│ │ ├── welcome/
│ │ ├── crm/
│ │ ├── dashboard/
│ │ └── [tenant pages]
│ ├── components/
│ └── package.json
│
├── packages/
│ ├── shared-types/
│ │ └── DTOs, interfaces, types
│ └── shared-ui/
│ └── Componentes reutilizáveis
│
├── docker-compose.yml
├── .env.example
└── README.md
```
---
## 🎯 Próximos Passos
**Semana 1**:
1. Estruturar monorepo (turborepo)
2. Setup Docker local
3. Setup PostgreSQL + migrations
4. Setup NestJS (modules auth, tenants)
**Semana 2**:
1. Setup Next.js (landing + dashboard + tenant-app)
2. Cadastro 5 steps (frontend + backend)
3. Autenticação JWT
**Semana 3**:
1. CRM bĂĄsico (CRUD)
2. Dashboard inicial
3. Integração Minio (logo)
**Semana 4**:
1. Integração Stripe
2. Stripe webhook
3. Deploy Dokploy teste
**Semana 5**:
1. Testes
2. Bugfixes
3. Deploy produção
---
## 📊 MĂ©tricas de Sucesso
### Para AgĂȘncia
- Tempo cadastro: < 10 minutos
- Taxa conclusĂŁo: > 60%
- Retenção 30 dias: > 70%
- NPS (satisfação): > 8/10
### Para UsuĂĄrio
- Login: < 2 segundos
- Carregar pĂĄgina: < 3 segundos
- Criar cliente: < 1 minuto
- Compartilhar projeto: < 2 minutos
### Para NegĂłcio
- Churn: < 5% mensal
- CAC (custo adquisição): < R$50
- LTV (lifetime value): > R$1000
- MRR (receita mensal): crescimento 10% mĂȘs
---
## 📞 Suporte e Manutenção
### Canais de Suporte
- Email: support@aggios.app
- Chat no painel
- Ticket system (Helpdesk)
- Community (Discord/Slack)
### SLA por Plano
- STARTER: 24-48h resposta
- PROFESSIONAL: 12h resposta
- ENTERPRISE: 2-4h resposta + 24/7
### Manutenção
- AtualizaçÔes: terça-feira 2h da manhã
- Downtime esperado: 15 minutos
- Backup: diĂĄrio Ă s 3h da manhĂŁ
- Monitoramento: 24/7
---
## 🎓 Documentação Futura
**Deve ser criada**:
- API Documentation (Swagger)
- User Guide (como usar cada mĂłdulo)
- Admin Guide (como gerenciar agĂȘncia)
- Developer Guide (como integrar)
- Changelog (versÔes)
- FAQ (perguntas comuns)
---
**VersĂŁo**: 1.0
**Data Criação**: 04/12/2025
**Status**: Pronto para Code Agent
**Uso**: Compartilhar com code agent (Claude Code, ou outra IA) para gerar cĂłdigo
---
**Notas**:
- Este documento Ă© SEM CÓDIGO
- Ideal para planejamento, requisitos, arquitetura
- Code agent usarå isso como especificação técnica
- Todos os detalhes lĂłgicos estĂŁo aqui
- Falta apenas implementação (qual o trabalho do code agent)