mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
Os tres consertos que o dono pediu para o modulo entrar (doc 66 do #1578), sobre o que o autor ja tinha feito: 1. Pagamento em dobro. A funcao ja trava a parcela com FOR UPDATE; faltava a idempotencia da rota. POST .../pagar passa por comIdempotencia (Idempotency-Key, recibo em idempotency_keys): o retry do MESMO pedido recebe o recibo do primeiro em vez de "ja paga", e a parcela entra no hash (mesma chave em outra parcela e conflito). A tela manda UMA chave por (parcela, conta) ate o pagamento terminar, entao o segundo clique leva a mesma chave. Recusa da funcao chega ao cliente como antes (422, 404, 403), nunca como 500; conta_invalida vira 422. 2. A porta do administrador ja estava no AdminSidebar (o autor a pos); ganha a guarda que faltava: tests/unit/admin-navegacao-completude.test.ts reprova tela de primeiro nivel de /admin sem entrada no menu. O navegacao-completude so cobre app/app. 3. LGPD. O export ja trazia contratos e parcelas; agora um erro de leitura que nao seja "modulo nao instalado" lanca, e o worker retenta em vez de entregar ao titular um export sem o contrato como se fosse completo (ADR-0002 D8). Anonimizacao: as tabelas nao guardam dado pessoal (valores e o vinculo com o caso), nada a apagar. Tambem: criar contrato confere que o lead e da propria organizacao (a FK passa por cima da RLS); textos da tela de modulos com t() e linha es; os fakes do sweep de silencio ganham o metodo do outro lado do merge. Co-authored-by: nsbastosconsultoria <nsbastosconsultoria@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>