| 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": "ممكن توضّحلي قصدك أكتر؟ أو قولّي إذا كنت طالب جديد أو طالب حالي." |
| } |