Arquitetura
Camadas, a regra de dependência, princípios inegociáveis e o formato de app compartilhado.
CamadasLink para esta seção: Camadas
De cima para baixo: domínio do produto, ecossistema e IA, uma camada de linha de produto, depois o kernel e o design system. Os adaptadores Firebase se vinculam na raiz de composição.
Camada de domínio do produto
Apenas features verticais, em lib/features/<vertical>/ no repositório de cada produto: garage, patients, flights. Nunca em pacotes compartilhados.
Camada de ecossistema
After ID, After+, o barramento de eventos, APIs entre produtos e serviços compartilhados. Os produtos se comunicam por essa malha — nunca por imports entre irmãos.
Recursos de IA
Uma única plataforma de IA com recursos modulares — conversa, OCR, visão, sumarização, tool calling e mais. Os produtos ativam ou desativam; não embarcam stacks de IA próprias.
Módulos consumer
Camada B2C enxuta: ponte de assinatura, catálogo de features consumer, cofre pessoal, consentimento de lançamento e localização regional. Referência: SuperGarage.
Módulos enterprise
Catorze ports B2B — organização, RBAC, workflow, tarefas, calendário, documentos, mensagens, relatórios, auditoria, sincronização offline — cada um com um mock em memória. Referência: SuperHospital.
Kernel compartilhado
Auth, rede reforçada, armazenamento, DI com Riverpod, flags, remote config, SDK de IA BYOK, direitos premium, notificações, deep links e os motores de dashboard, plugins, busca e configurações.
Sistema de design
Uma única família visual para consumer e enterprise: tokens de cor, espaçamento, raio, movimento e tipografia, além de componentes compartilhados.
Adaptadores Firebase
Firebase Auth, sincronização de blobs no Firestore e de mídia no Storage por trás dos ports de after_core. Vinculados apenas na raiz de composição; o código de domínio nunca importa Firebase.
Regra de dependênciaLink para esta seção: Regra de dependência
As dependências apontam apenas para baixo. Os produtos se comunicam entre si por eventos e APIs seguras na camada de ecossistema. Adicionar um domínio adiciona um módulo na camada superior e mantém este diagrama inalterado.
PrincípiosLink para esta seção: Princípios
- SuperGarage é a referência consumer; SuperHospital é a referência enterprise.
- Módulos de indústria e verticais vivem apenas nos repositórios de produto.
- Módulos de SO compartilhados vivem apenas em after_core, after_consumer e after_enterprise.
- Gere, não comece do zero.
- Ports em vez de SDKs.
- A identidade da família vence: chrome, movimento, densidade, splash e shell são idênticos.
- Todo port vem com uma implementação mock.
Formato de app compartilhadoLink para esta seção: Formato de app compartilhado
Todo produto, consumer ou enterprise, inicializa pela mesma sequência.
main.dart
→ PlatformConfig.current = manifest
→ ProviderScope(overrides: After*Overrides…)
→ ColdStart (OVERSTEIN splash)
→ AuthGate
→ ProductShell (tabs from platform + spec)
→ Home = Dashboard Engine (+ plugins)
→ OS modules = platform screens
→ Vertical = product feature modules onlyFonte supercore/docs/PLATFORM_DOCTRINE.md (abre em uma nova aba)