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

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

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

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

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

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

  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إلغاء الرحلة وتصفير كل الرسوم

الصلاحيات

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

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