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