feat(inadimplencia): snapshot mensal automático com aviso de erro#130
Merged
Warleypablo merged 7 commits intomainfrom Apr 24, 2026
Merged
feat(inadimplencia): snapshot mensal automático com aviso de erro#130Warleypablo merged 7 commits intomainfrom
Warleypablo merged 7 commits intomainfrom
Conversation
Tabela cortex_core.inadimplencia_snapshots + job agendado para meio-dia do último dia de cada mês + aviso por email em caso de falha. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8 tasks: branch, migration, sendAlertEmail, service do job, endpoint manual, setup no index.ts, validação end-to-end, finalização. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tabela cortex_core.inadimplencia_snapshots para snapshot mensal do total de inadimplência. Upsert idempotente via UNIQUE(mes_referencia). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Função genérica para envio de alertas (sem BCC do jurídico). Reusa ensureConfig() já presente. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Job que roda ao meio-dia do último dia de cada mês, calcula o total de inadimplência (caz_parcelas.nao_pago) e faz upsert em inadimplencia_snapshots. Envia email para financeiro@turbopartners.com.br em caso de falha. Inclui recovery de restart e teste unitário do helper isLastDayOfMonth. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Permite disparar o snapshot fora do agendamento (recuperação após falha).
Body opcional { mesReferencia: 'YYYY-MM' } — padrão: mês corrente.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Chama setupInadimplenciaSnapshotJob() junto aos outros sync jobs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cortex_core.inadimplencia_snapshots— 1 linha por mês, upsert idempotente viaUNIQUE(mes_referencia).financeiro@turbopartners.com.brem caso de falha.POST /api/inadimplencia/snapshot/runpara disparo fora do agendamento.Arquitetura
migrations/2026-04-24_inadimplencia_snapshots.sql— schema.server/services/sendgrid-notification.ts— adicionasendAlertEmailgenérico (sem BCC do jurídico).server/services/inadimplenciaSnapshotJob.ts—runSnapshotJob,isLastDayOfMonth,setupInadimplenciaSnapshotJob, recovery + alerta.server/routes/inadimplencia.ts— endpointPOST /snapshot/run.server/index.ts— setup do job junto aos outros sync jobs.test/services/inadimplenciaSnapshotJob.test.ts— 7 testes do helper (inclui ano bissexto).Documentação
docs/superpowers/specs/2026-04-24-inadimplencia-snapshot-mensal-design.mddocs/superpowers/plans/2026-04-24-inadimplencia-snapshot-mensal.mdHistórico
Esta PR foi aberta originalmente como #129 stacked contra
feature/notificacao-extrajudicial-juridico. Quando aquela PR (#128) mergeou em main, a base desta foi deletada e GitHub fechou #129 automaticamente. Este é o PR de substituição contra main.Test plan
npx vitest run→ 7/7 passingnpx tsc --noEmitsem errosrunSnapshotJob()gravou R$ 744.599,36 / 141 clientes / 181 parcelas em 2026-04[inadimplencia-snapshot] Scheduled hourly check — trigger at 12:00 on last day of monthfinanceiro@turbopartners.com.br(MessageIdXWcbkzm6QsKLltggcHlmcg)🤖 Generated with Claude Code