ADK-Bot / knowledge /replies.py
Mr-Help's picture
Update knowledge/replies.py
f12b328 verified
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": "ممكن توضّحلي قصدك أكتر؟ أو قولّي إذا كنت طالب جديد أو طالب حالي."
}