File size: 5,226 Bytes
f12b328
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16ce4cf
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
from engine.states import (
    WAITING_MAIN_MENU,
    WAITING_USER_TYPE,
    WAITING_AUDIENCE,
    WAITING_PRIOR_STUDY,
    WAITING_BEGINNER_SCHEDULE_CHOICE,
    WAITING_PDF_102_CONFIRMATION,
    WAITING_PLACEMENT_TEST_CONFIRMATION,
    WAITING_CURRENT_STUDENT_ACTION,
    WAITING_SUPPORT_QUESTION,
    WAITING_LEVEL_SELECTION,
    WAITING_PAYMENT_METHOD,
    HANDOFF_DONE,
)

BEGINNER_SCHEDULE_LINK = "https://shorturl.at/8jCSz"
PLACEMENT_TEST_LINK = "https://shorturl.at/qj3HD"


def greeting_main_menu_reply(flow_data=None):
    return {
        "next_state": WAITING_MAIN_MENU,
        "flow_data": flow_data or {},
        "reply": (
            "أهلاً بيك في ÄDK 👋\n"
            "أنا مساعد ÄDK.\n"
            "قولّي تحب تبدأ، أو ابعت سؤالك مباشرة."
        )
    }


def ask_new_or_current_reply(flow_data=None):
    return {
        "next_state": WAITING_USER_TYPE,
        "flow_data": flow_data or {},
        "reply": (
            "محتاج أعرف الأول:\n"
            "إنت طالب جديد ولا طالب حالي؟"
        )
    }


def ask_audience_reply(flow_data=None):
    return {
        "next_state": WAITING_AUDIENCE,
        "flow_data": flow_data or {},
        "reply": "تمام، الكورس للكبار ولا للأطفال؟"
    }


def ask_prior_study_reply(flow_data=None):
    return {
        "next_state": WAITING_PRIOR_STUDY,
        "flow_data": flow_data or {},
        "reply": "هل درست اللغة الألمانية قبل كده؟ رد بنعم أو لا."
    }


def beginner_schedule_reply(flow_data=None):
    audience = (flow_data or {}).get("audience")
    audience_label = "الأطفال" if audience == "children" else "الكبار"

    return {
        "next_state": WAITING_BEGINNER_SCHEDULE_CHOICE,
        "flow_data": flow_data or {},
        "reply": (
            f"تمام، بما إنك/إنكِ لسه بادئ/بادئة، دي مواعيد كورسات المبتدئين لفئة {audience_label}:\n"
            f"{BEGINNER_SCHEDULE_LINK}\n"
            "بعد ما تراجع المواعيد، ابعتلي تم أو قولّي تحب نكمّل الحجز."
        )
    }


def pdf_102_reply(flow_data=None):
    return {
        "next_state": WAITING_PDF_102_CONFIRMATION,
        "flow_data": flow_data or {},
        "reply": (
            "موجود ملف يحتوي على كل التفاصيل الخاصة بإجراءات الحجز والمتابعة.\n"
            "برجاء الاطلاع عليه والرد بكلمة تم.\n"
            "بعدها هنبعت لك طرق الدفع وإجراءات الحجز."
        )
    }


def placement_test_reply(flow_data=None):
    audience = (flow_data or {}).get("audience")
    audience_label = "الأطفال" if audience == "children" else "الكبار"

    return {
        "next_state": WAITING_PLACEMENT_TEST_CONFIRMATION,
        "flow_data": flow_data or {},
        "reply": (
            f"تمام، بما إنك درست ألماني قبل كده، تقدر تحجز اختبار تحديد مستوى لفئة {audience_label}.\n"
            "سعر الاختبار 300 جنيه.\n"
            f"المواعيد من هنا:\n{PLACEMENT_TEST_LINK}\n"
            "بعد ما تراجع المواعيد، ابعتلي تم."
        )
    }


def current_student_menu_reply(flow_data=None):
    return {
        "next_state": WAITING_CURRENT_STUDENT_ACTION,
        "flow_data": flow_data or {},
        "reply": "تمام، تحب تعمل استفسار بخصوص الكورس ولا حجز المستوى التالي؟"
    }


def support_question_reply(flow_data=None):
    return {
        "next_state": WAITING_SUPPORT_QUESTION,
        "flow_data": flow_data or {},
        "reply": "اكتبلي استفسارك بالتفصيل، وأنا هرفعه لفريق خدمة العملاء."
    }


def ask_level_selection_reply(flow_data=None):
    return {
        "next_state": WAITING_LEVEL_SELECTION,
        "flow_data": flow_data or {},
        "reply": (
            "تمام، قولّي المستوى اللي تحب تحجزه:\n"
            "1A / 2A / 1B / 1C2/B"
        )
    }


def payment_methods_reply(flow_data=None):
    return {
        "next_state": WAITING_PAYMENT_METHOD,
        "flow_data": flow_data or {},
        "reply": (
            "طرق الدفع المتاحة:\n"
            "- في الفرع\n"
            "- تحويل بنكي\n"
            "- Vodafone Cash\n"
            "- Visa\n"
            "- تقسيط Value\n"
            "اختار الطريقة المناسبة لك."
        )
    }


def handoff_done_reply(flow_data=None):
    return {
        "next_state": HANDOFF_DONE,
        "flow_data": flow_data or {},
        "reply": "تمام، تم رفع طلبك للفريق المختص وهيتم التواصل معاك قريب."
    }


def unknown_reply(flow_data=None):
    return {
        "next_state": WAITING_MAIN_MENU,
        "flow_data": flow_data or {},
        "reply": "ممكن توضّحلي قصدك أكتر؟ أو قولّي إذا كنت طالب جديد أو طالب حالي."
    }