Arquitetura

Stack, organização do código por domínio, fluxo de uma requisição e o estado de cada fase do projeto.

Esta seção é para quem mantém o sistema. O repositório é byeloff/auefolia-trio; o CLAUDE.md da raiz é a referência curta para agentes e o docs/plano-de-implementacao.md, o plano completo.

Stack

CamadaTecnologia
BackendLaravel 13 · PHP 8.3+ (8.4 em produção)
FrontendInertia · React 19 · TypeScript · Tailwind 4 · shadcn/ui · radix-ui
AutenticaçãoWorkOS (laravel/workos), com telas próprias e Magic Auth pela API
AutorizaçãoRBAC próprio + Policies (Gate::before: admin tudo, inativo nada)
BancoPostgreSQL 17
Filas, cache e sessãoRedis + Horizon
PDFsdompdf (contratos)
TestesPest 4 (contra PostgreSQL) · Vitest (front)
EstáticaLarastan nível 7 · tsc --noEmit
ObservabilidadeSentry · Horizon · logs estruturados

Domínios

O código de negócio fica em app/Domain, um diretório por domínio:

DomínioResponsabilidade
CatalogoEventos, pacotes, ofertas (embarque, hospedagem, opcional), preço e estoque
VendasReservas, itens, passageiros e o funil
FinanceiroParcelas, pagamentos, créditos, política de cancelamento, régua
ContratosModelos versionados, emissão imutável, assinatura e provedores
ComunicacaoE-mails transacionais e trilha em comunicacoes
IdentidadeUsuários, papéis, permissões, clientes, vendedores, WorkOS
OperacaoCredenciais e check-in (fase 9, não iniciada)

Cada domínio segue {Models,Actions,DTOs,Enums,Queries,Events,Jobs,Listeners}. Transversal em app/Support (value objects Dinheiro, Cpf, Percentual, Periodo; casts; auditoria; arquivos privados; ID cifrado na URL).

Fluxo de uma requisição

Controller valida (Form Request), chama a Action e devolve Inertia::render ou redirect. Componente React renderiza e chama endpoint. Efeitos colaterais vão por evento de domínio, nunca dentro da Action que confirma.

Rotas no front usam Wayfinder (resources/js/routes, resources/js/actions, gerados no build). Os tipos de domínio vêm de resources/js/types/domain.d.ts, gerado por php artisan types:generate.

Estado das fases

FaseStatus
0 a 7: fundação, value objects, RBAC, catálogo, vendas, financeiro, contratos, áreas do cliente e do vendedor✅
8: migração do legado (dump de 13/10/2026)✅
9: operação em campo (check-in)⏸️ aguardando o cliente
10: observabilidade e go-live✅ código; backup/restore e legado read-only na infra
11: comunicação e relatórios✅ (WhatsApp na régua depende de decisão)

Decisões em aberto

  1. Operação em campo entra no escopo?
  2. Aceite por clique basta juridicamente ou é preciso ICP-Brasil?
  3. Há outras marcas (multi-tenant)?
  4. Há obrigação de NFS-e?
  5. WhatsApp entra na régua de cobrança?
  6. Data de virada (go-live) na baixa temporada.

Nesta página