IA-987:feat(invoice): extend invoice-paid notification with billing details and...
Summary
Extends the invoice-paid notification with richer billing fields and migrates the Thymeleaf email template from the local project to S3, centralizing template management outside the codebase.
Changes
-
InvoiceNotificationService– addedpdfUrl,receiptNumber,periodStart,periodEnd, andplanNametosendInvoicePaidEmail -
InvoiceNotificationServiceImpl– removed directSpringTemplateEngine+ResourceBundleMessageSourceusage (which resolved and rendered the local template); replaced with the sharedEmailService+EmailTemplateConstantsabstraction which fetches the template from S3 at send time -
InvoicePaidNotificationRequest– added the five new fields to the DTO -
NotificationController– updated/invoice-paidto forward the new fields to the service
Motivation
Moving the template to S3 allows content updates (wording, layout, branding)
without requiring a redeployment. The local Thymeleaf rendering pipeline is no
longer needed as the EmailService abstraction handles template fetching and
rendering against S3-hosted templates.
Notes
- The invoice HTML template has been removed from the project resources and uploaded to S3
- All new fields are null-safe with sensible fallbacks
- URL fields are
&-escaped to handle special characters safely in HTML email bodies