# POST /v2/core/offices/list

# Core Offices List

این اندپوینت لیست کامل دفاتر (Offices) سیستم را از جدول `offices` بازیابی کرده و برای استفاده در پنل‌های مدیریتی Core Center برگشت می‌دهد. دسترسی به این اندپوینت کاملاً ویژه است و فقط کاربرانی که Branch آن‌ها دقیقاً مقدار **"\[0\]"** باشد می‌توانند وارد شوند.

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

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcore%2Foffice"><div class="endpoint-info"><div>**URL:** `/v2/core/offices/list`</div><div>**Method:** <span class="method-post">POST</span></div><div>**Controller:** CoreController@officesList</div><div>**Middleware Stack:** authWithJwt → core</div></div></div>## Authentication

لازم است هدر زیر حتماً ارسال شود:

```
Authorization: Bearer <JWT_TOKEN>
```

میدلور **AuthWithJWT** موارد زیر را احراز می‌کند:

<div class="api-docs" id="bkmrk-%D8%AA%D9%88%DA%A9%D9%86-%D9%88%D8%AC%D9%88%D8%AF-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%D8%AF">- توکن وجود داشته باشد
- توکن با HS256 و کلید `env('JWT_SECRET_KEY')` معتبر باشد
- UUID در توکن وجود داشته باشد
- کاربر در جدول مربوط به typ (operators / customers / colleague\_auth) یافت شود
- وضعیت کاربر **status = 1** باشد

</div>سپس میدلور group, level, operator را به درخواست اضافه می‌کند.

<div class="api-docs" id="bkmrk--1"></div>## Authorization (Core Access)

میدلور **CoreAccess** سطح دسترسی را کنترل می‌کند.

<div class="api-docs" id="bkmrk-condition-allow%3F-%24re"><table class="schema-table"><thead><tr><th>Condition</th><th>Allow?</th></tr></thead><tbody><tr><td>`$request->get('operator')->branch == "[0]"`</td><td style="color: green;">✔ Access Granted</td></tr><tr><td>Anything Else</td><td style="color: red;">✘ Access Denied</td></tr></tbody></table>

</div>در صورت عدم دسترسی خروجی زیر برگردانده می‌شود:

```
{
  "status": false,
  "time": 1710000000,
  "error": {
    "code": 5005,
    "message": "Access to the [core center] requires special access."
  },
  "support": {
    "phone": "021-91016838 in 121",
    "email": "ict@airplus.app",
    "panel": "helpdesk.airplus.app"
  }
}
  
```

<div class="api-docs" id="bkmrk--2"></div>## Body 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 colspan="4" style="text-align: center; color: #777;">No body parameters</td></tr></tbody></table>

</div>## Response (Success)

خروجی شامل تمام رکوردهای جدول `offices` است.

<div class="api-docs" id="bkmrk-field-type-descripti"><table class="schema-table"><thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>`status`</td><td>boolean</td><td>همیشه true در حالت موفق</td></tr><tr><td>`time`</td><td>integer</td><td>UNIX timestamp</td></tr><tr><td>`data`</td><td>array\[object\]</td><td>نتیجه خام DB::table('offices')-&gt;get()</td></tr></tbody></table>

</div>```
{
  "status": true,
  "time": 1710000000,
  "data": [
    {
      "id": 1,
      "title_fa": "دفتر مرکزی",
      "brand_fa": "ایرپلاس",
      "city": "تهران",
      "status": 1,
      ...
    },
    ...
  ]
}
  
```

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

نمونه خروجی اگر توکن ارسال نشود:

```
{
  "status": false,
  "time": 1710000000,
  "error": {
    "code": 1005,
    "message": "Token not provided!"
  },
  "support": { ... }
}
  
```

<div class="api-docs" id="bkmrk--4"></div>## Process Flow

<div class="api-docs" id="bkmrk-check-bearer-token-%E2%86%93"><div class="flowchart"><div class="flow-item">Check Bearer Token</div><div class="flow-arrow">↓</div><div class="flow-item">Decode JWT (HS256)</div><div class="flow-arrow">↓</div><div class="flow-item">Load User From Table (operators/customers/colleague)</div><div class="flow-arrow">↓</div><div class="flow-item">Check user.status == 1</div><div class="flow-arrow">↓</div><div class="flow-item">CoreAccess → Check operator.branch == "[0]"</div><div class="flow-arrow">↓</div><div class="flow-item">Query DB: offices table</div><div class="flow-arrow">↓</div><div class="flow-item">Return JSON Response</div></div></div>