# GET /v2/core/accommodation/view

# Core Accommodation: View Details

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

<div class="api-docs" id="bkmrk-"></div>## Request Overview

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcore%2Faccomm"><div class="endpoint-info"><div>**URL:** `/v2/core/accommodation/view`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** CoreController@viewAccommodation</div><div>**Middleware Stack:** authWithJwt (بدون core)</div></div></div>## Access Control

<div class="api-docs" id="bkmrk-%D9%86%DB%8C%D8%A7%D8%B2%D9%85%D9%86%D8%AF-jwt-%D9%85%D8%B9%D8%AA%D8%A8%D8%B1-%D8%AF%D8%B1">- نیازمند JWT معتبر
- در این روت middleware `core` وجود ندارد → برای تمام کاربران معتبر قابل مشاهده است

</div>## Request Query Parameters

<div class="api-docs" id="bkmrk-field-type-required-"><table class="schema-table"><thead><tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>integer</td><td>yes</td><td>شناسه هتل در جدول `hotels`</td></tr></tbody></table>

</div>## Hotel Record Loading

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

```
$item = DB::table('hotels')
    ->where('id', request->id)
    ->first();
  
```

<div class="api-docs" id="bkmrk-%D8%A7%DA%AF%D8%B1-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-country-%D8%A8%D8%B1">- اگر مقدار country برابر null باشد، مقدار پیش‌فرض 118 جایگزین می‌شود

</div>## Country Resolution

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

<div class="api-docs" id="bkmrk-status-%3D-1-fa_nation">- status = 1
- fa\_nationality != null

</div>```
[
  "id" => country.id,
  "icon" => country.iso,
  "title" => [
    "fa" => country.fa_name,
    "en" => country.en_name
  ],
  "nationality" => [
    "fa" => country.fa_nationality,
    "en" => country.en_nationality
  ]
]
  
```

<div class="api-docs" id="bkmrk--1"></div>## State Resolution

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

<div class="api-docs" id="bkmrk--2"></div>## City Resolution

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

<div class="api-docs" id="bkmrk--3"></div>## 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
}
  
```

<div class="api-docs" id="bkmrk--4"></div>## Media Resolution

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

<div class="api-docs" id="bkmrk-related_id-%3D-id-rela">- related\_id = id
- related\_category = accommodations

</div>### ساختار خروجی نهایی مدیا:

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

<div class="api-docs" id="bkmrk--5"></div>## 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
}
  
```

<div class="api-docs" id="bkmrk--6"></div>## Response (Success)

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

<div class="api-docs" id="bkmrk--7"></div>## Response (Error)

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

<div class="api-docs" id="bkmrk--8"></div>## Flowchart

<div class="api-docs" id="bkmrk-validate-jwt-%E2%86%93-load-"><div class="flowchart"><div class="flow-item">Validate JWT</div><div class="flow-arrow">↓</div><div class="flow-item">Load hotel record</div><div class="flow-arrow">↓</div><div class="flow-item">Resolve country/state/city</div><div class="flow-arrow">↓</div><div class="flow-item">Load mapping_accommodations</div><div class="flow-arrow">↓</div><div class="flow-item">Load media (logo + gallery)</div><div class="flow-arrow">↓</div><div class="flow-item">Assemble standard response</div><div class="flow-arrow">↓</div><div class="flow-item">Return final JSON</div></div></div>