feat: add proration invoice and reminder email templates#27246
feat: add proration invoice and reminder email templates#27246sean-brydon merged 3 commits intomainfrom
Conversation
8f29823 to
9f69f09
Compare
9f69f09 to
fea5046
Compare
Add email templates for monthly proration billing notifications: - ProrationInvoiceEmail: Sent when invoice is created for additional seats - ProrationReminderEmail: Sent 7 days later if invoice remains unpaid Includes: - React email templates using V2BaseEmailHtml - BaseEmail classes for rendering - Billing email service functions - Translation keys for email content Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fea5046 to
b23fdaa
Compare
| ); | ||
| } | ||
|
|
||
| await Promise.all(emailsToSend); |
There was a problem hiding this comment.
1 issue found across 7 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name="packages/emails/templates/proration-reminder-email.ts">
<violation number="1" location="packages/emails/templates/proration-reminder-email.ts:68">
P2: Use the existing translation keys for the plain-text body instead of embedding the English string directly so the reminder email localizes correctly.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
|
||
| protected getTextBody(): string { | ||
| const formattedAmount = (this.proration.proratedAmount / 100).toFixed(2); | ||
| return `Reminder: Your invoice of $${formattedAmount} for team ${this.team.name} is still unpaid. Please pay to avoid restrictions on adding new users.`; |
There was a problem hiding this comment.
P2: Use the existing translation keys for the plain-text body instead of embedding the English string directly so the reminder email localizes correctly.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/emails/templates/proration-reminder-email.ts, line 68:
<comment>Use the existing translation keys for the plain-text body instead of embedding the English string directly so the reminder email localizes correctly.</comment>
<file context>
@@ -0,0 +1,70 @@
+
+ protected getTextBody(): string {
+ const formattedAmount = (this.proration.proratedAmount / 100).toFixed(2);
+ return `Reminder: Your invoice of $${formattedAmount} for team ${this.team.name} is still unpaid. Please pay to avoid restrictions on adding new users.`;
+ }
+}
</file context>
Devin AI is addressing Cubic AI's review feedbackA Devin session has been created to address the issues identified by Cubic AI. |
|
I reviewed the Cubic AI feedback for this PR. The issue identified at Per my instructions, I'm only addressing issues with a confidence score of 9/10 or higher. Since this issue is below that threshold, I'm skipping it for now. The PR author or reviewers can decide whether to address this feedback manually. |
Summary
Changes
sendProrationInvoiceEmails,sendProrationReminderEmails)Test plan