Skip to main content
#P1797

GET /b2c/v1/online/accommodation/list


List Accommodation Items

این اندپوینت فهرستی از اقامتگاه‌ها (هتل‌ها) را بر اساس شهر، IATA، یا شناسه‌ی مستقیم هتل بازیابی می‌کند. امکان اعمال فیلترهای متنوع شامل ستاره، نوع، نام، سرویس‌دهنده‌ها و محدوده‌ی تاریخی رزرو وجود دارد. در صورت انتخاب only_charters=true، نتایج محدود به هتل‌های دارای چارتر فعال در بازه‌ی داده‌شده خواهند بود.



Endpoint Info

URL: /b2c/v1/online/accommodation/list
Method: GET
Controller: V1OnlineController@listAccommodation
Service Layer: LibBaseService::listAccommodation()
Auth: Public Access (No JWT Required)

Query Parameters

Parameter Type Required Description
type string نوع جستجو: یکی از مقادیر city، iata یا accommodation.
value string|integer مقدار مرتبط با نوع؛ مثلاً نام شهر، کد IATA، یا شناسه هتل.
checkin_date date تاریخ ورود.
checkout_date date تاریخ خروج.
branch integer شناسه‌ی شعبه برای چک چارترهای فعال.
filters[only_charters] boolean اگر true باشد فقط هتل‌هایی که چارتر فعال دارند بازگردانده می‌شوند.
filters[stars][] array لیست تعداد ستاره‌های مد نظر (مثلاً [3,4,5]).
filters[types][] array انواع اقامتگاه شامل hotel، apartment، guesthouse و ...
filters[name] string جستجو بر اساس بخشی از نام فارسی هتل.
filters[services][] array لیست سرویس‌دهنده‌ها (مثلاً snapptrip، sepehr، tport، airplus).
paginate[length] integer تعداد رکورد در هر صفحه (پیش‌فرض 30).
paginate[start] integer شماره شروع ایندکس صفحه (پیش‌فرض 0).

Response Structure

Key Description
Status وضعیت پاسخ (true در صورت موفقیت).
Time Timestamp زمان پاسخ.
Search اطلاعات شناسایی‌شده برای نوع جستجو (شهر، کشور، یا هتل).
Data لیست اقامتگاه‌ها در قالب AccommodationListResource.
Table اطلاعات مربوط به صفحه‌بندی (total, per_page, current_page, last_page, از، تا، next_page).

Example Response (Success)

{
  "Status": true,
  "Time": 1733742000,
  "Search": {
    "city": {
      "id": 396,
      "title": {"fa": "مشهد", "en": "Mashhad"},
      "country": {"fa": "ایران", "en": "Iran"},
      "category": {"title": "شهر"}
    }
  },
  "Data": [
    {
      "id": 2652,
      "fa_title": "اکسلسیور کیش",
      "en_title": "Excelsior Kish Hotel",
      "rate": 5,
      "type": "hotel",
      "city": "مشهد",
      "priority": 0,
      "mapping": {"airplus": true, "snapptrip": true}
    }
  ],
  "Table": {
    "total": 250,
    "per_page": 30,
    "current_page": 1,
    "last_page": 9,
    "from": 1,
    "to": 30,
    "next_page": 2
  }
}

Example Response (Error)

{
  "status": false,
  "time": 1733742053,
  "error": {
    "code": 1002,
    "message": "Invalid city or date format.",
    "trace": [ ... ]
  },
  "support": {
    "phone": "021-91016838 in 121",
    "email": "ict@airplus.app",
    "panel": "helpdesk.airplus.app"
  }
}

Technical Flow (Logic Overview)

ورودی درخواست شامل type، value، filters و paginate
Validate Pagination
اگر پارامتر paginate وجود نداشته یا کامل نیست، مقدار پیش‌فرض (length=30, start=0) ست می‌شود.
Determine Search Mode
بسته به type، داده از جدول‌های cities، states، countries یا hotels واکشی می‌شود.
Build Filter Query
روی جدول hotels با join بر روی mapping_accommodations انجام می‌شود.
Filter Logic
- ستاره‌ها (rate)
- نوع اقامتگاه (type)
- نام جزئی (fa_title LIKE '%name%')
- وجود چارتر فعال بین تاریخ‌های واردشده.
Paginate & Return
پاسخ شامل Search (محل جغرافیایی) + Data (Resource List) + Table meta.