feat: Email templates, bulk delete, communication credits, plan features
- Add email template presets for Browse Templates tab (12 templates) - Add bulk selection and deletion for My Templates tab - Add communication credits system with Twilio integration - Add payment views for credit purchases and auto-reload - Add SMS reminder and masked calling plan permissions - Fix appointment status mapping (frontend/backend mismatch) - Clear masquerade stack on login/logout for session hygiene - Update platform settings with credit configuration - Add new migrations for Twilio and Stripe payment fields 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
57
email_templates/marketing/minimalist_promo.html
Normal file
57
email_templates/marketing/minimalist_promo.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Marketing - Minimalist Promo</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #ffffff; font-family: 'Courier New', Courier, monospace;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation" style="border: 2px solid #000000;">
|
||||
<!-- Big Hero Image -->
|
||||
<tr>
|
||||
<td>
|
||||
<img src="https://placehold.co/600x400/000000/ffffff?text=FLASH+SALE&font=monoton" alt="Flash Sale" style="width: 100%; height: auto; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 40px; text-align: center;">
|
||||
<h1 style="margin: 0 0 20px; color: #000000; font-size: 36px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px;">
|
||||
limited time only
|
||||
</h1>
|
||||
<p style="margin: 0 0 40px; color: #333333; font-size: 16px; line-height: 1.6; font-family: 'Helvetica', sans-serif;">
|
||||
Treat yourself to something special. For the next 48 hours, get exclusive access to our VIP booking slots and a special discount.
|
||||
</p>
|
||||
|
||||
<!-- Coupon Code Box -->
|
||||
<div style="border: 2px dashed #000000; padding: 20px; display: inline-block; margin-bottom: 40px;">
|
||||
<p style="margin: 0 0 5px; font-size: 12px; color: #666; font-family: sans-serif;">USE CODE:</p>
|
||||
<span style="font-size: 32px; font-weight: 900; color: #d946ef;">VIP20</span>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<a href="#" style="background-color: #000000; color: #ffffff; padding: 18px 40px; text-decoration: none; font-weight: bold; font-size: 14px; text-transform: uppercase; display: inline-block;">
|
||||
Claim Offer
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="border-top: 2px solid #000000; padding: 20px; text-align: center;">
|
||||
<p style="margin: 0; font-size: 12px; color: #000000;">
|
||||
{{BUSINESS_NAME}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
88
email_templates/marketing/newsletter_grid.html
Normal file
88
email_templates/marketing/newsletter_grid.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Marketing - Newsletter Grid</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #e5e7eb; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Top Bar -->
|
||||
<tr>
|
||||
<td style="background-color: #374151; padding: 10px 0; text-align: center; color: #d1d5db; font-size: 12px;">
|
||||
View this email in your browser
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Logo Header -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation" style="margin-bottom: 20px;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h1 style="margin: 0; color: #1f2937; font-size: 28px; font-weight: 300; letter-spacing: 1px;">{{BUSINESS_NAME}} <span style="color: #3b82f6; font-weight: 700;">MONTHLY</span></h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Main Feature -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation" style="background-color: #ffffff; margin-bottom: 20px;">
|
||||
<tr>
|
||||
<td>
|
||||
<img src="https://placehold.co/640x320/3b82f6/ffffff?text=New+Service+Launch&font=roboto" alt="Feature" style="width: 100%; height: auto; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 30px;">
|
||||
<h2 style="margin: 0 0 10px; color: #111827; font-size: 24px;">Introducing Our New Premium Service</h2>
|
||||
<p style="margin: 0 0 20px; color: #4b5563; line-height: 1.6;">
|
||||
We've been listening to your feedback and are excited to announce a brand new way to experience {{BUSINESS_NAME}}. Our new premium tier offers extended hours and dedicated support.
|
||||
</p>
|
||||
<a href="#" style="color: #3b82f6; text-decoration: none; font-weight: 600;">Read more →</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Two Column Grid -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="310" valign="top" style="background-color: #ffffff; padding-bottom: 20px;">
|
||||
<img src="https://placehold.co/310x200/10b981/ffffff?text=Staff+Spotlight" alt="Staff" style="width: 100%; height: auto; display: block;">
|
||||
<div style="padding: 20px;">
|
||||
<h3 style="margin: 0 0 10px; color: #111827; font-size: 18px;">Employee of the Month</h3>
|
||||
<p style="margin: 0 0 15px; color: #6b7280; font-size: 14px; line-height: 1.5;">
|
||||
Meet Sarah, our lead specialist who has gone above and beyond this month.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
<td width="20"><!-- Gutter --></td>
|
||||
<td width="310" valign="top" style="background-color: #ffffff; padding-bottom: 20px;">
|
||||
<img src="https://placehold.co/310x200/f59e0b/ffffff?text=Community" alt="Community" style="width: 100%; height: auto; display: block;">
|
||||
<div style="padding: 20px;">
|
||||
<h3 style="margin: 0 0 10px; color: #111827; font-size: 18px;">Community Events</h3>
|
||||
<p style="margin: 0 0 15px; color: #6b7280; font-size: 14px; line-height: 1.5;">
|
||||
Join us this weekend for our local charity drive.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Footer -->
|
||||
<table width="640" cellpadding="0" cellspacing="0" role="presentation" style="margin-top: 40px;">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<p style="margin: 0 0 10px; color: #9ca3af; font-size: 12px;">
|
||||
© {{TODAY}} {{BUSINESS_NAME}}. All rights reserved.
|
||||
</p>
|
||||
<p style="margin: 0; color: #9ca3af; font-size: 12px;">
|
||||
{{BUSINESS_ADDRESS}}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
77
email_templates/marketing/welcome_vibrant.html
Normal file
77
email_templates/marketing/welcome_vibrant.html
Normal file
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Marketing - Vibrant</title>
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #ffffff; font-family: 'Verdana', sans-serif;">
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Colorful Top Bar -->
|
||||
<tr>
|
||||
<td height="8" style="background: linear-gradient(90deg, #8b5cf6 0%, #ec4899 100%);"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table width="600" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<!-- Logo -->
|
||||
<tr>
|
||||
<td align="center" style="padding-bottom: 40px;">
|
||||
<img src="https://placehold.co/80x80/8b5cf6/ffffff?text=S&font=montserrat" alt="SmoothSchedule" style="display: block; border-radius: 50%;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Hero -->
|
||||
<tr>
|
||||
<td align="center">
|
||||
<h1 style="margin: 0 0 20px; color: #111827; font-size: 42px; font-weight: 900; letter-spacing: -1px;">
|
||||
Welcome to the family.
|
||||
</h1>
|
||||
<p style="margin: 0 0 40px; color: #6b7280; font-size: 18px; max-width: 480px;">
|
||||
Thanks for joining <strong>{{BUSINESS_NAME}}</strong>! We're thrilled to have you on board.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Hero Image collage -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 40px;">
|
||||
<img src="https://placehold.co/600x300/f3f4f6/d1d5db?text=Lifestyle+Image+Collage" alt="Lifestyle" style="width: 100%; height: auto; border-radius: 12px; display: block;">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Features Grid -->
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
|
||||
<tr>
|
||||
<td width="33%" valign="top" style="padding-right: 10px;">
|
||||
<h3 style="margin: 0 0 8px; color: #111827; font-size: 16px;">Expert Staff</h3>
|
||||
<p style="margin: 0; color: #6b7280; font-size: 14px; line-height: 1.5;">Top-tier professionals ready to serve.</p>
|
||||
</td>
|
||||
<td width="33%" valign="top" style="padding: 0 10px;">
|
||||
<h3 style="margin: 0 0 8px; color: #111827; font-size: 16px;">Easy Booking</h3>
|
||||
<p style="margin: 0; color: #6b7280; font-size: 14px; line-height: 1.5;">Schedule anytime, anywhere.</p>
|
||||
</td>
|
||||
<td width="33%" valign="top" style="padding-left: 10px;">
|
||||
<h3 style="margin: 0 0 8px; color: #111827; font-size: 16px;">Best Value</h3>
|
||||
<p style="margin: 0; color: #6b7280; font-size: 14px; line-height: 1.5;">Premium service at great rates.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- CTA -->
|
||||
<tr>
|
||||
<td align="center" style="padding-top: 60px;">
|
||||
<a href="#" style="background-color: #111827; color: #ffffff; padding: 16px 40px; border-radius: 50px; text-decoration: none; font-weight: 600; font-size: 16px;">Book Your First Visit</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user