def normalize_text(text: str) -> str: return (text or "").strip().lower() def contains_any(text: str, keywords: list) -> bool: return any(k in text for k in keywords) def is_greeting(text: str) -> bool: t = normalize_text(text) return contains_any(t, [ "اهلا", "أهلا", "مرحبا", "هاي", "hello", "hi", "السلام عليكم", "سلام عليكم", "مساء الخير", "صباح الخير", "مساء الفل", "صباح الفل" ]) def is_complaint(text: str) -> bool: t = normalize_text(text) return contains_any(t, [ "شكوى", "شكاوي", "اشتكي", "مشكلة", "مشكلتي", "تذمر", "زعلان", "سيء", "خدمة سيئة", "عايز اشتكي", "عايزة اشتكي", "complaint" ]) def is_support_request(text: str) -> bool: t = normalize_text(text) return contains_any(t, [ "خدمة العملاء", "تواصل", "اكلم", "أكلم", "support", "عايز حد يرد", "عايزة حد يرد", "محتاج مساعدة", "محتاجه مساعدة" ]) def is_sales_request(text: str) -> bool: t = normalize_text(text) return contains_any(t, [ "اشتراك", "اشترك", "احجز", "عايز احجز", "عايزة احجز", "سعر", "الاسعار", "الأسعار", "بكام", "مبيعات" ]) def is_new_student(text: str) -> bool: t = normalize_text(text) return contains_any(t, [ "طالب جديد", "جديد", "عميل جديد", "اول مرة", "أول مرة", "لسه جديد", "مشترك جديد" ]) def is_current_student(text: str) -> bool: t = normalize_text(text) return contains_any(t, [ "طالب حالي", "حالي", "عميل حالي", "مشترك", "مشترك حالي", "انا طالب عندكم", "أنا طالب عندكم", "انا مشترك" ])