// SupportWidget.jsx — لوحةُ الدعم الجانبية: محادثةٌ مع مساعدِ الدعم + تذكرةٌ للفريق
//
// ⚠️ **مساعدُ الدعم يجيبُ عمّا يعرفُه فقط.** إجاباتُه مكتوبةٌ هنا في `KB` — ليست
// مولَّدةً ولا متّصلةً بنموذجٍ لغويّ. فإن لم يجدْ جواباً قال ذلك صراحةً وفتح
// التذكرة، ولم يخترعْ جواباً. (لوصلِه بمساعدٍ حقيقيٍّ لاحقاً: بدِّلْ `askSupport`
// وحدَها بنداءِ الخادم — بقيةُ اللوحةِ لا تتغيّر.)
/* ── قاعدةُ معرفةِ الدعم: كلماتٌ مفتاحيةٌ ← جواب ──
⚠️ **لغةُ الموقع فصحى.** كلُّ ما يقرؤه المستخدمُ هنا مكتوبٌ بالعربية الفصيحة،
ولا تُستعمَلُ العاميّةُ في نصوصِ الواجهةِ ألبتّة. */
const SUPPORT_KB = [
{
k: ['اشتراك', 'الباقة', 'باقة', 'ترقية', 'خطة', 'الأسعار', 'سعر', 'دفع', 'تجديد'],
a: 'تجد الباقات وأسعارها في صفحة **الاشتراكات** من القائمة الجانبية، ويمكنك تغيير باقتك أو إلغاؤها من الصفحة نفسها في أي وقت.',
},
{
k: ['كريدت', 'رصيد', 'نقاط', 'استهلاك', 'انتهى'],
a: 'يُخصم من رصيدك كريدت واحد عن كل سؤال تُرسله إلى المساعد القانوني، ويتجدد الرصيد مع باقتك. يظهر رصيدك الحالي في أعلى الصفحة، ويمكنك زيادته من صفحة **الاشتراكات**.',
},
{
k: ['بحث', 'أبحث', 'محرك', 'نظام', 'مادة', 'لائحة', 'أجد'],
a: 'استخدم **محرك البحث القانوني** من القائمة، واكتب رقم المادة أو جزءاً من نصها أو اسم النظام. تظهر النتائج مقرونةً بمصدرها الرسمي وتاريخ آخر تعديل عليها.',
},
{
k: ['ملف', 'ملفاتي', 'رفع', 'أرفع', 'عقد', 'مستند', 'pdf'],
a: 'من **ملفاتي** يمكنك رفع عقودك ومستنداتك وتنظيمها في مجلدات، ثم سؤال المساعد عن أي ملف منها.',
},
{
k: ['حساب', 'بياناتي', 'الاسم', 'الجوال', 'صورة', 'الملف الشخصي', 'تعديل بياناتي'],
a: 'تُعدَّل بياناتك من **الملف الشخصي**: اضغط صورتك في أعلى الصفحة، ثم اختر «الملف الشخصي».',
},
{
k: ['كلمة المرور', 'كلمة السر', 'نسيت', 'استعادة'],
a: 'من شاشة تسجيل الدخول اضغط **«نسيت كلمة المرور؟»**، وسيصلك رابط الاستعادة على بريدك الإلكتروني.',
},
{
k: ['خروج', 'تسجيل الخروج'],
a: 'لتسجيل الخروج: اضغط صورتك في أعلى الصفحة، ثم اختر **تسجيل الخروج**.',
},
{
k: ['محامي', 'محامين', 'استشارة', 'جلسة', 'حجز'],
a: 'خدمة التواصل مع المحامين مؤجَّلة ولا تتوفر في هذه النسخة. المتاح الآن: المساعد القانوني، ومحرك البحث، وملفاتي.',
},
{
k: ['خطأ', 'مشكلة', 'لا يعمل', 'عطل', 'بطيء', 'توقف'],
a: 'أعِد تحديث الصفحة أولاً. فإن استمرت المشكلة، افتح تبويب **«تذكرة دعم»** أعلاه واكتب تفاصيلها، ليطّلع عليها الفريق.',
},
];
const SUPPORT_GREETING =
'أهلاً بك 👋 أنا مساعد الدعم، وأجيب عن أسئلة استخدام المنصة: الاشتراكات، والكريدت، والبحث، والملفات، والحساب.\n\nتفضّل بسؤالك. وإن كان خارج هذا النطاق، فتحتُ لك تذكرةً لدى الفريق.';
const SUPPORT_UNKNOWN =
'ليست لديّ إجابة مؤكدة عن هذا السؤال، ولن أخمّن.\n\nافتح تبويب **«تذكرة دعم»** أعلاه واكتب سؤالك ليجيبك الفريق. أو اسألني عن: الاشتراكات · الكريدت · البحث · الملفات · الحساب.';
/** جوابُ مساعدِ الدعم — مطابقةُ كلماتٍ مفتاحية، بلا توليد. */
function askSupport(text) {
const q = (text || '').toLowerCase();
let best = null, bestScore = 0;
for (const item of SUPPORT_KB) {
const score = item.k.reduce((n, w) => (q.includes(w) ? n + 1 : n), 0);
if (score > bestScore) { best = item; bestScore = score; }
}
return bestScore > 0 ? best.a : SUPPORT_UNKNOWN;
}
/** عرضٌ بسيطٌ لـ**التغليظ** داخل نصّ الرسالة. */
function SupportText({ text }) {
const parts = String(text).split(/(\*\*[^*]+\*\*)/g);
return (
{parts.map((p, i) =>
p.startsWith('**') && p.endsWith('**')
? {p.slice(2, -2)}
:
تم الإرسال!
سنرد عليك في أقرب وقت