feat: add renewal invoice sweep #20

Open
sirily wants to merge 1 commits from feat/renewal-invoice-window into master
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
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/renewal-invoice-window:feat/renewal-invoice-window
git checkout feat/renewal-invoice-window
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