Visão geral¶
O AiValeu é um workspace Dart/Flutter gerenciado por Melos. A raiz declara a versão 1.2.1+20 e reúne três aplicações e quatro packages compartilhados.
Componentes do workspace¶
| Caminho | Papel |
|---|---|
apps/aivaleu_app |
Aplicativo principal. Reúne experiência de cliente e área de parceiro. |
apps/super_admin_web |
Painel Flutter Web para operação, campanhas e curadoria. |
apps/waiter_desktop |
Monitor de check-in para garçom; usa autenticação Firebase + sessão de garçom emitida pelo backend. |
packages/aivaleu_domain |
Entidades, contratos de repository e use cases sem Flutter/Firebase. |
packages/aivaleu_data |
Models e implementações de repositories usando Firestore, Auth e Functions. |
packages/aivaleu_core |
Serviços transversais, Remote Config, DI e logging. |
packages/aivaleu_ui |
Tema, tokens e widgets reutilizáveis. |
functions |
Backend Node.js 22 em Cloud Functions for Firebase. |
O workspace é descrito em pubspec.yaml e melos.yaml.
Fluxo de dependências¶
flowchart TB
APPS[apps/*] --> DOMAIN[aivaleu_domain]
APPS --> DATA[aivaleu_data]
APPS --> CORE[aivaleu_core]
APPS --> UI[aivaleu_ui]
DATA --> DOMAIN
DATA --> CORE
UI --> DOMAIN
DOMAIN -. não depende de .-> FLUTTER[Flutter/Firebase]
Convenção prática¶
Ao implementar regra de negócio nova, prefira:
- entidade/value object e contrato no
aivaleu_domain; - implementação do contrato em
aivaleu_data; - wiring via GetIt no app consumidor;
- Cubit/Bloc para estado de apresentação;
- widget/tela apenas para apresentação e interação;
- Cloud Function e Rules quando a decisão exigir autoridade de servidor.
Estado de gerenciamento¶
O projeto usa principalmente flutter_bloc/Cubit e GetIt. provider continua presente em partes como tema e compatibilidade. A regra de engenharia versionada é não misturar padrões dentro de uma mesma feature e manter lógica crítica fora dos widgets.
Documentos históricos versus implementação¶
O README.md raiz ainda contém trechos de versões anteriores, como recorrência de seis meses, créditos e geofencing apresentado como fluxo obrigatório. Esses trechos não representam o contrato atual. Para manutenção da versão 1.2.x, use esta ordem:
- implementação atual;
- testes;
firebase.json, Rules, manifests e configuração executável;- documentação ativa em
context/; - material histórico.