|
import os |
|
from jinja2 import Environment, FileSystemLoader |
|
from decimal import Decimal |
|
|
|
BUSINESS = "Goba Buku Wifi😉" |
|
|
|
|
|
class MessageTemplate: |
|
def __init__(self): |
|
|
|
template_dir = os.path.dirname(__file__) |
|
self.env = Environment(loader=FileSystemLoader(template_dir)) |
|
|
|
def render_template(self, template_name: str, **kwargs) -> str: |
|
"""Renders a template with provided variables.""" |
|
template = self.env.get_template(template_name) |
|
return template.render(**kwargs) |
|
|
|
def registration_message(self, user_name, business_name=BUSINESS): |
|
"""Generates the registration message for SMS.""" |
|
return self.render_template( |
|
"Registration.md", |
|
user_name=user_name, |
|
business_name=business_name, |
|
) |
|
|
|
def payment_confirmation_message(self, amount, expiry_date, business_name=BUSINESS): |
|
"""Generates the payment confirmation message for SMS.""" |
|
return self.render_template( |
|
"Payment.md", |
|
amount=amount, |
|
expiry_date=expiry_date, |
|
business_name=business_name, |
|
) |
|
|
|
def payment_success_subscription_message( |
|
self, user_name: str, amount: Decimal, plan_name: str |
|
): |
|
return f"Ndugu {user_name}, Nimepokea kiasi cha shilingi {amount}. Asante kwa kujiunga na {plan_name}" |
|
|
|
def account_disabled_message(self) -> str: |
|
return "Akaunti yako imezimwa. Tafadhali wasiliana na msaada kwa usaidizi." |
|
|
|
def account_enabled_message(self) -> str: |
|
return "Akaunti yako imewashwa. Sasa unaweza kufikia akaunti yako." |
|
|
|
def reset_token_message(self, token: str) -> str: |
|
return f"Tokeni yako ya kuweka upya nenosiri ni: {token}. Tafadhali tumia tokeni hii kuweka upya nenosiri lako." |
|
|
|
def password_reset_confirmation_message(self) -> str: |
|
return "Nenosiri lako limewekwa upya kwa mafanikio. Ikiwa hukufanya kitendo hiki, tafadhali wasiliana na msaada mara moja." |
|
|
|
def subscription_created_message(self, plan_name: str, expiration_time: str) -> str: |
|
return f"Habari! Usajili wako kwenye mpango wa {plan_name} umefanikiwa kuundwa. Utaisha tarehe {expiration_time}." |
|
|
|
def insufficient_funds_message( |
|
self, required_amount: Decimal, provided_amount: Decimal |
|
) -> str: |
|
return f"Pesa hazitoshi kwa mpango uliyochagua. Zinazohitajika: {required_amount}, Zilizotolewa: {provided_amount}. Tafadhali ongeza pesa zaidi au chagua mpango tofauti." |
|
|
|
def balance_assigned_message(self, amount: Decimal, new_balance: Decimal) -> str: |
|
return f"Habari! Salio la {amount} limeongezwa kwa mafanikio kwenye akaunti yako. Salio lako jipya ni {new_balance}." |
|
|
|
def subscription_expired_message( |
|
self, user_name: str, plan_name: str, business_name=BUSINESS |
|
) -> str: |
|
"""Generates a message when the subscription is over.""" |
|
return f"Habari {user_name}, Bando lako la {plan_name}, limeisha. " |
|
|