Phase 3 & Phase 4 - Completed
This commit is contained in:
112
backend/igny8_core/templates/emails/base.html
Normal file
112
backend/igny8_core/templates/emails/base.html
Normal file
@@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}IGNY8{% endblock %}</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333333;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.container {
|
||||
max-width: 600px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
.header {
|
||||
text-align: center;
|
||||
padding: 30px 0;
|
||||
background-color: #ffffff;
|
||||
border-bottom: 3px solid #6366f1;
|
||||
}
|
||||
.logo {
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
color: #6366f1;
|
||||
text-decoration: none;
|
||||
}
|
||||
.content {
|
||||
background-color: #ffffff;
|
||||
padding: 40px 30px;
|
||||
}
|
||||
.footer {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
color: #888888;
|
||||
font-size: 12px;
|
||||
}
|
||||
.button {
|
||||
display: inline-block;
|
||||
padding: 12px 30px;
|
||||
background-color: #6366f1;
|
||||
color: #ffffff !important;
|
||||
text-decoration: none;
|
||||
border-radius: 6px;
|
||||
font-weight: 600;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.button:hover {
|
||||
background-color: #4f46e5;
|
||||
}
|
||||
.info-box {
|
||||
background-color: #f8fafc;
|
||||
border-left: 4px solid #6366f1;
|
||||
padding: 15px 20px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.warning-box {
|
||||
background-color: #fef3c7;
|
||||
border-left: 4px solid #f59e0b;
|
||||
padding: 15px 20px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.success-box {
|
||||
background-color: #d1fae5;
|
||||
border-left: 4px solid #10b981;
|
||||
padding: 15px 20px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
color: #1f2937;
|
||||
}
|
||||
a {
|
||||
color: #6366f1;
|
||||
}
|
||||
.details-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 15px 0;
|
||||
}
|
||||
.details-table td {
|
||||
padding: 8px 0;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
}
|
||||
.details-table td:first-child {
|
||||
color: #6b7280;
|
||||
width: 40%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<a href="{{ frontend_url }}" class="logo">IGNY8</a>
|
||||
</div>
|
||||
<div class="content">
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
<div class="footer">
|
||||
<p>© {{ current_year|default:"2026" }} IGNY8. All rights reserved.</p>
|
||||
<p>
|
||||
<a href="{{ frontend_url }}/privacy">Privacy Policy</a> |
|
||||
<a href="{{ frontend_url }}/terms">Terms of Service</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
33
backend/igny8_core/templates/emails/email_verification.html
Normal file
33
backend/igny8_core/templates/emails/email_verification.html
Normal file
@@ -0,0 +1,33 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Verify Your Email{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Verify Your Email Address</h1>
|
||||
|
||||
<p>Hi {{ user_name }},</p>
|
||||
|
||||
<p>Thanks for signing up! Please verify your email address by clicking the button below:</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ verification_url }}" class="button">Verify Email</a>
|
||||
</p>
|
||||
|
||||
<div class="info-box">
|
||||
<strong>Why verify?</strong>
|
||||
<ul style="margin: 10px 0 0 0; padding-left: 20px;">
|
||||
<li>Secure your account</li>
|
||||
<li>Receive important notifications</li>
|
||||
<li>Access all features</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p>If you didn't create an account, you can safely ignore this email.</p>
|
||||
|
||||
<p>If the button doesn't work, copy and paste this link into your browser:</p>
|
||||
<p style="word-break: break-all; color: #6b7280; font-size: 14px;">{{ verification_url }}</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
39
backend/igny8_core/templates/emails/low_credits.html
Normal file
39
backend/igny8_core/templates/emails/low_credits.html
Normal file
@@ -0,0 +1,39 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Low Credits Warning{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Low Credits Warning</h1>
|
||||
|
||||
<p>Hi {{ account_name }},</p>
|
||||
|
||||
<div class="warning-box">
|
||||
<strong>Heads up!</strong> Your credit balance is running low.
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">Credit Status</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Current Balance</td>
|
||||
<td><strong style="color: #dc2626;">{{ current_credits }} credits</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Warning Threshold</td>
|
||||
<td>{{ threshold }} credits</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>To avoid service interruption, we recommend topping up your credits soon.</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ topup_url }}" class="button">Buy More Credits</a>
|
||||
</p>
|
||||
|
||||
<p><strong>Tip:</strong> Consider enabling auto-top-up in your account settings to never run out of credits again!</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
31
backend/igny8_core/templates/emails/password_reset.html
Normal file
31
backend/igny8_core/templates/emails/password_reset.html
Normal file
@@ -0,0 +1,31 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Reset Your Password{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Reset Your Password</h1>
|
||||
|
||||
<p>Hi {{ user_name }},</p>
|
||||
|
||||
<p>We received a request to reset your password. Click the button below to create a new password:</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ reset_url }}" class="button">Reset Password</a>
|
||||
</p>
|
||||
|
||||
<div class="warning-box">
|
||||
<strong>Important:</strong>
|
||||
<ul style="margin: 10px 0 0 0; padding-left: 20px;">
|
||||
<li>This link expires in 24 hours</li>
|
||||
<li>If you didn't request this, you can safely ignore this email</li>
|
||||
<li>Your password won't change until you create a new one</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p>If the button doesn't work, copy and paste this link into your browser:</p>
|
||||
<p style="word-break: break-all; color: #6b7280; font-size: 14px;">{{ reset_url }}</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
47
backend/igny8_core/templates/emails/payment_approved.html
Normal file
47
backend/igny8_core/templates/emails/payment_approved.html
Normal file
@@ -0,0 +1,47 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Payment Approved{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Payment Approved!</h1>
|
||||
|
||||
<p>Hi {{ account_name }},</p>
|
||||
|
||||
<div class="success-box">
|
||||
<strong>Great news!</strong> Your payment has been approved and your account is now active.
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">Payment Details</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Invoice</td>
|
||||
<td><strong>#{{ invoice_number }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Amount</td>
|
||||
<td><strong>{{ currency }} {{ amount }}</strong></td>
|
||||
</tr>
|
||||
{% if plan_name and plan_name != 'N/A' %}
|
||||
<tr>
|
||||
<td>Plan</td>
|
||||
<td>{{ plan_name }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td>Approved</td>
|
||||
<td>{{ approved_at|date:"F j, Y H:i" }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>You can now access all features of your plan. Log in to get started!</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ dashboard_url }}" class="button">Go to Dashboard</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thank you for choosing IGNY8!<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,45 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Payment Confirmation Received{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Payment Confirmation Received</h1>
|
||||
|
||||
<p>Hi {{ account_name }},</p>
|
||||
|
||||
<p>We have received your payment confirmation and it is now being reviewed by our team.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">Payment Details</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Invoice</td>
|
||||
<td><strong>#{{ invoice_number }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Amount</td>
|
||||
<td><strong>{{ currency }} {{ amount }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Payment Method</td>
|
||||
<td>{{ payment_method }}</td>
|
||||
</tr>
|
||||
{% if manual_reference %}
|
||||
<tr>
|
||||
<td>Reference</td>
|
||||
<td>{{ manual_reference }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td>Submitted</td>
|
||||
<td>{{ created_at|date:"F j, Y H:i" }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>We typically process payments within 1-2 business days. You'll receive another email once your payment has been approved and your account is activated.</p>
|
||||
|
||||
<p>
|
||||
Thank you for your patience,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
39
backend/igny8_core/templates/emails/payment_failed.html
Normal file
39
backend/igny8_core/templates/emails/payment_failed.html
Normal file
@@ -0,0 +1,39 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Payment Failed{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Payment Failed - Action Required</h1>
|
||||
|
||||
<p>Hi {{ account_name }},</p>
|
||||
|
||||
<div class="warning-box">
|
||||
We were unable to process your payment for the <strong>{{ plan_name }}</strong> plan.
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">Details</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Plan</td>
|
||||
<td>{{ plan_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Reason</td>
|
||||
<td style="color: #dc2626;">{{ failure_reason }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>Please update your payment method to continue your subscription and avoid service interruption.</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ billing_url }}" class="button">Update Payment Method</a>
|
||||
</p>
|
||||
|
||||
<p>If you need assistance, please contact our support team by replying to this email.</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
49
backend/igny8_core/templates/emails/payment_rejected.html
Normal file
49
backend/igny8_core/templates/emails/payment_rejected.html
Normal file
@@ -0,0 +1,49 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Payment Declined{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Payment Declined</h1>
|
||||
|
||||
<p>Hi {{ account_name }},</p>
|
||||
|
||||
<div class="warning-box">
|
||||
Unfortunately, we were unable to approve your payment for Invoice <strong>#{{ invoice_number }}</strong>.
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">Details</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Invoice</td>
|
||||
<td><strong>#{{ invoice_number }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Amount</td>
|
||||
<td>{{ currency }} {{ amount }}</td>
|
||||
</tr>
|
||||
{% if manual_reference %}
|
||||
<tr>
|
||||
<td>Reference</td>
|
||||
<td>{{ manual_reference }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td>Reason</td>
|
||||
<td style="color: #dc2626;">{{ reason }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>You can retry your payment by logging into your account:</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ billing_url }}" class="button">Retry Payment</a>
|
||||
</p>
|
||||
|
||||
<p>If you believe this is an error or have questions, please contact our support team by replying to this email.</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
49
backend/igny8_core/templates/emails/refund_notification.html
Normal file
49
backend/igny8_core/templates/emails/refund_notification.html
Normal file
@@ -0,0 +1,49 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Refund Processed{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Refund Processed</h1>
|
||||
|
||||
<p>Hi {{ user_name }},</p>
|
||||
|
||||
<div class="success-box">
|
||||
Your refund has been processed successfully.
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">Refund Details</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Invoice</td>
|
||||
<td><strong>#{{ invoice_number }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Original Amount</td>
|
||||
<td>{{ currency }} {{ original_amount }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Refund Amount</td>
|
||||
<td><strong>{{ currency }} {{ refund_amount }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Reason</td>
|
||||
<td>{{ reason }}</td>
|
||||
</tr>
|
||||
{% if refunded_at %}
|
||||
<tr>
|
||||
<td>Processed</td>
|
||||
<td>{{ refunded_at|date:"F j, Y H:i" }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>The refund will appear in your original payment method within 5-10 business days, depending on your bank or card issuer.</p>
|
||||
|
||||
<p>If you have any questions about this refund, please contact our support team by replying to this email.</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,41 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Subscription Activated{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Your Subscription is Active!</h1>
|
||||
|
||||
<p>Hi {{ account_name }},</p>
|
||||
|
||||
<div class="success-box">
|
||||
Your <strong>{{ plan_name }}</strong> subscription is now active!
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">What's Included</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Plan</td>
|
||||
<td><strong>{{ plan_name }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Credits</td>
|
||||
<td><strong>{{ included_credits }}</strong> credits added to your account</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Active Until</td>
|
||||
<td>{{ period_end|date:"F j, Y" }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>You now have full access to all features included in your plan. Start exploring what IGNY8 can do for you!</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ dashboard_url }}" class="button">Go to Dashboard</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thank you for choosing IGNY8!<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,41 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Subscription Renewal Reminder{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Subscription Renewal Reminder</h1>
|
||||
|
||||
<p>Hi {{ account_name }},</p>
|
||||
|
||||
<p>Your subscription will be renewed in <strong>{{ days_until_renewal }} days</strong>.</p>
|
||||
|
||||
<div class="info-box">
|
||||
<h3 style="margin-top: 0;">Subscription Details</h3>
|
||||
<table class="details-table">
|
||||
<tr>
|
||||
<td>Plan</td>
|
||||
<td><strong>{{ plan_name }}</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Renewal Date</td>
|
||||
<td>{{ renewal_date|date:"F j, Y" }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Amount</td>
|
||||
<td><strong>{{ currency }} {{ amount }}</strong></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>Your payment method will be charged automatically on the renewal date.</p>
|
||||
|
||||
<p>To manage your subscription or update your payment details:</p>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ subscription_url }}" class="button">Manage Subscription</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
30
backend/igny8_core/templates/emails/welcome.html
Normal file
30
backend/igny8_core/templates/emails/welcome.html
Normal file
@@ -0,0 +1,30 @@
|
||||
{% extends "emails/base.html" %}
|
||||
{% block title %}Welcome to IGNY8{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Welcome to IGNY8!</h1>
|
||||
|
||||
<p>Hi {{ user_name }},</p>
|
||||
|
||||
<p>We're excited to have you on board! Your account <strong>{{ account_name }}</strong> is ready to go.</p>
|
||||
|
||||
<div class="success-box">
|
||||
<strong>What's next?</strong>
|
||||
<ul style="margin: 10px 0 0 0; padding-left: 20px;">
|
||||
<li>Explore your dashboard</li>
|
||||
<li>Set up your first project</li>
|
||||
<li>Connect your integrations</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p style="text-align: center;">
|
||||
<a href="{{ login_url }}" class="button">Go to Dashboard</a>
|
||||
</p>
|
||||
|
||||
<p>If you have any questions, our support team is here to help. Just reply to this email or visit our help center.</p>
|
||||
|
||||
<p>
|
||||
Best regards,<br>
|
||||
The IGNY8 Team
|
||||
</p>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user