Files
Siro/docs/04_features/CANCELLATION_POLICY_AR.md

7.8 KiB

سياسة الإلغاء والتعويض — سيرو

الغرض: مرجع واحد لخدمة العملاء، وأساس صفحة ويب عامة تُشرح للمستخدمين. آخر تحديث: 2026-08-07 الحالة: مبنية في الكود، معطّلة افتراضياً حتى تضبط الإدارة السقوف.


المبدأ الحاكم

من ضيّع وقت الآخر يعوّضه، والمال يذهب للطرف المتضرر لا للشركة.

هذا يفرّق سيرو عن نموذج "غرامة تذهب للمنصة". السائق الذي انتظر يُعوَّض، والراكب الذي انتظر سائقاً متأخراً لا يُغرَّم.


أولاً: إلغاء الراكب بعد قبول السائق

متى يكون الإلغاء مجانياً؟

الحالة الشرح للمستخدم
لم يقبل أي سائق بعد لم يتحرك أحد نحوك، فلا أحد يستحق تعويضاً. وهذه أغلب حالات الإلغاء.
خلال أول دقيقتين من قبول السائق مهلة لتصحيح خطأ في الوجهة أو تغيير الرأي.
مرّت 10 دقائق ولم يصل السائق التأخير من السائق لا منك — الإلغاء مجاني.
الرسم معطّل في بلدك الإدارة لم تفعّل السياسة بعد.

متى يُحتسب رسم؟

عندما يكون السائق قد قَبِل الرحلة وتحرّك نحوك، ومضت مهلة الدقيقتين، ولم يتأخر عليك.

كيف يُحسب؟

الرسم = المسافة التي قطعها السائق نحوك × سعر الكيلومتر لنوع السيارة
      + الدقائق منذ قبوله × سعر الدقيقة حسب وقت اليوم
  • الأسعار هي نفسها المستخدمة في تسعير الرحلات (جدول kazan لكل دولة).
  • العملة: بعملة بلد التشغيل — ليرة سورية (SYP)، دينار أردني (JOD)، جنيه مصري (EGP)…
  • حد أقصى للدقائق المحتسبة: 20 دقيقة. سائق قَبِل ونسي الرحلة ساعة لا يتحول نسيانه إلى فاتورة عليك.
  • سقف أعلى يحدده كل بلد (passengerCancelCap)، وفوقه سقف صلب في الكود يمنع أي خطأ إداري من خصم كارثي.

ماذا يحدث بعد الإلغاء؟

  1. يُخصم المبلغ من محفظتك كدَين.
  2. يُضاف نفس المبلغ لمحفظة السائق — ليس إيراداً للشركة.
  3. يزيد عدّاد "عدم الحضور" في حسابك (للمراجعة الإدارية فقط، لا عقوبة آلية).

التحذير المسبق

التطبيق يعرض المبلغ ويطلب تأكيدك قبل الإلغاء. لا خصم صامت. إن تعذّر الاتصال بالخادم لحظتها، يمضي الإلغاء بلا تحذير — لأن حبسك في رحلة بسبب عطل تقني أسوأ.


ثانياً: تعويض السائق عند عدم حضور الراكب

متى يستحق السائق تعويضاً؟

عندما يصل نقطة الالتقاط، ينتظر 5 دقائق على الأقل، ولا يحضر الراكب، فيلغي الرحلة.

كيف يُحسب؟

التعويض = مسافة الاقتراب إلى الراكب × سعر الكيلومتر
        + دقائق الانتظار × سعر الدقيقة

نفس المعادلة والأسعار. الحد الأقصى للدقائق المحتسبة 20 دقيقة أيضاً.

شروط مهمة

  • الوصول يتحقق منه الخادم من موقع السائق الفعلي (ضمن 300 متر من نقطة الالتقاط). لا يكفي أن يضغط السائق "وصلت".
  • إن تعذّر إثبات الوصول (خدمة الموقع معطّلة مثلاً) فلا تعويض — لا يُصرف مال لا يمكن إثبات استحقاقه.
  • إلغاء السائق قبل الوصول: لا تعويض إطلاقاً.

ثالثاً: عقوبة السائق كثير الإلغاء

منفصلة تماماً عن المال. لا غرامة على السائق أبداً.

الشرط العقوبة
3 إلغاءات بعد القبول خلال 24 ساعة إيقاف استقبال الطلبات 4 ساعات

الإيقاف مطبَّق على الخادم: السائق الموقوف لا يستطيع قبول أي رحلة حتى لو أعاد تثبيت التطبيق.


رابعاً: التسرب خارج المنصة

سلوك يتكرر فيه: قَبِل السائق ← أُلغيت الرحلة ← ولم تبدأ قط، مع نفس الراكب مراراً.

التكرار درجة الاشتباه
مرة واحدة منخفضة (للإلغاء أسباب مشروعة كثيرة)
مرتان متوسطة
ثلاث فأكثر مرتفعة → مراجعة بشرية

العقوبة: خفض أولوية السائق في توزيع الرحلات — يخسر الطلبات الخاصة والقريبة تدريجياً. لا حظر ولا خصم مالي. وتزول العقوبة تلقائياً حين ينظف سجله خلال 30 يوماً.


المعاملات القابلة للضبط (لكل دولة، جدول kazan)

المعامل الافتراضي المعنى
passengerCancelCap 0 (معطّل) سقف رسم إلغاء الراكب
passengerCancelFreeMinutes 2 دقائق الإلغاء المجاني بعد القبول
driverLateExemptMinutes 10 بعدها يصير الإلغاء مجانياً لتأخر السائق
cancelCompensationCap 0 (معطّل) سقف تعويض عدم حضور الراكب
cancelMinWaitMinutes 5 أقل انتظار يستحق السائق بعده تعويضاً

⚠️ القيمة 0 في السقوف تعني تعطيلاً كاملاً. لا يُخصم ولا يُصرف شيء حتى تضبطها الإدارة صراحةً.


أسئلة متوقعة من العملاء

«ألغيت لأن السائق لم يتحرك من مكانه — لماذا خُصم مني؟» إن مرّت 10 دقائق ولم يصل، الإلغاء مجاني تلقائياً. إن خُصم رغم ذلك فالرحلة تحتاج مراجعة — ارفعها للفريق التقني بمعرّف الرحلة.

«لماذا الرسم مختلف كل مرة؟» لأنه ليس رقماً ثابتاً — يعتمد على المسافة التي قطعها السائق فعلاً وعلى الوقت المنقضي. رحلة ألغيت بعد 3 دقائق تختلف عن أخرى بعد 12.

«هل تأخذ الشركة هذا المبلغ؟» لا. يذهب كاملاً لمحفظة السائق.

«ألغى السائق عليّ — هل أُعوَّض؟» لا يوجد تعويض للراكب حالياً عند إلغاء السائق. لكن السائق كثير الإلغاء يُوقَف 4 ساعات آلياً.


مراجع تقنية

الموضوع الملف
رسم إلغاء الراكب backend/ride/rides/cancel_fee_helper.php
معاينة الرسم قبل الإلغاء backend/ride/rides/preview_cancel_fee.php
تعويض عدم الحضور + الإيقاف backend/ride/rides/cancel_ride_by_driver.php
إثبات الوصول backend/ride/rides/arrive_ride.php
كشف التسرب backend/bot/cron_leak_detection.php
الأسعار المشتركة backend/ride/pricing/pricing_helper.php
الترحيلات backend/migrations/2026_08_07_*.sql