eBuz v1.0 - Produção

Documento de especificação técnica completa da plataforma eBuz. Cobre requisitos funcionais e não-funcionais, arquitetura, modelo de dados, contratos de API, integracoes, deploy e testes.

160

Requisitos

0

Removidos

135

Tabelas

158

Rotas API

38

Testes

6

ADRs

Livro APE - Arquitetura de Produtos Educacionais

O livro que fundamenta toda a plataforma eBuz. 50 anos de pesquisa científica de 12 pesquisadores condensados em um framework prático de engenharia de transferencia de conhecimento.

Framework Universal

INPUTGATEKEEPERBLACK BOXOUTPUTFEEDBACK
PesquisadorContribuiçãoNo do Framework
Michael PolanyiConhecimento tácito - externalizar o que o expert sabe mas não consegue dizerINPUT
Malcolm KnowlesAndragogia - 6 pressupostos de como adultos aprendemINPUT
Wiggins & McTigheBackward Design - comecar pelo OUTPUT, não pelo conteúdoOUTPUT
Benjamin BloomTaxonomia cognitiva - 6 níveis hierarquicos de aprendizagemBLACK BOX
Robert Gagne9 eventos instrucionais - sequência confiavel para produzir aprendizagemBLACK BOX
K. Anders EricssonPrática deliberada - foco, feedback, adaptacao, desconfortoBLACK BOX
John SwellerCarga cognitiva - intrinseca, extrinseca, germinalBLACK BOX
William GlasserPiramide de retenção - modalidades de 10% a 95%BLACK BOX
Eugene Schwartz5 níveis de consciencia do compradorGATEKEEPER
Neil RackhamSPIN Selling - qualificação diagnosticaGATEKEEPER
Lincoln MurphyCustomer Success - Desired OutcomeFEEDBACK
Fred ReichheldNPS - métrica que prediz crescimento sustentávelFEEDBACK

12

Pesquisadores

50+

Anos de pesquisa

5

Nos do framework

14

Capitulos

Cursos Publicados

8 cursos publicados (+ 1 em rascunho) na plataforma com player estilo Spotify, progresso por aula, estrelas e comentários. 9 cursos, 70 módulos, 362 aulas no total. Áudio gerado via Google TTS Chirp3-HD (voz masculina premium).

CursoMódulosAulasÁudioLeituraExercíciosTotalStatus
Arquitetura de Produtos Educacionais126711h527h305h3525hPublicado
Vibecoding PRO8463h194h203h4011h19Publicado
Pré-Vibecoding7372h221h322h306h24Publicado
Pré-SEO/GEO732----Publicado
SEO/GEO Pro1042----Publicado
Funil Evergreen - Fundamentos635----Publicado
Funil Evergreen - Prática637----Publicado
Metodo Low Ticket1055----Publicado
Método M.Ã.O.S.421----Rascunho

Áudio medido via ffprobe (duração real dos MP3). Leitura estimada a 200 palavras/min sobre o conteúdo das aulas. Exercícios estimados em 5 min/aula.

9

Cursos

70

Módulos

362

Aulas

-

Carga Horária Total

Chirp3-HD

Engine de Áudio

Entrevista Estruturada com Jhow

Chat interativo com personalidade Jhow (IA) que extrai o conhecimento tacito do expert em 4 fases progressivas com guardrails automaticos de progressao. Suporte a audio (transcricao via Groq Whisper) e upload de arquivos de referencia. Salva expert_summary no perfil do usuario ao concluir.

1. Onboarding

Calibracao do expert (origem do lead, nivel de experiencia, se ja tem produto/tema/alunos)

2. Orientacao

Explica o Passaporte de Contexto e verifica prontidao para comecar

3. Entrevista Focada

Perguntas-chave para extrair: o que ensina, habilidades, publico-alvo, dor aguda e visao de esteira

4. Conclusao + Handoff

Consolida resumo estruturado, gera expert_summary e documento final com seeding para proximos fluxos

Dados Extraidos (extracted_data + expert_summary)

  • Origem do lead: como o expert chegou a plataforma (webinario, indicacao, contato direto)
  • Calibracao: nivel do expert (iniciante, intermediario, avancado)
  • O que ensina: conhecimento e habilidades transferidos
  • Habilidades: capacidades praticas desenvolvidas
  • Publico-alvo + Dor aguda: para quem resolve problema real
  • Visao de esteira: potencial de produtos derivados (10 ativos)
  • Expert Summary: salvo em profiles.expert_summary (nicho, experiencia, publico, transformacao, frase de impacto)

Guardrails de Progressao

  • Onboarding: max 8 mensagens, avanca ao extrair origemLead + calibracao
  • Orientacao: max 6 mensagens, avanca quando prontoParaComecar = true
  • Entrevista: avanca com 4 campos extraidos + min 12 mensagens (5 do usuario)
  • Conclusao forcada: 30+ mensagens ou pedido explicito do usuario
  • Progressao linear: nunca regride de fase (mapeia fases legadas automaticamente)

Stack Tecnica

interview-engine.ts (4 fases)jhow-prompt.ts (prompts por fase)ai-router.ts (fallback multi-LLM)7 endpoints /api/interview/*interview_sessions (RLS)profiles.expert_summary

Gerador de Passaporte

Ferramenta de IA que gera um Passaporte de Contexto completo a partir do conhecimento do expert. Aceita texto, PDF ou entrevista com Jhow (IA). Gera passaporte + 6 segmentos de mercado + personas sob demanda.

1

Input: Texto, PDF ou Entrevista Jhow

Expert fornece material (cole texto, upload PDF ou converse com Jhow IA)

2

Passaporte: Geracao com IA

IA analisa e gera Passaporte de Contexto completo (consultor, segmento, persona, dores, conquistas, objecoes)

3

Expansao: Segmentos + Personas

6 segmentos de mercado automaticos. Personas individuais sob demanda por segmento.

3

Etapas

~30s

Geracao

6

Segmentos

Sob demanda

Personas

Stack Tecnica

passaporte/prompts.tspassaporte/markdown-generator.tsai-router.ts5 endpoints /api/passo1/*passaporte_projects (RLS)

Planos

Acesso Completo

R$ 19,90/ 7 dias

Acesso a plataforma + moedas inclusas

Pacotes de Creditos

Variavel

Configuraveis pelo admin (credit_packs)

Produtos Avulsos

Variavel

Livros, cursos, eventos (via sales_channels)

Esteira de Produtos - Precificacao

ProdutoTipoPreçoModeloPúblico
Acesso CompletoSaaS (plataforma)R$ 19,907 dias de acessoTodos
Pre-VibecodingCurso onlineR$ 47,00Acesso vitalicioIniciantes
Vibecoding PROCurso onlineR$ 197,00Acesso vitalicioIntermediarios
Pre-SEO/GEOCurso onlineVia sales_channelAcesso vitalicioIniciantes SEO
SEO/GEO ProCurso onlineVia sales_channelAcesso vitalicioAvancados SEO
Funil Evergreen (2 cursos)Bundle (Fund. + Pratica)R$ 49,90Acesso vitalicioProfissionais de marketing
Metodo Low TicketCurso onlineVia sales_channelAcesso vitalicioEmpreendedores
Livro APELivro fisico + digitalR$ 97,90Compra unicaExperts e educadores
Maquina de LivrosServico editorial (4 pacotes)R$ 750 a R$ 2.000Projeto unicoAutores
APE (curso premium)Curso premium (67 aulas)R$ 2.000,00Acesso vitalicioExperts avancados

Funil de Conversão

Captura (gratis)
Acesso (R$19,90)
Cursos (R$47-197)
Livro (R$97,90)
Maquina Livros (R$750-2k)
APE Premium (R$2.000)

Arquitetura Comercial

products

Registro unificado de produtos

sales_channels

Slug-based routing + precos

10 produtos

Esteira completa

Funil Evergreen - Sistema de Vendas Automatizado

Funil de 4 etapas que transforma trafego frio em alunos do curso APE. Operacao evergreen com webinario gravado de 45 minutos. Inclui 32 templates de email (5 sequencias), rastreamento Meta CAPI server-side e automacao WhatsApp pos-compra.

Páginas do Funil

PáginaRotaFunçãoStatus
Captura/capturaLanding page com formulário (nome + email). Entrada do funil via Meta Ads.Publicada
Webinário/webinarioPlayer do vídeo de 45 min + countdown + CTA para ofertaPublicada
Oferta/ofertaPágina de vendas do Curso APE. R$ 2.000 (12x R$ 197). 67 aulas, 12 módulos, garantia 7 dias.Publicada
Obrigado/obrigadoConfirmação pós-compra/registro. Próximos passos + acesso à área de membros.Publicada

Webinário APE - Roteiro Completo

Duração: 45-50 minutos

Frameworks: Duarte Resonate + StoryBrand + Phil M. Jones (P1-P5) + Nested Loops

Loops narrativos: 3 loops integrados

Slides: 30 slides Canva (1920x1080, dark theme)

Demo ao vivo: Framework dos 5 nós

Oferta: Stack completo do curso

Fluxo do Funil

Meta Ads + CAPI
Captura
Email (32 templates)
Webinario
Oferta
Checkout
Obrigado
WhatsApp Auto
Area de Membros

Requisitos do Funil

RF-131Pagina de captura com formulario de leads (/captura)
RF-132Pagina do webinario com player e countdown (/webinario)
RF-133Pagina de vendas com pricing e FAQ (/oferta)
RF-134Pagina de obrigado com proximos passos (/obrigado)
RF-13532 templates de email em 5 sequencias automaticas
RF-136Meta CAPI tracking server-side
RF-137Automacao WhatsApp pos-compra

Checkout Transparente

Checkout transparente via Assas (PIX, boleto, cartao com parcelas). Arquitetura baseada em sales_channels (slug-based routing) e products (registro unificado). Auto-create buyer para guest checkout. Multiplos endpoints especializados (transparent, credit-pack, book, fundamentos).

Métodos de Pagamento

MétodoFluxoConfirmação
Cartão de CréditoDados inline → tokeniza → cobraImediata
PIXQR Code + copia-e-cola → polling 5sTempo real (~30s)
BoletoCódigo de barras + PDFAté 3 dias úteis

Pontos de Integração

PáginaProdutoValorParcelas
/ofertaCurso APER$ 2.00012x
/planosAcesso 7 diasR$ 19,901x
/livroLivro APER$ 97,903x
/creditosPacotes de creditosVariavel1x
/checkout/[slug]Via sales_channelDinamicoConfiguravel
/fundamentosModulo FundamentosR$ 49,901x

Arquitetura

API Transparente Assassales_channels (slug routing)products (registro unificado)Auto-create buyer (guest)Webhook Assas

Segurança

Rate limiting por usuário e IP
Validação de CPF
Sanitização de inputs
HTTPS obrigatório
Sem secrets no código cliente

Requisitos do Checkout

RF-138Checkout transparente com cartao inline (PIX, boleto, cartao com parcelas)
RF-139Arquitetura sales_channels com slug-based routing
RF-140Tabela products como registro unificado de produtos
RF-141Auto-create buyer para guest checkout (sem cadastro previo)
RF-142Multiplos endpoints: transparent, credit-pack, book, fundamentos
RF-143Rate limiting por usuario e IP + validacao de CPF

Visão do Produto

Proposta de Valor

Metodologia científica operacionalizada

12 pesquisadores transformados em fluxos step-by-step que qualquer expert consegue seguir.

IA como co-autora

Sugestões inteligentes que o expert aceita, edita ou refina. O humano sempre decide.

Multi-LLM resiliente

4 provedores com fallback automático. O aluno nunca ve erro técnico.

Documentos prontos

Cada fluxo gera um documento versionado e compartilhavel, pronto para uso.

Modelo de Negócio

ItemDetalhesProvedor
Produtos digitais (cursos, livros, eventos)Arquitetura sales_channels + products, checkout transparenteAssas
Acesso Completo (plano unico)R$ 19,90 / 7 dias com acesso a todos os recursosAssas
Pacotes de moedas (credit packs)Compra avulsa de moedas, precos carregados do bancoAssas
Trial 24h via SMS20.000 moedas, verificacao anti-fraude por telefoneTwilio
Cupons promocionaisCodigos resgataveis para creditos bonusInterno
WhatsApp multi-instanciaInbox, broadcasts, bots, AI agents, sequenciasEvolution API
Rastreamento Meta CAPIConversions API server-side para otimizacao de anunciosMeta

Planos

Acesso Completo

R$ 19,90/ 7 dias

Acesso a plataforma + moedas inclusas

Pacotes de Creditos

Variavel

Configuraveis pelo admin (credit_packs)

Produtos Avulsos

Variavel

Livros, cursos, eventos (via sales_channels)

Requisitos Funcionais

160/160 implementados | 0 removidos

Requisitos Não-Funcionais

Performance

6 itens
RNF-001API p95 < 500msExcluindo chamadas IA
RNF-002IA < 15s (Claude) / < 30s (Ollama)Timeout configuravel
RNF-003TTFB < 200msVercel Edge Network
RNF-004100+ usuários concorrentesServerless auto-scale
RNF-005Cache de provedores IA1 minuto TTL
RNF-006Cache de respostas IA1 hora TTL

Segurança

10 itens
RNF-007RLS em todas as tabelasPostgreSQL Row Level Security
RNF-008TLS em todas as conexõesHTTPS obrigatório
RNF-009Vault AES-256-GCMSecrets criptografados no Supabase
RNF-010Anti-fraude SHA-256Hash de telefone para trial
RNF-011Rate limit SMS3 códigos/telefone/hora
RNF-012Max 5 tentativas por códigoBloqueio apos exceder
RNF-013Service_role apenas server-sideNunca expor no client
RNF-014Verificação admin em todas as rotasis_admin ou role check
RNF-015LGPD complianceExport e exclusão de dados
RNF-016Audit log de ações adminRastreabilidade completa

Escalabilidade

4 itens
RNF-017Vercel serverless auto-scaleSem gerenciamento de servidores
RNF-018Supabase managed PostgreSQLBackups automáticos
RNF-019Multi-LLM 4 provedoresDistribuição de carga
RNF-020Redis Upstash distribuidoCache global, baixa latência

Disponibilidade

3 itens
RNF-021Uptime 99.5%SLA mínimo aceitavel
RNF-022Zero erro visível ao alunoFallback em todas as camadas
RNF-023Mensagem amigavel em fallbackNunca mostrar stack trace

SEO

6 itens
RNF-024SSR para blogServer Components
RNF-025Meta tags dinamicosOpen Graph por página
RNF-026Sitemap XML automáticoAtualizado no build
RNF-027Robots.txt configuradoCrawlers permitidos
RNF-028JSON-LD estruturadoSchema.org para artigos
RNF-029Open Graph completoImagem, título, descrição

Arquitetura

Stack Técnica

CamadaTecnologiaVersão
FrontendNext.js15.5
React19
TypeScript5.9
Tailwind CSS4
Backend / APINext.js API Routes15.5
Supabase (PostgreSQL)managed
IAClaude Sonnet 4primary
Groq Llama 3.1 8Bfallback
Gemini 2.0 Flashfallback
Ollama Llama 3.2 3Blocal
InfraestruturaVercelauto
Hetzner VPSCX22
Redis Upstashserverless
pnpm9.x
IntegraçõesAssasv3
TwilioSMS
Google TTSChirp3-HD
Tiptapv2
Evolution APIWhatsApp
Meta Conversions APIserver-side

Diagrama de Arquitetura

USUARIO -> VERCEL (Next.js 15.5) -> SUPABASE (PostgreSQL, Auth, Storage, RLS, Vault)
                                  -> AI ROUTER (Claude -> Groq -> Gemini -> Ollama -> Cache)
                                  -> SERVICOS (Assas, Twilio, Redis)
                                  -> HETZNER VPS (Ollama, Backups, Monitor)

Engine (src/engine/)

FLOW ENGINE
  engine.ts (orquestrador)
    |-- ai-router.ts (Multi-LLM fallback)
    |-- credit-manager.ts
    |-- quality-validator.ts
    |-- document-generator.ts
    |-- json-importer.ts
    |-- interview-engine.ts + jhow-prompt.ts
    |-- trial-manager.ts
    |-- sms-provider.ts
    +-- coupon-manager.ts

Fluxos de Usuário

Novo Usuario

1Registro (email/senha ou Google)
2Confirmacao de email
3Login
4Trial SMS ou Plano
5Dashboard

Gerar Passaporte

1Dashboard
2/app/passaporte
3Input (texto/PDF/entrevista)
4IA gera passaporte
5Passaporte pronto
66 Segmentos
7Personas on-demand

Comprar Curso

1Landing page do curso
2Checkout Assas
3Webhook confirma
4Acesso concedido
5Player Spotify-like

Admin

1Login admin
2/admin
3Usuarios / Cursos / WhatsApp / Analytics

WhatsApp

1Admin configura instancia
2Contatos sincronizam
3Auto-respostas / Broadcasts / Sequencias

Comprar Livro

1/livro
2Checkout com endereco
3Pagamento Assas
4book_orders criado
5Email de entrega

Modelo de Dados

Entidades Principais

profiles
idUUIDPK
full_nameTEXT
is_adminBOOLEAN
roleTEXT
phoneTEXT
phone_verifiedBOOLEAN
statusTEXT
admin_create_user_log
idUUIDPK
admin_idUUIDFK
target_emailTEXT
sourceTEXT
role_permissions
idUUIDPK
user_idUUIDFK
permissionTEXT
grantedBOOLEAN
memberships
idUUIDPK
org_idUUIDFK
user_idUUIDFK
roleTEXT
deleted_user_backups
idUUIDPK
original_user_idUUID
user_emailTEXT
documentsJSONB
restoredBOOLEAN
deletion_requests
idUUIDPK
user_idUUIDFK
statusTEXT
final_deletion_atTIMESTAMPTZ
reasonTEXT
flows
idUUIDPK
nameTEXT
slugTEXT
categoryTEXT
activeBOOLEAN
credits_costINT
module_idUUIDFK
flow_steps
idUUIDPK
flow_idUUIDFK
step_orderINT
titleTEXT
input_typeTEXT
prompt_templateTEXT
flow_executions
idUUIDPK
user_idUUIDFK
flow_idUUIDFK
statusTEXT
current_stepINT
step_responsesJSONB
flow_modules
idUUIDPK
nameTEXT
slugTEXT
sort_orderINT
org_idUUIDFK
flow_access
idUUIDPK
user_idUUIDFK
flow_idUUIDFK
granted_byTEXT
expires_atTIMESTAMPTZ
flow_categories
idUUIDPK
nameTEXT
slugTEXT
sort_orderINT
flow_category_links
idUUIDPK
flow_idUUIDFK
category_idUUIDFK
flow_step_versions
idUUIDPK
flow_step_idUUIDFK
versionINT
prompt_templateTEXT
is_activeBOOLEAN
flow_analytics
idUUIDPK
flow_idUUIDFK
dateTIMESTAMPTZ
startsINT
completionsINT
abandonmentsINT
user_documents
idUUIDPK
user_idUUIDFK
flow_idUUIDFK
titleTEXT
contentTEXT
typeTEXT
versionINT
interview_sessions
idUUIDPK
user_idUUIDFK
flow_idUUIDFK
statusTEXT
messagesJSONB
phaseTEXT
passaporte_projects
idUUIDPK
user_idUUIDFK
slugTEXT
expert_nameTEXT
statusTEXT
passaporte_dataJSONB
user_credits
user_idUUIDPK
balanceINT
total_purchasedINT
total_consumedINT
user_moedas
idUUIDPK
user_idUUIDFK
balanceINT
total_purchasedINT
total_consumedINT
credit_transactions
idUUIDPK
user_idUUIDFK
typeTEXT
amountINT
balance_afterINT
descriptionTEXT
moedas_transactions
idUUIDPK
user_idUUIDFK
typeTEXT
amountINT
balance_afterINT
moedas_admin_adjustments
idUUIDPK
admin_idUUIDFK
target_user_idUUIDFK
amountINT
reasonTEXT
credit_packs
idUUIDPK
nameTEXT
creditsINT
price_centsINT
is_activeBOOLEAN
coupons
idUUIDPK
codeTEXT
creditsINT
typeTEXT
activeBOOLEAN
max_redemptionsINT
coupon_redemptions
idUUIDPK
coupon_idUUIDFK
user_idUUIDFK
credits_grantedINT
user_signup_credits
user_idUUIDPK
credits_grantedINT
granted_atTIMESTAMPTZ
payment_records
idUUIDPK
user_idUUIDFK
typeTEXT
amount_centsINT
statusTEXT
payment_events
idUUIDPK
user_idUUIDFK
event_typeTEXT
payloadJSONB
products
idUUIDPK
slugTEXT
nameTEXT
typeTEXT
price_centsINT
is_activeBOOLEAN
product_versions
idUUIDPK
product_idUUIDFK
slugTEXT
price_centsINT
is_activeBOOLEAN
sales_channels
idUUIDPK
slugTEXT
nameTEXT
product_idUUIDFK
is_activeBOOLEAN
plans
idUUIDPK
nameTEXT
slugTEXT
price_centsINT
credits_includedINT
activeBOOLEAN
plan_flows
idUUIDPK
plan_idUUIDFK
flow_idUUIDFK
subscriptions
idUUIDPK
user_idUUIDFK
planTEXT
statusTEXT
plan_idUUIDFK
amount_centsINT
courses
idUUIDPK
slugTEXT
titleTEXT
instructorTEXT
total_lessonsINT
statusTEXT
course_modules
idUUIDPK
course_idUUIDFK
slugTEXT
titleTEXT
sort_orderINT
course_lessons
idUUIDPK
module_idUUIDFK
slugTEXT
titleTEXT
audio_urlTEXT
is_freeBOOLEAN
course_progress
idUUIDPK
user_idUUIDFK
lesson_idUUIDFK
completedBOOLEAN
course_access
idUUIDPK
user_idUUIDFK
course_idUUIDFK
granted_byTEXT
course_completions
idUUIDPK
user_idUUIDFK
course_idUUIDFK
completed_atTIMESTAMPTZ
course_comments
idUUIDPK
user_idUUIDFK
lesson_idUUIDFK
contentTEXT
statusTEXT
course_ratings
idUUIDPK
user_idUUIDFK
lesson_idUUIDFK
ratingINT
course_org_access
org_idUUIDPK
course_idUUIDFK
can_sellBOOLEAN
revenue_share_pctNUMERIC
course_notifications
idUUIDPK
user_idUUIDFK
course_idUUIDFK
typeTEXT
book_projects
idUUIDPK
titleTEXT
slugTEXT
author_nameTEXT
book_typeTEXT
current_stageTEXT
book_chapters
idUUIDPK
project_idUUIDFK
titleTEXT
chapter_numberINT
statusTEXT
word_countINT
book_reviews
idUUIDPK
chapter_idUUIDFK
review_typeTEXT
statusTEXT
findingsJSONB
book_builds
idUUIDPK
project_idUUIDFK
build_typeTEXT
statusTEXT
output_urlTEXT
book_checklists
idUUIDPK
chapter_idUUIDFK
itemsJSONB
total_itemsINT
checked_itemsINT
book_audio_chapters
idUUIDPK
build_idUUIDFK
chapter_idUUIDFK
statusTEXT
audio_urlTEXT
book_orders
idUUIDPK
user_idUUIDFK
statusTEXT
amount_centsINT
buyer_emailTEXT
blog_posts
idUUIDPK
titleTEXT
slugTEXT
statusTEXT
meta_titleTEXT
author_idUUIDFK
blog_categories
idUUIDPK
nameTEXT
slugTEXT
sort_orderINT
blog_post_categories
post_idUUIDFK
category_idUUIDFK
blog_ctas
idUUIDPK
keyTEXT
labelTEXT
button_urlTEXT
is_activeBOOLEAN
web_stories
idUUIDPK
blog_post_idUUIDFK
slugTEXT
titleTEXT
slidesJSONB
statusTEXT
content_categories
idUUIDPK
slugTEXT
nameTEXT
sort_orderINT
system_pages
idUUIDPK
slugTEXT
titleTEXT
contentTEXT
docs
idUUIDPK
org_idUUIDFK
pathTEXT
titleTEXT
publishedBOOLEAN
whatsapp_instances
idUUIDPK
nameTEXT
providerTEXT
phone_numberTEXT
connection_statusTEXT
is_activeBOOLEAN
whatsapp_messages
idUUIDPK
instance_nameTEXT
directionTEXT
phone_numberTEXT
bodyTEXT
statusTEXT
whatsapp_contacts
idUUIDPK
phone_e164TEXT
push_nameTEXT
tagsARRAY
conversation_statusTEXT
assigned_toUUIDFK
whatsapp_contact_assignments
idINTPK
contact_idUUIDFK
assigned_toUUIDFK
actionTEXT
whatsapp_auto_responses
idUUIDPK
nameTEXT
trigger_typeTEXT
trigger_valueTEXT
response_textTEXT
is_activeBOOLEAN
whatsapp_auto_response_log
idUUIDPK
auto_response_idUUIDFK
phone_numberTEXT
response_sent_atTIMESTAMPTZ
whatsapp_broadcasts
idUUIDPK
nameTEXT
instance_nameTEXT
statusTEXT
total_recipientsINT
whatsapp_broadcast_recipients
idUUIDPK
broadcast_idUUIDFK
phone_numberTEXT
statusTEXT
whatsapp_sequences
idUUIDPK
nameTEXT
instance_nameTEXT
trigger_eventTEXT
is_activeBOOLEAN
whatsapp_sequence_steps
idUUIDPK
sequence_idUUIDFK
step_orderINT
delay_minutesINT
message_textTEXT
whatsapp_sequence_enrollments
idUUIDPK
sequence_idUUIDFK
phone_numberTEXT
current_stepINT
statusTEXT
whatsapp_sequence_sends
idUUIDPK
enrollment_idUUIDFK
step_idUUIDFK
statusTEXT
whatsapp_events
idUUIDPK
event_typeTEXT
phone_numberTEXT
statusTEXT
metadataJSONB
whatsapp_event_actions
idUUIDPK
nameTEXT
event_typeTEXT
action_typeTEXT
action_configJSONB
is_activeBOOLEAN
whatsapp_ai_agents
idUUIDPK
nameTEXT
system_promptTEXT
modelTEXT
is_activeBOOLEAN
whatsapp_ai_agent_logs
idINTPK
agent_idUUIDFK
contact_idUUIDFK
user_messageTEXT
agent_responseTEXT
successBOOLEAN
whatsapp_group_policies
idUUIDPK
group_jidTEXT
allow_botsBOOLEAN
allow_ai_agentBOOLEAN
allow_broadcastBOOLEAN
whatsapp_settings
idINTPK
respond_in_groupsBOOLEAN
webhook_tokenTEXT
whatsapp_conversation_view
idUUID
phone_e164TEXT
display_nameTEXT
conversation_statusTEXT
last_message_atTIMESTAMPTZ
notification_templates
idUUIDPK
event_typeTEXT
labelTEXT
email_enabledBOOLEAN
whatsapp_enabledBOOLEAN
notification_log
idUUIDPK
user_idUUIDFK
event_typeTEXT
channelTEXT
statusTEXT
email_queue
idUUIDPK
user_idUUIDFK
emailTEXT
sequenceTEXT
stepINT
statusTEXT
leads
idUUIDPK
nameTEXT
emailTEXT
phoneTEXT
sourceTEXT
statusTEXT
ebook_leads
idUUIDPK
emailTEXT
nameTEXT
user_idUUIDFK
is_new_userBOOLEAN
qr_projects
idUUIDPK
nameTEXT
slugTEXT
colorTEXT
qr_codes
idUUIDPK
project_idUUIDFK
slugTEXT
target_urlTEXT
scan_countINT
qr_scans
idUUIDPK
qr_code_idUUIDFK
scanned_atTIMESTAMPTZ
ip_addressTEXT
orgs
idUUIDPK
slugTEXT
nameTEXT
owner_idUUIDFK
is_activeBOOLEAN
org_domains
idUUIDPK
org_idUUIDFK
domainTEXT
is_activeBOOLEAN
contracts
idUUIDPK
titleTEXT
contentTEXT
statusTEXT
created_byUUIDFK
contract_signatures
idUUIDPK
contract_idUUIDFK
user_idUUIDFK
statusTEXT
signed_atTIMESTAMPTZ
terms_versions
idUUIDPK
typeTEXT
versionINT
titleTEXT
is_activeBOOLEAN
terms_acceptances
idUUIDPK
user_idUUIDFK
terms_version_idUUIDFK
accepted_atTIMESTAMPTZ
ws_layers
idUUIDPK
nameTEXT
slugTEXT
positionINT
ws_tasks
idUUIDPK
layer_idUUIDFK
titleTEXT
bloom_levelTEXT
xp_rewardINT
positionINT
ws_subtask_checks
idUUIDPK
user_idUUIDFK
task_idUUIDFK
subtask_indexINT
checkedBOOLEAN
ws_evidences
idUUIDPK
user_idUUIDFK
task_idUUIDFK
typeTEXT
contentTEXT
ws_member_profiles
idUUIDPK
user_idUUIDFK
nivel_tecnicoTEXT
motivacaoTEXT
ws_achievements
idUUIDPK
user_idUUIDFK
achievement_keyTEXT
unlocked_atTIMESTAMPTZ
ws_streaks
idUUIDPK
user_idUUIDFK
current_streakINT
longest_streakINT
last_active_dateTIMESTAMPTZ
ws_xp_log
idUUIDPK
user_idUUIDFK
actionTEXT
xpINT
task_idUUIDFK
ws_nps
idUUIDPK
user_idUUIDFK
trigger_pointTEXT
scoreINT
commentTEXT
ws_card_analytics
task_idUUIDPK
total_startedINT
total_completedINT
avg_time_hoursNUMERIC
ws_support_threads
idUUIDPK
user_idUUIDFK
task_idUUIDFK
statusTEXT
ws_support_messages
idUUIDPK
thread_idUUIDFK
sender_idUUIDFK
contentTEXT
is_aiBOOLEAN
ws_user_progress
idUUIDPK
user_idUUIDFK
task_idUUIDFK
statusTEXT
cs_scoreINT
audit_logs
idINTPK
actor_idUUIDFK
actionTEXT
resource_typeTEXT
resource_idTEXT
admin_audit_log
idUUIDPK
admin_idUUIDFK
actionTEXT
field_changedTEXT
detailsJSONB
health_checks
idUUIDPK
run_idUUIDFK
check_nameTEXT
statusTEXT
severityTEXT
health_runs
idUUIDPK
org_idTEXT
run_typeTEXT
total_checksINT
worst_severityTEXT
health_alert_log
idUUIDPK
run_idUUIDFK
channelTEXT
messageTEXT
successBOOLEAN
health_alert_rules
idUUIDPK
labelTEXT
categoryTEXT
min_severityTEXT
enabledBOOLEAN
worker_heartbeats
idTEXTPK
worker_idTEXT
statusTEXT
last_heartbeat_atTIMESTAMPTZ
gates_log
idUUIDPK
mensagem_idTEXT
gate_numeroINT
resultadoTEXT
agent_idTEXT
product_changes_log
idUUIDPK
entityTEXT
entity_idUUID
actionTEXT
admin_idUUIDFK
ai_providers
idUUIDPK
nameTEXT
display_nameTEXT
is_activeBOOLEAN
priorityINT
ai_sessions
idUUIDPK
user_idUUIDFK
providerTEXT
modelTEXT
input_tokensINT
estimated_cost_usdNUMERIC
ai_usage_summary
total_sessionsINT
total_input_tokensNUMERIC
total_cost_usdNUMERIC
total_cost_brlNUMERIC
agent_logs
idUUIDPK
agent_idTEXT
ferramentaTEXT
sucessoBOOLEAN
session_idTEXT
agent_states
idUUIDPK
agent_idTEXT
session_idTEXT
stateJSONB
nivel_ativoTEXT
memories
idUUIDPK
session_idTEXT
contentTEXT
typeTEXT
domainTEXT
importanceINT
community_events
idUUIDPK
titleTEXT
event_dateTIMESTAMPTZ
event_typeTEXT
is_publishedBOOLEAN
community_subscriptions
idUUIDPK
user_idUUIDFK
plan_typeTEXT
statusTEXT
expires_atTIMESTAMPTZ
event_registrations
idUUIDPK
user_idUUIDFK
event_idTEXT
statusTEXT
amount_centsINT
mentoring_sessions
idUUIDPK
user_idUUIDFK
session_typeTEXT
statusTEXT
amount_centsINT
phone_verifications
idUUIDPK
phoneTEXT
phone_hashTEXT
codeTEXT
verifiedBOOLEAN
user_idUUIDFK
used_trial_phones
idUUIDPK
phone_hashTEXT
user_idUUIDFK
used_atTIMESTAMPTZ
used_trial_emails
idUUIDPK
email_hashTEXT
emailTEXT
user_idUUIDFK
user_trials
idUUIDPK
user_idUUIDFK
phone_hashTEXT
statusTEXT
expires_atTIMESTAMPTZ
vault
idUUIDPK
labelTEXT
categoryTEXT
encrypted_dataTEXT
site_settings
keyTEXTPK
valueTEXT
updated_atTIMESTAMPTZ
support_tickets
idUUIDPK
ticket_numberINT
emailTEXT
messageTEXT
statusTEXT
tasks
idUUIDPK
titleTEXT
statusTEXT
priorityINT
categoryTEXT
hotmart_members
idUUIDPK
emailTEXT
transaction_idTEXT
statusTEXT
external_costs
idUUIDPK
serviceTEXT
periodTEXT
amount_usdNUMERIC
sourceTEXT
cost_summary_full
periodTEXT
ext_usdNUMERIC
ext_brlNUMERIC
breakdownTEXT

Políticas RLS

TabelaSELECTINSERTUPDATE
profilesProprioServiceProprio
admin_create_user_logAdminAdminAdmin
role_permissionsAdminAdminAdmin
membershipsProprioServiceService
deleted_user_backupsAdminServiceAdmin
deletion_requestsProprioProprioService
flowsPúblicoAdminAdmin
flow_stepsPúblicoAdminAdmin
flow_executionsProprioProprioProprio
flow_modulesPúblicoAdminAdmin
flow_accessProprioServiceService
flow_categoriesPúblicoAdminAdmin
flow_category_linksPúblicoAdminAdmin
flow_step_versionsAdminAdminAdmin
flow_analyticsAdminServiceService
user_documentsProprioServiceProprio
interview_sessionsProprioServiceService
passaporte_projectsProprioServiceProprio
user_creditsProprioServiceService
user_moedasProprioServiceService
credit_transactionsProprioServiceService
moedas_transactionsProprioServiceService
moedas_admin_adjustmentsAdminAdminAdmin
credit_packsPúblicoAdminAdmin
couponsAdminAdminAdmin
coupon_redemptionsProprioServiceService
user_signup_creditsProprioServiceService
payment_recordsProprioServiceService
payment_eventsAdminServiceService
productsPúblicoAdminAdmin
product_versionsAdminAdminAdmin
sales_channelsPúblicoAdminAdmin
plansPúblicoAdminAdmin
plan_flowsPúblicoAdminAdmin
subscriptionsProprioServiceService
coursesPúblicoAdminAdmin
course_modulesPúblicoAdminAdmin
course_lessonsPúblicoAdminAdmin
course_progressProprioServiceProprio
course_accessProprioServiceService
course_completionsProprioServiceService
course_commentsProprioProprioProprio
course_ratingsProprioProprioProprio
course_org_accessAdminAdminAdmin
course_notificationsProprioServiceService
book_projectsAdminAdminAdmin
book_chaptersAdminAdminAdmin
book_reviewsAdminServiceAdmin
book_buildsAdminServiceService
book_checklistsAdminServiceAdmin
book_audio_chaptersAdminServiceService
book_ordersProprioServiceService
blog_postsPúblicoAdminAdmin
blog_categoriesPúblicoAdminAdmin
blog_post_categoriesPúblicoAdminAdmin
blog_ctasPúblicoAdminAdmin
web_storiesPúblicoAdminAdmin
content_categoriesPúblicoAdminAdmin
system_pagesPúblicoAdminAdmin
docsPúblicoAdminAdmin
whatsapp_instancesAdminServiceService
whatsapp_messagesAdminServiceService
whatsapp_contactsAdminServiceService
whatsapp_contact_assignmentsAdminServiceService
whatsapp_auto_responsesAdminAdminAdmin
whatsapp_auto_response_logAdminServiceService
whatsapp_broadcastsAdminAdminService
whatsapp_broadcast_recipientsAdminServiceService
whatsapp_sequencesAdminAdminAdmin
whatsapp_sequence_stepsAdminAdminAdmin
whatsapp_sequence_enrollmentsAdminServiceService
whatsapp_sequence_sendsAdminServiceService
whatsapp_eventsAdminServiceService
whatsapp_event_actionsAdminAdminAdmin
whatsapp_ai_agentsAdminAdminAdmin
whatsapp_ai_agent_logsAdminServiceService
whatsapp_group_policiesAdminAdminAdmin
whatsapp_settingsAdminAdminAdmin
whatsapp_conversation_viewAdminServiceService
notification_templatesAdminAdminAdmin
notification_logAdminServiceService
email_queueAdminServiceService
leadsAdminServiceAdmin
ebook_leadsAdminServiceService
qr_projectsAdminAdminAdmin
qr_codesAdminAdminAdmin
qr_scansAdminServiceService
orgsAdminAdminAdmin
org_domainsAdminAdminAdmin
contractsAdminAdminAdmin
contract_signaturesProprioServiceService
terms_versionsPúblicoAdminAdmin
terms_acceptancesProprioProprioService
ws_layersPúblicoAdminAdmin
ws_tasksPúblicoAdminAdmin
ws_subtask_checksProprioServiceProprio
ws_evidencesProprioServiceProprio
ws_member_profilesProprioServiceProprio
ws_achievementsProprioServiceService
ws_streaksProprioServiceProprio
ws_xp_logProprioServiceService
ws_npsProprioProprioService
ws_card_analyticsAdminServiceService
ws_support_threadsProprioServiceProprio
ws_support_messagesProprioServiceService
ws_user_progressProprioServiceProprio
audit_logsAdminServiceService
admin_audit_logAdminAdminAdmin
health_checksAdminServiceService
health_runsAdminServiceService
health_alert_logAdminServiceService
health_alert_rulesAdminAdminAdmin
worker_heartbeatsAdminServiceService
gates_logAdminServiceService
product_changes_logAdminServiceService
ai_providersAdminAdminAdmin
ai_sessionsAdminServiceService
ai_usage_summaryAdminServiceService
agent_logsAdminServiceService
agent_statesAdminServiceService
memoriesAdminServiceService
community_eventsPúblicoAdminAdmin
community_subscriptionsProprioServiceService
event_registrationsProprioServiceService
mentoring_sessionsProprioServiceService
phone_verificationsServiceServiceService
used_trial_phonesServiceServiceService
used_trial_emailsServiceServiceService
user_trialsProprioServiceService
vaultAdminAdminAdmin
site_settingsPúblicoAdminAdmin
support_ticketsAdminPúblicoAdmin
tasksAdminAdminAdmin
hotmart_membersAdminServiceService
external_costsAdminAdminAdmin
cost_summary_fullAdminServiceService

API Contract

Fluxos

GET/api/admin/fluxos
POST/api/admin/fluxos
PUT/api/admin/fluxos/[id]
DELETE/api/admin/fluxos/[id]
POST/api/flow/execute
POST/api/flow/suggest
POST/api/flow/complete
POST/api/flow/import

Entrevista

POST/api/interview/start
POST/api/interview/message
POST/api/interview/audio
POST/api/interview/upload
POST/api/interview/abandon
GET/api/interview/session
GET/api/interview/list

Documentos

GET/api/documents/[id]
PUT/api/documents/[id]
POST/api/documents/[id]/share
DELETE/api/documents/[id]/share
GET/api/documents/shared/[token]

Créditos

GET/api/credits/balance
GET/api/credits/history
POST/api/admin/credits/adjust

Blog

GET/api/admin/blog
POST/api/admin/blog
PUT/api/admin/blog/[slug]
DELETE/api/admin/blog/[slug]
GET/api/admin/blog/categorias
POST/api/admin/blog/categorias
POST/api/admin/blog/upload

QR Codes

GET/qr/[slug]
GET/api/admin/qr/projects
POST/api/admin/qr/projects
GET/api/admin/qr/codes
POST/api/admin/qr/codes
GET/api/admin/qr/analytics
POST/api/admin/qr/health-check
POST/api/admin/qr/import
GET/api/admin/qr/export

Auth / Trial

POST/api/auth/send-code
POST/api/auth/verify-code

Planos / Pagamentos

GET/api/admin/planos
POST/api/admin/planos
PUT/api/admin/planos/[id]
POST/api/checkout
POST/api/webhooks/assas

IA

GET/api/admin/ia/providers
PUT/api/admin/ia/providers
GET/api/admin/ia/health

Termos

GET/api/terms/current
POST/api/terms/accept
GET/api/terms/check

Integracoes

AI Router (Multi-LLM)

  • -Claude Sonnet 4 - primario (sugestoes, entrevista, passaporte)
  • -Groq Llama 3.1 8B - validacao, fallback
  • -Gemini 2.0 Flash - fallback secundario
  • -Ollama Llama 3.2 3B - local no VPS
  • -Whisper Large v3 - transcricao de audio
  • -Cache em memoria (1h TTL)
  • -Log completo em ai_sessions

Assas (Pagamentos)

  • -API REST em producao
  • -PIX, boleto e cartao de credito
  • -Checkout transparente (sem redirect)
  • -Webhooks com HMAC SHA-256
  • -Sales channels + products (arquitetura generica)

Twilio (SMS)

  • -Codigo de 6 digitos para trial
  • -Normalizacao E.164 para Brasil (+55)
  • -Rate limiting: 3 codigos/hora
  • -Max 5 tentativas por codigo
  • -Expiracao em 10 minutos

Evolution API (WhatsApp)

  • -Multi-instancia (Baileys + Cloud API)
  • -Inbox unificado com contatos
  • -Broadcasts, auto-respostas, sequencias
  • -AI Agents com system prompt
  • -Templates HSM (Meta aprovacao)
  • -Webhooks com HMAC e apikey auth

Meta Conversions API

  • -Rastreamento server-side de eventos
  • -Purchase, Lead, PageView
  • -Integracao com checkout Assas
  • -Deduplicacao com pixel browser

Redis Upstash

  • -Cache de sessoes
  • -Rate limiting distribuido
  • -Dados temporarios com TTL

Supabase

  • -PostgreSQL com RLS em todas as tabelas
  • -Auth: Google OAuth + email/senha
  • -Storage: blog-images, interview-files, qr-images, whatsapp-media
  • -Vault: AES-256-GCM para secrets

Google TTS

  • -Chirp3-HD - voz masculina premium
  • -Audio para cursos APE, Vibecoding PRO, Pre-Vibecoding
  • -Audio chapters para Maquina de Livros
  • -Armazenado no Supabase Storage

Plano de Deploy

Ambientes

Vercel (Produção)

  • Push para main = deploy automático
  • Package manager: pnpm
  • Framework: Next.js 15.5 (auto-detected)
  • Dominio: app.ebuz.com.br
  • Edge Network global

Hetzner VPS

  • IP: 77.42.31.230
  • SSH porta 2847
  • Ollama (LLM local)
  • Backups automáticos
  • Monitor + alertas

Variaveis de Ambiente

# Supabase
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEY
SUPABASE_DB_PASSWORD
SUPABASE_PROJECT_REF
SUPABASE_ACCESS_TOKEN

# IA
ANTHROPIC_API_KEY
GROQ_API_KEY
GEMINI_API_KEY
OLLAMA_API_URL

# Pagamentos
ASSAS_API_KEY
ASSAS_API_URL

# SMS
TWILIO_ACCOUNT_SID
TWILIO_AUTH_TOKEN
TWILIO_PHONE_NUMBER

# WhatsApp (Evolution API)
EVOLUTION_API_URL
EVOLUTION_API_KEY

# Meta
META_PIXEL_ID
META_CONVERSIONS_API_TOKEN

# Cache
REDIS_URL
REDIS_TOKEN

# Seguranca
VAULT_KEY
HMAC_SECRET

# App
NEXT_PUBLIC_APP_URL
VERCEL_TOKEN
HETZNER_HOST
HETZNER_USER

Protocolo de Deploy

  1. 1Rodar pnpm build localmente (verificar compilacao)
  2. 2Commitar com mensagem descritiva (prefixo convencional)
  3. 3Push para main no GitHub (ebuz-ia/ebuz-docs)
  4. 4Vercel detecta push e inicia build automático
  5. 5Preview deploy disponível para verificação
  6. 6Promote para produção (automático para main)
  7. 7Verificar /api/health no dominio de produção

Migrations

001_multi_tenant.sql
002_docs.sql
003_memories.sql
004_agents.sql
005_vault.sql
006_sessions.sql
010_subscriptions.sql
012_plans_flows.sql
018_flow_engine_core.sql
019_document_library.sql
020_credits_system.sql
025_coupons_signup.sql
031_interview_sessions.sql

Monitoramento

Cron a cada 5 min: monitor-v2.sh (13 checks de saúde)
Daily audit as 6h (7 categorias: disco, memoria, CPU, certificados, backups, logs, serviços)
Health endpoint: GET /api/health (status de todos os serviços)

Plano de Testes

Testes Unitarios

14 itens
normalizePhonealta
hashPhonealta
generateCodealta
maskPhonebaixa
hasEnoughCreditsalta
consumeCreditsalta
quickValidatemedia
validateInputmedia
replaceVariablesmedia
generateDocumentmedia
normalizacao de cupommedia
determinePhasemedia
parseJhowResponsemedia
exportAsHTML / exportAsMarkdownbaixa

Testes de Integração

8 itens
Fluxo completo (início -> documento)alta
Trial completo (SMS -> ativação)alta
Créditos (concessão -> consumo -> saldo)alta
Cupom (resgate -> créditos)media
Blog (criar -> publicar -> listar)media
Entrevista (início -> fases -> documento)alta
AI Router fallback (Claude off -> Groq)alta
AI Router cache hitmedia

Testes E2E

8 itens
Registro e login completoalta
Trial SMS end-to-endalta
Fluxo educacional completoalta
Biblioteca de documentosmedia
Admin: gestão de fluxosmedia
Admin: gestão de blogmedia
Pagamento e ativação de planoalta
Entrevista estruturada completaalta

Cenarios Criticos

  • Debito duplo de créditos (race condition na execução simultanea)
  • Race condition em resgate de cupons (two-phase commit)
  • Trial anti-fraude (mesmo telefone em contas diferentes)
  • Fallback de IA (Claude fora do ar, Groq assume sem erro visível)
  • RLS bypass (tentativa de acessar dados de outro usuário)
  • Admin access (rota admin acessada por usuário normal)
  • Versionamento de documento (criar nova versão sem perder anterior)
  • Expiração de trial (créditos bloqueados apos 24h)

ADRs (Architecture Decision Records)

Máquina de Livros

Fabrica modular de producao editorial. Cada projeto usa apenas os modulos que precisa. Build types: preview, print, digital, epub, audiobook, kdp_package. Inclui Google TTS para audio de capitulos, gestao de capa e pedidos com frete.

Editor

Escrita capitulo a capitulo em Markdown

Implementado

Importacao

Colar texto ou upload de .md/.txt

Implementado

Revisao IA

Gramatica, editorial, acentuacao, anti-IA

Implementado

Build

preview, print, digital, epub, audiobook, kdp_package

Implementado

Capa

Gestao de capa do livro

Implementado

Audio TTS

Google TTS para capitulos em audio

Implementado

Pedidos

Book orders com frete

Implementado

Exportacao

PDF, EPUB, Markdown, KDP

Implementado

Modelo de dados

TabelaDescriçãoRLS
book_projectsProjetos de livro (titulo, autor, tipo, formato, estagio)Sim
book_chaptersCapitulos (content_md, word_count, sort_order)Sim
book_reviewsRevisoes IA (findings JSONB, tipo, severidade)Sim
book_buildsCompilacoes (preview, print, digital, epub, audiobook, kdp_package)Sim
book_checklistsQA items por capitulo (tipo, checked)Sim
book_ordersPedidos de livro com frete e endereco de entregaSim

Planos comerciais

PlanoPreçoInclui
Livro CompletoR$ 2.000Escrita + Revisao + Diagramacao + Publicacao
Revisao + DiagramacaoR$ 1.500Importacao + Revisao + Diagramacao + EPUB
DiagramacaoR$ 1.000Importacao + Diagramacao + EPUB
PublicacaoR$ 750EPUB + Audiolivro (Google TTS) + KDP Package

Arquivos do sistema

lib/book-engine/
  types.ts              # Tipos TypeScript (BookProject, BookChapter, etc.)
  accent-corrector.ts   # 200+ mapeamentos PT-BR
  anti-ia-scanner.ts    # 150+ padrões de vocabulário IA
  checklist-templates.ts # QA items por tipo de capítulo

src/routes/
  admin-livros-route.ts           # GET/POST projetos
  admin-livros-id-route.ts        # GET/PUT/DELETE projeto
  admin-livros-capitulos-route.ts # GET/POST capítulos
  admin-livros-capitulo-slug-route.ts # GET/PUT/DELETE capítulo
  admin-livros-build-route.ts     # POST build + GET histórico
  admin-livros-revisar-route.ts   # GET/POST/PUT revisões
  admin-livros-importar-route.ts  # POST importação
  admin-livros-exportar-route.ts  # GET/POST exportação

src/pages/
  admin-livros-dashboard-page.tsx # Dashboard com métricas
  admin-livros-novo-page.tsx      # Formulário novo projeto
  admin-livros-projeto-page.tsx   # Detalhe com módulos
  admin-livros-capitulo-page.tsx  # Editor Markdown
  admin-livros-revisao-page.tsx   # Revisão com tabs
  admin-livros-importar-page.tsx  # Importação (colar/upload)
  admin-livros-exportar-page.tsx  # Exportação (PDF/EPUB/MD)

app/maquina-livros/page.tsx       # Página de vendas pública

infra/supabase/migrations/
  034_maquina_livros.sql          # 5 tabelas + RLS + storage

Gerador de Passaportes (Passo 1)

Geracao automatizada em 3 estagios: Passaporte (consultor, segmento, persona, crencas, dores, conquistas, objecoes, medos, solucoes, clientes) + 6 Segmentos de mercado + Personas sob demanda. Input via texto, PDF ou entrevista com Jhow. Output em PassaporteData JSON. Billing: ~40.000 moedas por passaporte, ~15.000 por persona.

Fluxo de geracao (3 estagios)

1

Input: texto, PDF ou entrevista Jhow

Expert cola texto, faz upload de PDF para extracao ou usa entrevista com Jhow IA

2

Passaporte: geracao com IA

IA analisa conteudo e gera PassaporteData JSON completo (consultor, segmento, persona, dores, conquistas, objecoes)

3

Expansao: segmentos + personas sob demanda

6 segmentos de mercado automaticos. Personas individuais geradas sob demanda por segmento selecionado.

Requisitos funcionais

RF-P1-001Input multi-formato (texto, PDF, entrevista Jhow)Implementado
RF-P1-002Geracao de Passaporte completo via IA (PassaporteData JSON)Implementado
RF-P1-003Geracao automatica de 6 segmentos de mercadoImplementado
RF-P1-004Personas sob demanda por segmento selecionadoImplementado
RF-P1-005Billing: ~40.000 moedas/passaporte, ~15.000/personaImplementado
RF-P1-006Few-shot learning de passaportes de referencia (alta qualidade)Implementado
RF-P1-007Banco: passaporte_projects (RLS por usuario)Implementado
RF-P1-008Foto de persona via /api/passo1/[slug]/photoImplementado

Arquitetura

passaporte_projects

Tabela com RLS por usuário

Implementado

Flows virtuais

Agrupamento na biblioteca

Implementado

AI Router

Fallback Claude - Groq - Gemini

Implementado

Few-shot refs

Referências para aprendizado de formato

Implementado

Temas visuais

Teal
Emerald
Blue
Violet
Amber
Rose

Rotas

RotaDescrição
/passo1Upload + formulario de entrada
/passo1/[slug]/passaporteVisualizacao do Passaporte de Contexto
/passo1/[slug]/segmentosVisualizacao dos 6 Segmentos
/api/passo1/generateGeracao do passaporte via IA
/api/passo1/[slug]/segmentsGeracao dos 6 segmentos de mercado
/api/passo1/[slug]/personaGeracao de persona sob demanda por segmento
/api/passo1/[slug]/photoGeracao de foto de persona
/api/passo1/extract-pdfExtracao de texto de PDF

Arquivos do sistema

app/
  passo1/page.tsx                    # Upload + formulario
  passo1/[slug]/passaporte/page.tsx  # Documento Passaporte
  passo1/[slug]/segmentos/page.tsx   # Documento Segmentos

app/api/passo1/
  generate/route.ts                  # Geracao do passaporte
  [slug]/segments/route.ts           # Geracao dos 6 segmentos
  [slug]/persona/route.ts            # Persona sob demanda
  [slug]/photo/route.ts              # Foto de persona
  extract-pdf/route.ts               # Extracao de PDF

lib/passaporte/
  prompts.ts                         # Prompts para geracao
  markdown-generator.ts              # Gerador de markdown estruturado
  references.ts                      # Few-shot refs (alta qualidade)

lib/
  ai-router.ts                       # Fallback multi-LLM
  slug-generator.ts                  # Gerador de slug inteligente

DB: passaporte_projects (RLS)

Auth / Onboarding

Sistema completo de autenticacao com email/senha + Google OAuth, trial 24h via SMS (Twilio), multi-tenant orgs (auto-created), auto-create buyer para compras via webhook Assas, hierarquia admin (super_admin - admin - user), middleware com cache Redis e honeypot anti-bot.

Requisitos funcionais

RF-AUTH-001Email/senha + Google OAuthImplementado
RF-AUTH-002Trial 24h via SMS (Twilio) com anti-fraude (1 chip = 1 trial)Implementado
RF-AUTH-003Multi-tenant orgs (auto-created no cadastro)Implementado
RF-AUTH-004Auto-create buyer (webhook Assas para guest checkout)Implementado
RF-AUTH-005Hierarquia admin: super_admin > admin > userImplementado
RF-AUTH-006Middleware route protection com cache RedisImplementado
RF-AUTH-007Honeypot anti-bot no formulario de cadastroImplementado
RF-AUTH-008SMTP customizado ([email protected])Implementado
RF-AUTH-009Criacao manual de usuario pelo adminImplementado
RF-AUTH-010Password reset via Admin APIImplementado

Detalhes de implementacao

Email/senha + Google OAuth

Login via Supabase Auth com email/senha ou Google OAuth

Implementado

Trial 24h via SMS

Twilio SMS com codigo 6 digitos. Anti-fraude: hash SHA-256, rate limiting, 1 chip = 1 trial

Implementado

Multi-tenant workspaces

Workspaces auto-created no cadastro. Cada usuario pertence a um workspace.

Implementado

Auto-create buyer

Webhook Assas cria usuario automaticamente para guest checkout (sem cadastro previo)

Implementado

Admin hierarchy

super_admin > admin > user. Middleware verifica role em rotas protegidas.

Implementado

Redis middleware cache

Cache de sessao e verificacao de acesso via Redis Upstash

Implementado

Honeypot anti-bot

Campo invisivel no formulario de cadastro para detectar bots

Implementado

SMTP + criacao manual

SMTP customizado [email protected]. Admin cria usuarios com trial opcional.

Implementado
eBuz Negócios Digitais - SDD v1.0 - Marco 2026