Skip to main content
#P1661

GET /v2/core/accommodation/view

Core Accommodation: View Details

این اندپوینت برای دریافت جزئیات کامل یک هتل در سیستم Core استفاده می‌شود. داده‌ها از جداول اصلی (hotels، countries، states، cities)، جدول mapping_accommodations و جدول media بارگذاری شده و سپس در یک ساختار استاندارد و نرمال‌سازی شده بازگردانده می‌شوند.

Request Overview

URL: /v2/core/accommodation/view
Method: GET
Controller: CoreController@viewAccommodation
Middleware Stack: authWithJwt (بدون core)

Access Control

  • نیازمند JWT معتبر
  • در این روت middleware core وجود ندارد → برای تمام کاربران معتبر قابل مشاهده است

Request Query Parameters

Field Type Required Description
id integer yes شناسه هتل در جدول hotels

Hotel Record Loading

جزئیات اولیه هتل از جدول hotels بارگذاری می‌شود:

$item = DB::table('hotels')
    ->where('id', request->id)
    ->first();
  
  • اگر مقدار country برابر null باشد، مقدار پیش‌فرض 118 جایگزین می‌شود

Country Resolution

کشور با شرط‌های زیر لود می‌شود:

  • status = 1
  • fa_nationality != null
[
  "id" => country.id,
  "icon" => country.iso,
  "title" => [
    "fa" => country.fa_name,
    "en" => country.en_name
  ],
  "nationality" => [
    "fa" => country.fa_nationality,
    "en" => country.en_nationality
  ]
]
  

State Resolution

$state = [
  "id" => state.id,
  "title" => [
    "fa" => state.title_fa,
    "en" => state.title_en
  ]
];
  

City Resolution

$city = [
  "id" => city.id,
  "title" => [
    "fa" => city.title_fa,
    "en" => city.title_en
  ]
];
  

Mapping Resolution

اگر رکورد فعال وجود داشته باشد، فیلدهای null به false تبدیل می‌شوند؛ در غیر این صورت مقدار نهایی false است.

{
  "tport": value or false,
  "sepehr": value or false,
  "snapptrip": value or false,
  "alibaba": value or false,
  "eghamat24": value or false,
  "iranhotelonline": value or false
}
  

Media Resolution

همه مدیاها با شرط‌های زیر لود می‌شوند:

ساختار خروجی نهایی مدیا:

{
  "logo": "/path/to/logo.jpg" or false,
  "media": ["/path/a.jpg","/path/b.jpg"] or false
}
  

Final Response Mapping

ساختار کلی:

{
  "title": {
    "fa": item.fa_title,
    "en": item.en_title
  },
  "type": item.type,
  "rate": item.rate,
  "country": country_object,
  "state": state_object,
  "city": city_object,
  "phone": item.phone,
  "mobile": item.mobile,
  "email": item.email,
  "site": item.site,
  "address": item.address,
  "location": item.location,
  "logo": logo or false,
  "media": media_list or false,
  "details": json_decode(item.details),
  "board": json_decode(item.board),
  "possibilities": json_decode(item.possibilities),
  "leader_name": item.leader_name,
  "leader_mobile": item.leader_mobile,
  "description": item.description,
  "confirm_status": item.confirm_status,
  "priority": item.priority,
  "mapping": mapping_object or false,
  "status": item.status
}
  

Response (Success)

{
  "status": true,
  "time": 1710000000,
  "data": { ... }
}
  

Response (Error)

{
  "status": false,
  "code": "1003",
  "message": "Exception message",
  "trace": [...]
}
  

Flowchart

Validate JWT
Load hotel record
Resolve country/state/city
Load mapping_accommodations
Load media (logo + gallery)
Assemble standard response
Return final JSON