# RESOURCE /v2/places

# Article Places Management

این بخش مربوط به مدیریت **مکان‌های نمایش (Places)** مقالات است.   
مکان‌ها احتمالاً نواحی خاصی در سایت هستند (مثل "اسلایدر اصلی"، "اخبار فوری") که مقالات یا دسته‌بندی‌ها به آن‌ها منتسب می‌شوند.

<div class="api-docs" id="bkmrk-">  ---

</div>## 1. List Places (Index)

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fplaces-meth"><div class="endpoint-info"><div>**URL:** `/v2/places`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** PlaceController@index</div></div></div>لیست مکان‌ها را برمی‌گرداند. برای هر مکان، دسته‌بندی‌های متصل به آن نیز (که در جدول `articles_categories` تعریف شده‌اند) واکشی و ضمیمه می‌شوند.

### فیلترها و منطق کوئری

<div class="api-docs" id="bkmrk-%D9%81%DB%8C%D9%84%D8%AA%D8%B1-branch%3A-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-">- **فیلتر Branch:** سیستم مکان‌هایی را برمی‌گرداند که `branch` آن‌ها برابر با برنچ کاربر جاری باشد **یا** برابر با `0` (سراسری) باشد.
- **فیلتر Type:** اگر پارامتر `type` در URL ارسال شود، نتایج بر اساس آن فیلتر می‌شوند.

</div>### ساختار پاسخ (Different Response Structure)

توجه کنید که آرایه اصلی در کلید `items` قرار دارد.

```json
{
  "items": [
    {
      "id": 1,
      "title": "Home Slider",
      "type": "slider",
      "branch": 0,
      "status": 1,
      "categories": [
        {
          "id": 5,
          "title": "Top News",
          "places": "[1, 2]" 
        }
      ]
    }
  ],
  "meta": {
    "total": 1,
    "time": 1715020000
  }
}
```

<div class="api-docs" id="bkmrk--1"><div dir="ltr"></div>  ---

</div>## 2. Create Place (Store)

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fplaces-meth-1"><div class="endpoint-info"><div>**URL:** `/v2/places`</div><div>**Method:** <span class="method-post">POST</span></div><div>**Controller:** PlaceController@store</div></div></div>ایجاد یک مکان جدید در جدول `articles_places`.

### بدنه درخواست (Body Parameters)

<div class="api-docs" id="bkmrk-field-type-descripti"><div class="table-wrapper"><table class="schema-table" dir="rtl"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>title</td><td>string</td><td>(الزامی) عنوان مکان</td></tr><tr><td>type</td><td>string</td><td>نوع مکان (مثلاً slider, sidebar)</td></tr><tr><td>status</td><td>integer</td><td>وضعیت (1 فعال، 0 غیرفعال)</td></tr><tr><td>branch</td><td>integer</td><td>شناسه شعبه (معمولاً از توکن یا ورودی گرفته می‌شود)</td></tr></tbody></table>

</div>  ---

</div>## 3. Show Place

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fplaces%2F%7Bid%7D"><div class="endpoint-info"><div>**URL:** `/v2/places/{id}`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** PlaceController@show</div></div></div>نمایش جزئیات یک مکان خاص.   
در اینجا نیز کوئری دوم اجرا می‌شود تا تمام دسته‌بندی‌هایی که این مکان در فیلد `places` (JSON) آن‌ها وجود دارد، پیدا شده و به خروجی اضافه شوند.

<div class="api-docs" id="bkmrk--2">  ---

</div>## 4. Update Place

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fplaces%2F%7Bid%7D-1"><div class="endpoint-info"><div>**URL:** `/v2/places/{id}`</div><div>**Method:** <span class="method-put">PUT/PATCH</span></div><div>**Controller:** PlaceController@update</div></div></div>ویرایش اطلاعات مکان. پارامترها مشابه متد Store است.

```json
{
    "status": true,
    "time": 1715020500
}
```

<div class="api-docs" id="bkmrk--3"><div dir="ltr"></div>  ---

</div>## 5. Delete Place

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fplaces%2F%7Bid%7D-2"><div class="endpoint-info"><div>**URL:** `/v2/places/{id}`</div><div>**Method:** <span class="method-delete">DELETE</span></div><div>**Controller:** PlaceController@destroy</div></div></div>حذف رکورد از جدول `articles_places`.