Pular para conteúdo

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:

  1. entidade/value object e contrato no aivaleu_domain;
  2. implementação do contrato em aivaleu_data;
  3. wiring via GetIt no app consumidor;
  4. Cubit/Bloc para estado de apresentação;
  5. widget/tela apenas para apresentação e interação;
  6. 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:

  1. implementação atual;
  2. testes;
  3. firebase.json, Rules, manifests e configuração executável;
  4. documentação ativa em context/;
  5. material histórico.