دليل واجهة القنوات
التعديلات والإلغاءات
بيانات الضيوف
curl -s -X PATCH "$API/v1/bookings/$REF/guests" -H "$H" -H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/json' \
-d '{ "guests": [
{ "cabin": 0, "first_name": "Emma", "last_name": "Clarke", "lead": true,
"nationality": "GB", "date_of_birth": "1985-04-02", "passport_number": "…" } ] }'
يستبدل هذا الاستدعاء قائمة الضيوف. وهو مسموح حتى الموعد النهائي لقائمة الركاب (manifest cut-off) (٧ أيام قبل الصعود افتراضيًا).
التعديلات: السعر أولًا، ثم التطبيق
- سعِّر التغيير. أرسل
sailing_idآخر، أو القائمة الجديدة الكاملة لـcabins، أو كليهما:
curl -s -X POST "$API/v1/bookings/$REF/amendment-quotes" -H "$H" -H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/json' -d '{ "sailing_id": "'$OTHER'" }'
تحتوي الإجابة على عرض السعر الجديد، والتغييرات (date، category، occupancy، cabins)، والرسوم وفق سياسة التعديل الخاصة بالحجز، والفرق في السعر.
- طبِّقه مع إرسال رقم المراجعة التي تعدّلها في
If-Match:
curl -s -X POST "$API/v1/bookings/$REF/amendments" -H "$H" -H "Idempotency-Key: $(uuidgen)" \
-H 'If-Match: "1"' -H 'Content-Type: application/json' \
-d '{ "amendment_quote_id": "'$AMENDMENT_QUOTE'" }'
إذا تغيّر الحجز في هذه الأثناء، تتلقى 409 REVISION_CHANGED: اقرأه مرة أخرى وابدأ من جديد. تُحرَّر الكبائن القديمة وتُؤخذ الجديدة في خطوة واحدة، ويزيد رقم المراجعة بمقدار واحد.
الإلغاء
curl -s -X POST "$API/v1/bookings/$REF/cancel" -H "$H" -H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/json' -d '{ "reason": "Guest cancelled" }'
تُظهر الاستجابة الغرامة: النسبة من الإجمالي وفق سياسة الإلغاء التي بيع الحجز بموجبها، بحسب عدد الأيام المتبقية قبل الصعود (بتاريخ القاهرة). وتعود الكبائن إلى البيع فورًا.