Pular para o conteúdo principal

Estrutura do Monorepo

hypergestor/
├── cms/ # CMS (site builder automotivo)
│ ├── schemas/ # YAMLs de domínio (site, page, menu, template, block, media, post, offer, form, list, location)
│ ├── api/ # Fastify :3000 — CRUD sites
│ ├── renderer/ # Fastify :3001 — SSR páginas publicadas
│ ├── editor/ # React 19 + Puck — editor visual (iframe)
│ ├── web/ # Angular 21 — admin do CMS
│ ├── media/ # Service de media
│ ├── showcase/ # Showcase de componentes
│ └── _gen/ # GERADO — rotas CRUD (via pnpm generate)
├── hub/ # Hub (integrações CRM bidirecional)
│ ├── schemas/ # YAMLs de domínio (account, config, credential, run, item, request, gateway, dlq)
│ ├── api/ # Fastify :3100
│ ├── runner/ # Orquestrador BullMQ :3012
│ ├── scheduler/ # Cron triggers :3011
│ ├── webhook/ # Receptor de webhooks :3002
│ ├── monitor/ # APM interno :3010
│ ├── mocker/ # Mock server :4900
│ ├── connectors/ # Blueprints (demo, mercado-livre, nbs)
│ └── web/ # Angular 21 — dashboard
├── platform/ # Platform BC (cross-tenant, banco public)
│ ├── schemas/ # YAMLs (brand, catalog, type, block, media)
│ └── api/ # Rotas /admin/*
├── tenant/ # Tenant BC (gestão de tenants, banco public)
│ ├── schemas/ # tenant.yaml
│ └── api/
├── user/ # User BC (auth + usuários, banco public)
│ ├── schemas/ # user.yaml, auth.yaml
│ └── api/
├── adm/ # Admin (UI casca — consome platform + tenant + user)
│ └── web/ # Angular 21 — :4600
├── libs/
│ ├── core/ # @hg/core — db, cache, queue, resilience, http
│ ├── ui/ # @hg/ui — Angular UI library (consumida como source)
│ ├── shared/ # @hg/shared — tipos, Zod schemas, clients tipados
│ └── blueprint/ # @hg/blueprint — schema + codegen para connectors
├── db/
│ ├── public/ # Migrações banco public (plt_*, tnt_*, usr_*, hub_types)
│ └── tenant/ # Migrações banco tenant (cms_*, hub_*)
├── scripts/
│ └── generator/ # Schema generator (gera _gen/ a partir dos YAMLs)
├── tests/
│ ├── cms/
│ ├── hub/
│ └── helpers/ # Mock DB chain para testes
├── tools/
│ ├── vscode/ # Extensão VS Code
│ └── docs-mcp/ # MCP de documentação
└── docs/ # Documentação markdown (source-of-truth)

Bancos de Dados

Dois bancos Postgres no mesmo cluster:

BancoEsquemasTabelas (prefixos)
publicplt, tnt, usr, hub, publicplt_*, tnt_tenants, usr_*, hub_types
tenantcms, hub, publiccms_*, hub_* (com RLS por tenant)

Bounded contexts do platform/, tenant/ e user/ vivem no banco public. Contextos cms/ e hub/ têm tabelas no banco tenant (RLS) + catálogo em public (hub_types, plt_blocks).