diff --git a/api/libs/email_i18n.py b/api/libs/email_i18n.py index 37ff1a438e..25f771c848 100644 --- a/api/libs/email_i18n.py +++ b/api/libs/email_i18n.py @@ -38,6 +38,8 @@ class EmailType(StrEnum): EMAIL_REGISTER = auto() EMAIL_REGISTER_WHEN_ACCOUNT_EXIST = auto() RESET_PASSWORD_WHEN_ACCOUNT_NOT_EXIST_NO_REGISTER = auto() + TRIGGER_EVENTS_LIMIT_SANDBOX = auto() + TRIGGER_EVENTS_LIMIT_PROFESSIONAL = auto() class EmailLanguage(StrEnum): @@ -445,6 +447,30 @@ def create_default_email_config() -> EmailI18nConfig: branded_template_path="clean_document_job_mail_template_zh-CN.html", ), }, + EmailType.TRIGGER_EVENTS_LIMIT_SANDBOX: { + EmailLanguage.EN_US: EmailTemplate( + subject="You’ve reached your Sandbox Trigger Events limit", + template_path="trigger_events_limit_template_en-US.html", + branded_template_path="without-brand/trigger_events_limit_template_en-US.html", + ), + EmailLanguage.ZH_HANS: EmailTemplate( + subject="您的 Sandbox 触发事件额度已用尽", + template_path="trigger_events_limit_template_zh-CN.html", + branded_template_path="without-brand/trigger_events_limit_template_zh-CN.html", + ), + }, + EmailType.TRIGGER_EVENTS_LIMIT_PROFESSIONAL: { + EmailLanguage.EN_US: EmailTemplate( + subject="You’ve reached your monthly Trigger Events limit", + template_path="trigger_events_limit_template_en-US.html", + branded_template_path="without-brand/trigger_events_limit_template_en-US.html", + ), + EmailLanguage.ZH_HANS: EmailTemplate( + subject="您的月度触发事件额度已用尽", + template_path="trigger_events_limit_template_zh-CN.html", + branded_template_path="without-brand/trigger_events_limit_template_zh-CN.html", + ), + }, EmailType.EMAIL_REGISTER: { EmailLanguage.EN_US: EmailTemplate( subject="Register Your {application_title} Account", diff --git a/api/templates/trigger_events_limit_template_en-US.html b/api/templates/trigger_events_limit_template_en-US.html new file mode 100644 index 0000000000..cec5ef7d38 --- /dev/null +++ b/api/templates/trigger_events_limit_template_en-US.html @@ -0,0 +1,133 @@ + + + +
+ + + + +
+ + Your workspace {{workspaceName}} has used all available Trigger Events for the + {{planName}} Plan (limit: {{planLimit}}). +
++ Workflows triggered by {{triggerSources}} events have been temporarily paused. +
++ To keep your workflows running without interruption, please upgrade your plan to unlock more Trigger Events. +
++ Trigger Events for the {{planName}} Plan {{resetDescription}}. +
+
+ + 您的工作区 {{workspaceName}} 已用完 Trigger Events,并耗尽 + {{planName}} 计划(上限:{{planLimit}}) 的全部额度。 +
++ 由 {{triggerSources}} 触发的工作流已被暂时暂停。 +
++ 为保证工作流不中断,请升级套餐以解锁更多触发事件额度。 +
++ {{planName}} 计划的触发事件额度{{resetDescription}}。 +
++ Your workspace {{workspaceName}} has used all available Trigger Events for the + {{planName}} Plan (limit: {{planLimit}}). +
++ Workflows triggered by {{triggerSources}} events have been temporarily paused. +
++ To keep your workflows running without interruption, please upgrade your plan to unlock more Trigger Events. +
++ Trigger Events for the {{planName}} Plan {{resetDescription}}. +
++ 您的工作区 {{workspaceName}} 已用完 Trigger Events,并耗尽 + {{planName}} 计划(上限:{{planLimit}}) 的全部额度。 +
++ 由 {{triggerSources}} 触发的工作流已被暂时暂停。 +
++ 为保证工作流不中断,请升级套餐以解锁更多触发事件额度。 +
++ {{planName}} 计划的触发事件额度{{resetDescription}}。 +
+