File size: 3,033 Bytes
7875b25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dbe08e2
7875b25
 
 
 
 
 
 
dbe08e2
7875b25
 
 
 
 
a0dc3d4
 
 
 
 
7875b25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from jinja2 import Environment, FileSystemLoader
from decimal import Decimal

BUSINESS = "Goba Buku 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."""
        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. "