إنتقل إلى المحتوى الرئيسي

تقدّم الترحيل

هذه هي الصفحة المرجعية لمعرفة مدى التغطية: لكل واجهة Shukah يستدعيها التطبيق في مجالي المستخدمين والنقاط، هل يوجد route في Locate يحل محلها، وهل يستجيب هذا الـ route على dev اليوم؟

انقر على route من Shukah لترى مقارنته بالـ route المقابل في Locate في صفحة Shukah مقابل Locate. وانقر على التفاصيل للانتقال إلى صفحة الـ endpoint الكاملة.

هل تحوّل التطبيق إلى Locate؟ ابدأ من قائمة التحويل: كل تغيير يجب على التطبيق إجراؤه في مكان واحد.

دليل الحالات​

العلامةالمعنى
✅ تم الاستبداليوجد route في Locate لهذه الواجهة من Shukah. يمكن للتطبيق التحوّل إليه بعد معالجة الفروق المذكورة في صفحته.
❌ لم يُستبدللا يوجد route في Locate بعد. يواصل التطبيق استدعاء Shukah لهذه الواجهة.
➖ لن يُرحَّلتبقى الواجهة على Shukah عن قصد. لا توجد واجهة بهذه الحالة اليوم.
🚩 flagالـ route في Locate موجود، لكن استخدامه يتوقف على مفتاح: flag على الخادم أو إعداد في التطبيق (ففي enableMerchantService يكون الـ route مفعّلًا على الخادم، ويقرر إعداد التطبيق هل يستدعيه). وتوضح الملاحظة مكان هذا المفتاح.

يبيّن عمود Verdict ما يتطلبه تحويل التطبيق إلى الـ route في Locate:

Verdictالمعنى
Drop-inيتغيّر فقط الـ base URL والمسار.
Adaptيجب أن يغيّر التطبيق الكود: يوجد اختلاف كاسر (breaking) واحد على الأقل.
Blockedالـ route موجود لكن التطبيق لا يستطيع استخدامه بعد (flag مغلق أو token مرفوض). وتذكر الملاحظة السبب.

في صندوق TL;DR في كل صفحة endpoint، تعني 🔴 breaking أن التطبيق الحالي سيتعطل أو يعرض بيانات خاطئة ما لم يتغيّر كوده، وتعني 🟡 to watch أن الـ route مختلف لكن التطبيق الحالي يظل يعمل، أو أن الأمر يمس حالة حدّية فقط.

عمود الفحص على dev هو طلب واحد إلى الـ route في Locate على dev، أُرسل دون token، في التاريخ المبيّن. وهو يبيّن ما إذا كان الـ route منشورًا ويستجيب، لا ما إذا كان يعمل لعميل مسجّل الدخول. تعني ✅ يستجيب أن الـ route موجود وقد ردّ، ويأتي رمز HTTP بعدها بين قوسين، مثل (401) عندما يطلب الـ route token. وتعني ❌ غير موجود على dev أن الاستجابة 404. وتعني ⚠️ لا استجابة أن الطلب فشل.

المصادقة​

12 من 14 تم استبدالها · 2 لم تُستبدل بعد · 0 لن تُرحَّل

واجهة Shukahواجهة Locateالخدمةالحالةالتقييمالفحص على devالصفحةملاحظة
GET /maeda/api/reset-otpGET /api/v1/clients/reset-otpauth-service✅ تم الاستبدال استبدال مباشر✅ يستجيب (400) · 2026-10-01التفاصيلroute واحد يخدم تسجيل الدخول والتسجيل معًا، كما في Shukah؛ وفي Locate يحصل الهاتف غير المعروف على 400 "Last Name cannot be blank." (وهي إشارة للتطبيق لفتح التسجيل؛ بحسب الكود، أما نص Shukah الحالي فغير موثّق) ولا يُقرأ receive_offers.
GET /maeda/api/verify-otpGET /api/v1/clients/verify-otpauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (400) · 2026-10-01التفاصيليُرجع access_token وملفًا شخصيًا في data، حيث الـ token هو JWT من Locate (وbody النجاح في Shukah له الشكل نفسه، التُقط في 2026-10-02)، ويُتجاهل fcm_token وplatform.
GET /maeda/api/verify-tokenGET /api/v1/clients/verify-tokenauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
GET /maeda/clientGET /api/v1/clientsauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
GET /maeda/address-bookGET /api/v1/clients/address-bookauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيلتُرجع Locate القيمة is_default كـ boolean والمعرّف id كسلسلة hex من 24 حرفًا، بينما تُرجع Shukah القيمة 0 أو 1 ومعرّف id عددًا صحيحًا (و lat وlng أرقام على الجانبين)؛ ويقبل فحص الافتراضي في التطبيق الـ boolean، لكن أي شيء يعامل المعرّف كرقم يجب تغييره.
GET /maeda/address-book/:idGET /api/v1/clients/address-book/:idauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
POST /maeda/address-bookPOST /api/v1/clients/address-bookauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
PUT /maeda/address-book/:idPUT /api/v1/clients/address-book/:idauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيلbody مسطّح بنمط Shukah؛ ويمكن أن يكون المعرّف معرّف hex من 24 حرفًا أو معرّف Shukah العددي.
DELETE /maeda/address-book/:idDELETE /api/v1/clients/address-book/:idauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
PUT /maeda/client/:client_idPUT /api/v1/clients/:client_idauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
PUT /maeda/client/:client_idPUT /api/v1/clients/settingauth-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
POST /maeda/client/add-device-idPOST /api/v1/clients/add-device-idauth-service✅ تم الاستبدال استبدال مباشر✅ يستجيب (200) · 2026-10-01التفاصيل
GET /maeda/client/status——❌ لم يُستبدل ———لا يوجد route في Locate. تُعلن لقطة التطبيق هذا الـ route لكن لا يستدعيه أي كود، ومع ذلك يُظهر جدول حركة production بتاريخ 2026-10-02 عدد 768 استدعاءً خلال 3 أيام؛ وتجيب Shukah dev بـ 404 "The route maeda/client/status could not be found."
GET /maeda/client/delete——❌ لم يُستبدل ———لا يوجد route في Locate يحذف حسابًا، لذا يواصل التطبيق استدعاء route Shukah هذا، الذي يحتاج إلى token تقبله Shukah. ويحذف التطبيق الـ token المخزَّن عند 401 هنا، لذا يُسجَّل خروج تطبيق يملك JWT فقط.

النقاط​

11 من 16 تم استبدالها · 5 لم تُستبدل بعد · 0 لن تُرحَّل

واجهة Shukahواجهة Locateالخدمةالحالةالتقييمالفحص على devالصفحةملاحظة
GET /maeda/client/pointsGET /api/v2/client/pointsorder-v2 → point-service✅ تم الاستبدال استبدال مباشر✅ يستجيب (401) · 2026-10-01التفاصيل
GET /maeda/point-rateGET /api/v2/client/system_configs/point_ratesorder-v2✅ تم الاستبدال 🚩 enableMerchantServiceاستبدال مباشر✅ يستجيب (200) · 2026-10-01التفاصيل
GET /maeda/giftcard-code/usePOST /api/v2/client/gift-card-codeorder-v2✅ تم الاستبدال 🚩 enableMerchantServiceاستبدال مباشر✅ يستجيب (401) · 2026-10-01التفاصيلتقبل Locate الطلب POST مع {code} بدل GET ?code= وتفحص الأكواد مقابل أكواد بطاقات الهدايا التي تحتفظ بها Locate بنفسها (وغير معروف هل الأكواد الصادرة عن Shukah موجودة هناك)؛ ويستدعيه التطبيق بالفعل في وضع Merchant. 0 استدعاء في جدول حركة production بتاريخ 2026-10-02 (3 أيام).
GET /maeda/client/point-historyGET /api/v2/client/point-historyorder-v2 → point-service✅ تم الاستبدال يحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيل
GET /maeda/point-offerGET /api/v2/client/point-offersorder-v2 → point-service✅ تم الاستبدال استبدال مباشر✅ يستجيب (401) · 2026-10-01التفاصيليُتجاهل المرشح ?id=؛ ولا يزال الاستدعاء يُرجع القائمة كلها.
GET /maeda/point-occasionGET /api/v2/client/point-occasionsorder-v2 → point-service✅ تم الاستبدال استبدال مباشر✅ يستجيب (401) · 2026-10-01التفاصيل
POST /maeda/point-orderPOST /api/v2/client/point-ordersorder-v2 → point-service✅ تم الاستبدال 🚩 POINT_ORDER_POINT_ENABLEDيحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيلتقبل payment_type بالقيمة point أو checkout فقط (لا payfort ولا hyperpay) وتُرجع طلبًا بشكل مختلف (correlation_id وmoney_amount وغيرهما).
POST /maeda/point-order/get-descriptionPOST /api/v2/client/point-orders/descriptionorder-v2 → point-service✅ تم الاستبدال استبدال مباشر✅ يستجيب (401) · 2026-10-01التفاصيل
POST /maeda/order/checkout-payment-standalonePOST /api/v2/client/point-orders/:correlation_id/pay/cardorder-v2 → point-service✅ تم الاستبدال 🚩 POINT_ORDER_CARD_ENABLEDيحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيللطلبات النقاط فقط: الـ body نفسه (id وcvv)، لكن الطلب يُسمّى في المسار بـ correlation_id لا point_order_id.
POST /maeda/order/checkout-payment-flowPOST /api/v2/client/point-orders/:correlation_id/pay/sessionorder-v2 → point-service✅ تم الاستبدال 🚩 POINT_ORDER_CARD_ENABLEDيحتاج تعديل التطبيق✅ يستجيب (401) · 2026-10-01التفاصيللطلبات النقاط فقط: الـ body نفسه (rememberMe)؛ ويُتجاهل point_order_id وpayment_type ويُسمّى الطلب بـ correlation_id في المسار.
GET /maeda/points-faqGET /api/v2/client/points-faqorder-v2 → point-service✅ تم الاستبدال استبدال مباشر✅ يستجيب (401) · 2026-10-01التفاصيلمدخلات الأسئلة الشائعة الخمسة مطابقة لـ Shukah على dev، لكن Locate تحتاج إلى token بينما كانت Shukah تجيب بدونه.
GET /maeda/point-order——❌ لم يُستبدل ———لا يوجد route في Locate يسرد الهدايا المرسَلة لمستخدم، لذا يواصل تبويب Sent gifts استدعاء Shukah.
POST /maeda/order/checkout-payment——❌ لم يُستبدل ———لطلبات النقاط، توفّر Locate route لبطاقة محفوظة وroute لجلسة فقط، لذا فالـ route الذي يدفع ببطاقة token من Checkout.com لا بديل له. 0 استدعاء في جدول حركة production بتاريخ 2026-10-02 (3 أيام).
POST /maeda/order/checkout-payment-stcpay——❌ لم يُستبدل ———بحسب التصميم (D24)، يُفترض أن تعالج Locate STC Pay داخل route الدفع بالجلسة (pay-session) لا عبر endpoint STC Pay المنفصل في order-v2؛ ولم يثبت ذلك بعد على جهاز.
POST /maeda/order/payfort-token——❌ لم يُستبدل ———PayFort مؤجَّل عن قصد لطلبات نقاط Locate، لذا يواصل مسار PayFort استدعاء Shukah. 0 استدعاء في جدول حركة production بتاريخ 2026-10-02 (3 أيام).
POST /maeda/order/payfort-stc-pay-checkout——❌ لم يُستبدل ———PayFort مؤجَّل عن قصد لطلبات نقاط Locate، لذا يواصل مسار STC Pay هذا استدعاء Shukah. 0 استدعاء في جدول حركة production بتاريخ 2026-10-02 (3 أيام).

endpoints جديدة (لا مقابل لها في Shukah)​

هذه الـ routes في Locate لا تقف خلفها أي واجهة من Shukah، لذلك ليست صفوفًا في الجداول أعلاه. وهي إمكانات جديدة يستطيع التطبيق استخدامها.

مصدر هذه القائمة​

القائمة هي استدعاءات Shukah التي وُجدت في نسخة لحظية (snapshot) من تطبيق الجوال (mobile/locate-client، الفرع development) بتاريخ 2026-02-26، وقورنت بوثائق خدمات Locate وشيفرتها التي قُرئت في 2026-10-01. وأُضيف مصدران أحدث في 2026-10-02:

  • جدول حركة الإنتاج (production traffic sheet) ("api used last 3 days"، وصل في 2026-10-02): routes Shukah التي خدمها الإنتاج في 3 أيام، مع عدد الاستدعاءات. وقد أضاف client/status (768 استدعاءً) وبيّن أن أربعة صفوف لا استدعاءات لها إطلاقًا (انظر أدناه). ويتتبع عموده "Implemented in Laravel" نقل Shukah نفسها إلى Laravel على الـ URLs نفسها، لا الانتقال إلى Locate.
  • التقاطات التطبيق 2.31.5 (dev، 2026-10-02): أجسام الطلبات (request bodies) التي أرسلها التطبيق 2.31.5 إلى routes checkout-payment-flow وcheckout-payment-stcpay.

ولا تزال النسخة اللحظية هي المصدر الوحيد لشيفرة التطبيق. وأي شيء أضافه التطبيق بعد 2026-02-26 ولا يظهره المصدران أعلاه غير موجود في هذه الصفحة.

لا استدعاءات في 3 أيام. يُظهر جدول الحركة 0 استدعاء لـ giftcard-code/use وorder/checkout-payment وorder/payfort-token وorder/payfort-stc-pay-checkout. وتحتفظ بصفوفها، لأن شيفرة التطبيق لا تزال فيها الاستدعاءات؛ وتذكر ملاحظة كل صف ذلك.

فريق الجوال: يرجى تأكيد هذه القائمة على التطبيق الحالي. أخبرونا بأي استدعاء إلى Shukah في مجالي المستخدمين أو النقاط ينقص هنا، وبأي صف لم يعد التطبيق يستدعيه.

مستثنى عن قصد، لأنه ليس من ترحيل المستخدمين أو النقاط:

  • GET /maeda/api/settings، وتخدمه Locate عبر order-v2 GET /api/v2/client/settings. وهو إعداد عام للتطبيق، ولا يستدعيه التطبيق إلا في وضع Merchant. وليس له صف ولا فحص على dev.
  • الكتالوج والمطاعم: merchant وitem وcategory وcuisine وservice وadvert و popular-search وbanner وapi/restaurant-config، مع routes الفرعية الخاصة بها.
  • الطلبات والدفع (checkout) والطلبات الجماعية: order وorder/history وorder/checkout وroutes make-payment-* وconfirm-order-change وapi/get-distance وroutes group-order وorder/add-push-token وclient/apns/token.
  • تغييرات الطلب: order/calculate-delivery-fee وorder/change-to-delivery و order/change-to-pickup.
  • طلبات المطاعم على routes order/checkout-payment* الأربعة. فالصفوف أعلاه تغطي استخدامها في طلبات النقاط فقط.
  • البطاقات المحفوظة: order/payment-card (الجلب والحذف). وتذكر وثائق خدمة النقاط routes في Locate لهذا الغرض على order-v2.
  • الإشعارات: notification وnotification/status. لم يُعثر على route في Locate لها.
  • الأسئلة الشائعة العامة والشروط: faq. أما الشروط فهي صفحة على locate.sa وليست استدعاء API.
  • معرَّفة في التطبيق لكن لا تُستدعى أبدًا: client/create-food-truck-user وapi/point-order وapi/point-offer. كما يوجد GET point-order/{id} من Shukah في شيفرة التطبيق، لكن لا توجد شاشة تستخدمه، فليس له صف. (كان client/status في هذه القائمة حتى 2026-10-02. ويُظهر جدول الحركة 768 استدعاءً في 3 أيام، فصار له صف الآن.)
  • من خادم إلى خادم (server-to-server): routes تستدعيها خدمات الـ backend، لا التطبيق. وأعداد الاستدعاءات من جدول الحركة (3 أيام).
    • client/add-point (30,049 استدعاءً) وclient/reduce-point (2,434). ولا يزال order-v2 يمنح النقاط عبر add-point في Shukah بينما يكون flag usePointService فيه معطّلًا (انظر Points wallet).
    • GET client/{id} (21 استدعاءً): الملف الشخصي للعميل. تستدعيه talon-one-service بـ API key، لا بـ token عميل. وتجيب Shukah على dev بـ 401 على token العميل نفسه.
    • POST billing-info/create (14 استدعاءً) وPUT billing-info/{id} (38 استدعاءً): يخزّنان بيانات الفوترة، لا بيانات المستخدم. وتُرسل مزامنة التاجر في locate-merchant-v2-api تغييرات فوترة المتجر إلى Shukah بـ POST billing-info وPUT billing-info/{Shukah merchant id}. وأي مستدعٍ يستخدم المسار /create: غير موثّق بعد.

كيف تُحدَّد الحالة​

  • ✅ تم الاستبدال يعني أن الـ route في Locate منفَّذ في فرع develop للخدمة. أما هل هو منشور في production فسؤال منفصل يجيب عنه الفحص على dev وملاحظات الـ flag.
  • ❌ لم يُستبدل يعني أنه لم يُعثر على route في Locate لهذه الواجهة في develop. ويُحدَّد هذا من الشيفرة.
  • 🚩 flag يعني أن الـ route منفَّذ لكنه معطَّل بواسطة flag. وتبقى الحالة «تم الاستبدال» ويبيّن الـ flag ما يجب تفعيله.
  • الفحص على dev هو طلب واحد دون token إلى الـ route في Locate على dev. أُجري في 2026-10-01. وإذا كان التاريخ أقدم من تغيير أُدخل على الـ route فالفحص قديم.

كيف تُحدَّث هذه الصفحة​

الجداول لا تُكتب يدويًا. كل صف هو مدخل واحد في sites/internal/src/components/migration/registry.ts، ويغذّي المدخل نفسه جداول Shukah مقابل Locate والمربع «Replaces» في كل صفحة endpoint.

لتغيير صف، عدّل ذلك المدخل الواحد (حالته أو flag أو فحص dev أو ملاحظته)، ثم شغّل:

npm run test:internal && npm run build:internal

تفحص الاختبارات قواعد الـ registry، ويفحص البناء (build) كل رابط. ولا تشغّل البناء بينما يعمل خادم التطوير (dev server) في النسخة (checkout) نفسها؛ انظر README في المستودع. ولإضافة واجهة Shukah جديدة، أضف مدخلًا وقسمها في صفحة المقارنة، واجعل page يشير إلى كتلة endpoint موجودة.

الترجمات​

الفيتنامية: تُرجمت بتاريخ 2026-10-02 من الصفحات الإنجليزية بذلك التاريخ.

العربية: تُرجمت بتاريخ 2026-10-02 من الصفحات الإنجليزية بذلك التاريخ — وتحتاج إلى مراجعة متحدث أصلي للعربية قبل مشاركتها.