Modelo de Dados¶
Brandvelia é uma aplicação Postgres de schema único, protegida por RLS. Todos os
dados vivem no schema brandvelia do projeto Supabase compartilhado panoptes. O
app nunca toca qualquer outro schema, Edge Function ou job que pertença aos
co-tenants.
Layout¶
brandvelia/ ← o único schema que este app pode tocar
├── authentication/ identidade, sessões
├── offers/ catálogo de produtos + modelo de comissão
├── landing_pages/ destinos do operador
├── creative/ copy gerada por IA
├── campaigns/ rodadas de tráfego + gasto
├── offers_src/ feed inbound de marketplace (produtos)
├── marketplaces/ produtos do marketplace ClickBank
├── snapshots/ snapshots de oportunidade do Radar
├── marketplace/ scores de ofertas
├── leads/ captura CRM + pipeline
├── experiments/ testes A/B + quebra de métricas
├── checkout_tracking/ tracking de pedidos
├── finance/ transações, ledger, P&L
├── dashboard/ agregados do dashboard
├── vision_board/ ideias de produto + planilhas de oferta
├── integrations/ apps conectados, webhooks, triggers, refresh
├── ai/ modelos, execuções, resultados e settings de IA
├── decisioning/ evidência, capital, cenários, recomendações, fases ⬅ novo
└── settings/ settings do workspace + operador
Estratégia de IDs¶
Toda entidade tem um ID nominal da plataforma — BV_USER, BV_Campaign, BV_Created,
BV_ID, BV_LandingPage, BV_Product, BV_Snapshot, BV_AIModel, BV_AIResult,
BV_Transaction, BV_Leads, BV_Workspace, BV_AuthProvider. Esses IDs nominais
(definidos em packages/types) codificam o domínio e são garantidos pelo compilador,
não apenas pela documentação.
Relacionamentos¶
```mermaid flowchart LR WB[Vision Board] --> OFF[Ofertas] OFF --> LP[Landing Pages] OFF --> CRE[Criativos] LP --> CAM[Campanhas] CRE --> CAM CAM --> TR[Finanças / Transações] CAM --> LEAD[Leads/CRM] EX[Experimentos] -. métrica .- TR CO[Copilot] -. lê .- TR RAD[Snapshot Radar] --> MS[Score da Oferta] OFF --> MS DEC[Evidência / Capital / Cenários] -. governa .- CAM