feat: MJML sponsor-outreach email template #320
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/basketball-api#320
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Child of basketball-api#316 (sponsor outreach system). Independent — different file set, no code dependencies.
Repo
forgejo_admin/basketball-apiUser Story
As an admin,
I want a branded sponsor outreach email template,
So that sponsorship emails match the Westside Kings & Queens brand.
Context
Marcus has been sending plain text sponsor emails. We need one MJML template that renders to inline HTML for email client compatibility. The template uses the existing
load_email_template()system — compiled HTML with{{placeholder}}replacement.The template lives at
~/westside-email-templates/(hostPath mounted into the basketball-api pod). Source MJML compiles to HTML in thecompiled/directory. Existing templates: action.html, announcement.html, jersey-reminder.html, notification.html.File Targets
Files the agent should create:
src/sponsor-outreach.mjml— MJML source templatecompiled/sponsor-outreach.html— compiled outputFiles the agent should reference for style:
src/brand.mjml— shared brand include (colors, logo)compiled/jersey-reminder.html— reference for existing template stylecompiled/announcement.html— reference for layout patternsFiles the agent should NOT touch:
Acceptance Criteria
sponsor-outreach.mjmlexists with Westside branding (red/black, WKQ logo){{business_name}},{{pitch}},{{sender_name}},{{sender_phone}},{{sponsorship_tiers}}{{sponsorship_tiers}}renders as a formatted pricing table when populated (Title $5K+, Elite $2.5K, Team $1K, Social $500, Player $300-$1.2K), or is invisible when empty stringmjmlCLITest Expectations
npx mjml src/sponsor-outreach.mjml -o compiled/sponsor-outreach.htmlConstraints
{{key}}placeholders onlyChecklist
Related