File size: 3,349 Bytes
7875b25
 
 
1a92f7e
7875b25
1a92f7e
 
7875b25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dbe08e2
7875b25
 
 
 
 
 
1a92f7e
 
 
7875b25
dbe08e2
7875b25
1a92f7e
7875b25
 
 
a0dc3d4
 
 
d68bee0
 
 
 
a0dc3d4
7875b25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1a92f7e
7875b25
 
1a92f7e
c05b62e
6a3e1a1
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import os
from jinja2 import Environment, FileSystemLoader
from decimal import Decimal
from datetime import datetime


BUSINESS = "Buku Mbili Wifi"


class MessageTemplate:
    def __init__(self):
        # Set the template directory to the same directory as this file
        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."""
        formatted_expiry_date = expiry_date.strftime(
            "%Y-%m-%d %H:%M:%S"
        )  # Format the date and time
        return self.render_template(
            "Payment.md",
            amount=amount,
            expiry_date=formatted_expiry_date,
            business_name=business_name,
        )

    def payment_success_subscription_message(
        self, user_name: str, amount: Decimal, plan_name: str
    ):
        formatted_amount = (
            f"{amount:,.2f}"  # Format the amount with commas and two decimal places
        )
        return f"Ndugu {user_name}, Nimepokea kiasi cha shilingi {formatted_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:,.2f}, Zilizotolewa: {provided_amount:,.2f}. 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:,.2f} limeongezwa kwa mafanikio kwenye akaunti yako. Salio lako jipya ni {new_balance:,.2f}."

    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. "