العودة للرئيسية

المعمارية التقنية لمنصة يمن نقل

نموذج وساطة إدارية: العميل لا يتعامل مع السائق مالياً، والإدارة تسعّر وتسند وتحاسب.

القواعد المالية الصارمة

  • العميل يدفع أجرة الرحلة الإجمالية فقط — بلا أي عمولة عليه.
  • المنصة تقتطع نسبتها من السائق: صافي السائق = الأجرة − (الأجرة × النسبة).
  • نسبة العمولة تُجمَّد داخل الرحلة عند التسعير، فلا يؤثر تغيير النسبة لاحقاً على رحلة قائمة.
  • العمولة لا تُحتسب إلا بعد تأكيد إثبات التسليم.
  • الرحلة الملغاة = صفر عمولة وصفر أجرة.
  • حقول الرحلة المالية والحالة محمية بمُشغِّل قاعدة بيانات: لا يمكن تعديلها إلا عبر إجراءات المحرك.

دورة حياة الشحنة

  1. 1.DRAFT — مسودة أنشأها العميل ولم تُرسل بعد
  2. 2.PENDING_DISPATCH — وصلت الإدارة بانتظار التسعير
  3. 3.PRICED — حدّدت الإدارة أجرة الرحلة الإجمالية
  4. 4.MERCHANT_APPROVED — وافق العميل على السعر
  5. 5.OFFERED_TO_TRANSPORTER — أُسندت الرحلة لسائق محدد
  6. 6.TRANSPORTER_ACCEPTED — قبل السائق الرحلة
  7. 7.LOADING — جاري التحميل في نقطة الانطلاق
  8. 8.IN_TRANSIT — الشحنة في الطريق
  9. 9.DELIVERED — أعلن السائق وصول الشحنة
  10. 10.POD_SUBMITTED — رُفع إثبات التسليم (المستلم/البوليصة/الرمز)
  11. 11.CONFIRMED — أكدت الإدارة التسليم — هنا فقط تُقيَّد العمولة
  12. 12.CLOSED — أُغلقت الرحلة بعد سداد العمولة
  13. 13.CANCELLED — ملغاة — كل الرسوم صفر

مخطط قاعدة البيانات

  • merchants — العملاء: الاسم التجاري، السجل، المدينة، جهة الاتصال
  • transporters — السائقون: الشاحنة، المديونية الحالية، سقف المديونية، حالة الإيقاف، التقييم
  • trucks — الأسطول: اللوحة، النوع، أقصى حمولة
  • shipments — الرحلات: المسار، الحمولة، الأجرة الإجمالية، نسبة العمولة المجمّدة، العمولة، صافي السائق، الحالة
  • shipment_milestones — سجل تتبّع زمني لكل تغيّر حالة مع الموقع والصورة
  • proof_of_delivery — إثبات التسليم: اسم المستلم، الجوال، البوليصة، الرمز
  • transporter_ledger — دفتر الذمم: مديونية/سداد/تسوية مع الرصيد بعد كل قيد
  • commission_audit_log — سجل تدقيق غير قابل للحذف لكل تسوية أو إعفاء
  • platform_settings — نسبة العمولة الافتراضية، سقف المديونية، سعر الصرف
  • profiles / user_roles — الهوية والصلاحيات — الأدوار في جدول منفصل منعاً لتصعيد الصلاحيات

واجهات العمليات (إجراءات محميّة)

  • submit_shipment — العميل يرسل المسودة للإدارة
  • set_trip_fee — الإدارة تسعّر الرحلة وتجمّد نسبة العمولة داخلها
  • merchant_approve — العميل يعتمد السعر
  • dispatch_shipment — إسناد لسائق — يُرفض إن كان موقوفاً
  • transporter_respond — قبول أو رفض العرض
  • advance_shipment — تحميل / في الطريق / تم التسليم مع نقطة تتبّع
  • submit_pod — رفع إثبات التسليم
  • confirm_delivery — تأكيد الإدارة → قيد مديونية العمولة + فحص السقف
  • record_payment — تسجيل سداد السائق → قيد دائن ورفع الإيقاف
  • adjust_commission — تسوية/إعفاء — للمدير الأعلى فقط مع سبب مسجّل
  • set_debt_limit — تغيير سقف مديونية سائق مع توثيق
  • cancel_shipment — إلغاء الرحلة وتصفير كل الرسوم

الصلاحيات

  • العميل: إنشاء الطلبات، اعتماد السعر، متابعة شحناته فقط.
  • السائق: قبول/رفض العروض، تحديث الحالة، رفع الإثبات، عرض حسابه فقط.
  • موظف الإدارة: التسعير، الإسناد، تأكيد التسليم، تحصيل العمولات.
  • المدير العام: التسويات والإعفاءات وسقوف المديونية وإعدادات المنصة.

الأدوار مخزّنة في جدول مستقل ويُتحقق منها داخل قاعدة البيانات، لا في المتصفح.