feat: add renewal invoice sweep #20

Merged
sirily merged 3 commits from feat/renewal-invoice-window into master 2026-03-11 12:33:04 +03:00
Owner

Refs #9

Summary

  • add a worker-side renewal invoice sweep that creates one invoice 72 hours before subscription expiry
  • expire elapsed pending invoices automatically and email users when an automatic renewal invoice is created
  • stop auto-recreating invoices for the same paid cycle once any invoice already exists for that cycle
  • document the current renewal-invoice and pending-invoice expiry behavior

Testing

  • built infra/docker/web.Dockerfile
  • ran pnpm --filter @nproxy/db test inside the built container
  • verified @nproxy/db build and @nproxy/web build during the image build
  • built infra/docker/worker.Dockerfile
Refs #9 ## Summary - add a worker-side renewal invoice sweep that creates one invoice 72 hours before subscription expiry - expire elapsed pending invoices automatically and email users when an automatic renewal invoice is created - stop auto-recreating invoices for the same paid cycle once any invoice already exists for that cycle - document the current renewal-invoice and pending-invoice expiry behavior ## Testing - built `infra/docker/web.Dockerfile` - ran `pnpm --filter @nproxy/db test` inside the built container - verified `@nproxy/db build` and `@nproxy/web build` during the image build - built `infra/docker/worker.Dockerfile`
sirily added 1 commit 2026-03-10 18:46:36 +03:00
sirily added 1 commit 2026-03-11 12:09:47 +03:00
sirily added 1 commit 2026-03-11 12:29:51 +03:00
sirily merged commit 9641678fa3 into master 2026-03-11 12:33:04 +03:00
sirily deleted branch feat/renewal-invoice-window 2026-03-11 12:33:04 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sirily/nroxy#20