Skip to main content
#P1465

* POST /api/v2/online/accommodation/check_status

Accommodation Check Status (V2)

Endpoint: POST /v2/online/accommodation/check_status
Controller: OnlineController@checkAccommodationStatus
Delegates to: BaseService::checkAccommodationStatus(type, accommodation, agentDetails)
Auth: authWithJwt

Description

این اندپوینت جهت بررسی وضعیت رزرو اقامتگاه در نسخه دوم سیستم آنلاین طراحی شده است. مسیر پردازش بسته به نوع سرویس (type) متفاوت بوده و نتایج نهایی – شامل وضعیت، تغییر قیمت، کد لاک موقت یا پیام خطا – در جدول temporary_reservations ثبت می‌گردند.

Request Example


POST /v2/online/accommodation/check_status
{
  "type": "airplus",
  "accommodation": {
    "id": 1549,
    "checkin": "2025-01-15",
    "checkout": "2025-01-20",
    "rooms": 2,
    "adults": 4
  }
}
  

Response Example


{
  "status": "success",
  "changed": false,
  "lock_id": "TMP-7634",
  "payable": 5840000,
  "errors": []
}
  

Technical Logic

Client → send request /v2/online/accommodation/check_status
Parse Request → extract type و accommodation
Branch by type (Tport / Airplus / Sepehr / Snapptrip)
↙ ↓ ↘
Tport → call calculate_price()save_normal_reserve() → return lock_id
Airplus → validate passengers → check charter capacity handle codes 1005–1026
Sepehr → use saved temporary lock if exists
Snapptrip → call create_book() → return reservation_code
Save result snapshot → temporary_reservations
Return response: {status, changed, lock_id, payable, errors[]}

Error Conditions

  • 1005 – ظرفیت پر شده است
  • 1010 – اتاق در تاریخ انتخابی یافت نشد
  • 1026 – اطلاعات ناقص مسافران
  • در سایر موارد پاسخ شامل errors[] با جزئیات دقیق می‌شود.

Notes

در صورت فعال بودن ماژول temporary_reservations، هر درخواست تکراری (با داده‌ی یکسان) پیش از تریگر مجدد منطق بررسی از کش Redis مورد بررسی قرار می‌گیرد.