# GET /b2c/v1/online/accommodation/get_details

## Get Accommodation Details

این اندپوینت تمام جزئیات مربوط به یک اقامتگاه (هتل) را بر اساس شناسه ورودی برمی‌گرداند. جزئیات شامل اطلاعات عمومی هتل، رسانه‌ها (تصاویر، ویدیو، لوگو)، امکانات گروه‌بندی‌شده، سیاست‌ها، قوانین عمومی و قوانین استرداد می‌باشد. در صورت وجود چارتر فعال برای آن هتل، اطلاعات انتقال (Transfer) نیز به سیاست‌ها افزوده می‌شود.

<div class="api-docs" id="bkmrk-"><div class="endpoint-section">  
</div>---

</div>### Endpoint Info

<div class="api-docs" id="bkmrk-url%3A-%2Fb2c%2Fv1%2Fonline%2F"><div class="endpoint-info"><div>**URL:** `/b2c/v1/online/accommodation/get_details`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** `V1OnlineController@getAccommodationDetails`</div><div>**Service:** `LibBaseService::getAccommodationDetails`</div><div>**Auth:** Public (No JWT Required)</div></div>---

</div>### Query Parameters

<div class="api-docs" id="bkmrk-%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1-%D9%86%D9%88%D8%B9-%D8%A7%D9%84%D8%B2%D8%A7%D9%85%DB%8C-%D8%AA"><table class="schema-table" dir="rtl"><thead><tr><th>پارامتر</th><th>نوع</th><th>الزامی</th><th>توضیح</th></tr></thead><tbody><tr><td>accommodation\_id</td><td>integer</td><td>✅</td><td>شناسه اقامتگاه مورد نظر در جدول `hotels`.</td></tr></tbody></table>

---

</div>### Logic Flow

<div class="api-docs" id="bkmrk-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF-%D9%87%D8%AA%D9%84-%D8%A7%D8%B2-"><div class="flowchart" dir="rtl"><div class="flow-item">دریافت رکورد هتل از جدول `hotels` توسط `accommodation_id`.</div><div class="flow-arrow">↓</div><div class="flow-item-process">**Media Aggregation** واکشی مدیاهای مرتبط از جدول `media`: - اگر `type = cover` → در اولویت نمایش.
- مدیاها بر اساس نوع گروه‌بندی می‌شوند: تصاویر (image)، ویدیوها (video).
- اگر لوگوی خاص موجود نباشد، لوگوی پیش‌فرض (default) جایگزین می‌شود.

</div><div class="flow-arrow">↓</div><div class="flow-item-process">**Facilities &amp; Categories**- اتصال جدول `facilities` با `accommodation_facilities_mapping`.
- سپس گروه‌بندی امکانات بر اساس `facilities_categories`.
- اگر هیچ موردی موجود نباشد → مقدار false برگردانده می‌شود.

</div><div class="flow-arrow">↓</div><div class="flow-item-process">**Policies &amp; Rules**- واکشی `accommodation_policies`، `accommodation_cancellation_rules`، و `accommodation_rules`.
- در صورت وجود چارتر فعال (جدول `charters`)، قوانین Transfer (Welcome/Return) از `charter_items.details` افزوده می‌شود.

</div><div class="flow-arrow">↓</div><div class="flow-item-success">**Return JSON Response**  
داده‌ها در قالب `AccommodationResource` بازگردانده می‌شوند.</div></div>---

</div>### Response Structure

<div class="api-docs" id="bkmrk-%DA%A9%D9%84%DB%8C%D8%AF-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD-status-tr"><table class="schema-table" dir="rtl"><thead><tr><th>کلید</th><th>توضیح</th></tr></thead><tbody><tr><td>Status</td><td>true در صورت موفقیت در یافتن هتل.</td></tr><tr><td>Time</td><td>timestamp یونیکس.</td></tr><tr><td>Data</td><td>شیء بازگشتی از نوع `AccommodationResource`.</td></tr></tbody></table>

</div>### AccommodationResource شامل فیلدهای زیر است:

<div class="api-docs" id="bkmrk-%D9%81%DB%8C%D9%84%D8%AF-%D8%AA%D9%88%D8%B6%DB%8C%D8%AD-id-%D8%B4%D9%86%D8%A7%D8%B3%D9%87-"><table class="schema-table" dir="rtl"><thead><tr><th>فیلد</th><th>توضیح</th></tr></thead><tbody><tr><td>id</td><td>شناسه اقامتگاه</td></tr><tr><td>fa\_title / en\_title</td><td>عنوان فارسی و انگلیسی</td></tr><tr><td>rate</td><td>ستاره (رتبه)</td></tr><tr><td>city, state, country</td><td>محل جغرافیایی</td></tr><tr><td>address, location</td><td>آدرس و موقعیت مکانی</td></tr><tr><td>description</td><td>توضیحات</td></tr><tr><td>media</td><td>شامل `images` و `videos` (یا false در صورت عدم وجود)</td></tr><tr><td>logo</td><td>مسیر لوگوی اختصاصی یا پیش‌فرض.</td></tr><tr><td>facility\_categories</td><td>آرایه‌ای از دسته‌بندی امکانات (هر مورد شامل id، title، facilities).</td></tr><tr><td>rules</td><td>آبجکت شامل کلیدهای cancellation، public، و policies.</td></tr></tbody></table>

---

</div>### Example Response (Success)

```json
{
  "Status": true,
  "Time": 1733744800,
  "Data": {
    "id": 2137,
    "fa_title": "هتل بزرگ شیراز",
    "en_title": "Grand Hotel Shiraz",
    "rate": 5,
    "city": "شیراز",
    "address": "بلوار قرآن، نرسیده به دروازه قرآن",
    "logo": "https://storage.service01.ir/media/accommodations/2025/logo/grand-shiraz.png",
    "media": {
      "images": [{ "path": "https://storage.../1.jpg" }],
      "videos": false
    },
    "facility_categories": [
      {
        "id": 3,
        "title": "امکانات رفاهی",
        "facilities": [
          { "id": 12, "title": "استخر سرپوشیده" },
          { "id": 24, "title": "سونا و جکوزی" }
        ]
      }
    ],
    "rules": {
      "cancellation": [
        { "id": 1, "hours_before": 48, "percent": 10 }
      ],
      "public": [
        { "id": 2, "rule": "ورود حیوانات خانگی ممنوع است" }
      ],
      "policies": {
        "checkin": "14:00",
        "checkout": "12:00",
        "welcome_transfer": 1,
        "return_transfer": 0
      }
    }
  }
}
```

### Example Response (Not Found)

```json
{
  "Status": false,
  "Time": 1733744801,
  "Message": "Accommodation not found."
}
```