Quebrando monolitos: 3.683 linhas viram 5 arquivos
Split de 3 arquivos monolíticos (3683, 2460 e 2253 linhas), túnel PIX multi-gateway com Asaas e Inter, soft delete e auditoria de postagem_plataformas.
Quando um arquivo PHP chega a 3.683 linhas, não é um arquivo — é um monolito.
Hoje foi o dia de quebrar três deles. O maior: db.producoes.inc.php com 3.683 linhas foi dividido em 5 arquivos organizados por domínio. editar_producao.php com 2.460 linhas teve partials extraídas. revisar_arquivo.php com 2.253 linhas passou pelo mesmo processo.
O princípio é simples: arquivo grande demais é difícil de ler, difícil de testar e impossível de ter duas pessoas trabalhando sem conflito. A divisão por domínio significa que cada arquivo tem uma responsabilidade clara — funções de listagem aqui, funções de mutação ali, funções de relatório num terceiro. Quando precisa modificar algo, você sabe onde procurar.
db.producoes.inc.php (3683 linhas)
→ db.producoes.listagem.inc.php
→ db.producoes.mutacao.inc.php
→ db.producoes.arquivos.inc.php
→ db.producoes.demandas.inc.php
→ db.producoes.relatorio.inc.php
O segundo destaque do dia foi o túnel PIX multi-gateway: Asaas como primário, Inter como fallback. O padrão de túnel significa que se o Asaas falhar (timeout, indisponibilidade, erro), o sistema tenta automaticamente o Inter. Para o usuário, o PIX simplesmente funciona — a falha de um gateway não é visível.
Um detalhe importante na implementação: buscar cliente no Asaas por CPF antes de email. A API do Asaas pode ter clientes cadastrados com emails diferentes do email atual no kmaroteApp — o CPF é o identificador estável. Buscar por email causava duplicidade de clientes no Asaas.
Também implementei soft delete nas produções: em vez de deletar, o registro recebe um flag deleted_at. Junto com isso, uma tela de lixeira para admin recuperar produções deletadas.
No módulo postagem_plataformas: auditoria de segurança com CSRF, correção de IDOR em leituras e mutações, sanitização de XSS no exibeMensagem e remoção de $e->getMessage() das respostas ao usuário — mensagens de exceção PHP revelam estrutura interna do sistema.
23 commits. Dia completo.