Ir para o conteúdo

ADR: domínio cashbook

Status: aceita em 2026-09-27. Livros, tipos e a porta do extrato na fase 1 estão em Fase 1 do caixa.

Contexto

O caixa pessoal e o profissional precisam de razão própria. O domínio financial guarda lançamento de imóvel, com categorias de obra, PROPERTY e FLIPPING_DEAL. O domínio budget é orçamento de reforma por imóvel. O pacote bank normaliza extrato, mas trata todo crédito como entrada. O pacote message só envia e-mail.

O PRD pede receita e despesa reais, sem misturar isso com imóvel.

Decisão

Nasce o domínio cashbook, com stack CDK e tabela próprias, no mesmo padrão de um stack por domínio. A API fica nesse domínio, no caminho /cashbook. Ele não grava em FinancialEntry e não usa budget.

O extrato normalizado continua em bank. Qualquer origem publica o evento que já existe, TRANSACTIONS_CAPTURED. Conta antiga sem livro continua válida. O campo de livro é opcional.

A conta PJ do Inter permanece no pacote inter, na coleta de hora em hora de saldo e extrato detalhado, e passa a estar ligada ao livro PJ.

Arquivo e e-mail são produtores à parte. Eles entregam extrato para a fila do bank ou a conta prevista para o cashbook. message não vira leitor de caixa.

Consequências

O financeiro de imóveis permanece como está. O resumo do bank não é a fonte do resultado do mês. O desenho do fluxo e do pareamento está em Cashbook.

Alternativas

Estender FinancialEntry com categoria pessoal foi rejeitado: mistura imóvel, pessoa e empresa na mesma razão. Usar budget foi rejeitado: ele é orçamento de obra. Calcular o resultado dentro de bank foi rejeitado: lá todo crédito é entrada.