# POST /v2/core/accommodation/supplier/store

# Core Accommodation Supplier Store

این اندپوینت برای ایجاد یک **Supplier** جدید (نوع colleague) و اتصال آن به یک اقامتگاه استفاده می‌شود. این عملیات شامل ایجاد رکورد جدید در جدول `colleagues` با سریال اختصاصی و سپس ثبت ارتباط در `mapping_colleagues` است.

<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/supplier/store`</div><div>**Method:** <span class="method-post">POST</span></div><div>**Controller:** CoreController@supplierAccommodation</div><div>**Middleware Stack:** authWithJwt → core</div></div></div>## Access Control

<div class="api-docs" id="bkmrk-jwt-%D9%85%D8%B9%D8%AA%D8%A8%D8%B1-%D8%AF%D8%B1-middlew">- JWT معتبر
- در middleware core، فقط زمانی اجازه داده می‌شود که `operator.branch == "[0]"`

</div>## Request Body Schema

<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>data</td><td>object</td><td>yes</td><td>اطلاعات کامل Supplier</td></tr><tr><td>accommodation\_id</td><td>integer</td><td>yes</td><td>ID اقامتگاه که Supplier به آن متصل می‌شود</td></tr></tbody></table>

</div>### Structure of data

<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>title.fa</td><td>string</td><td>نام فارسی Supplier</td></tr><tr><td>title.en</td><td>string</td><td>نام انگلیسی Supplier</td></tr><tr><td>logo</td><td>string|null</td><td>آدرس یا مسیر لوگو</td></tr></tbody></table>

</div>## Insert Logic

### 1. ایجاد رکورد colleague

<div class="api-docs" id="bkmrk-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF-%D8%AF%D8%B1-%D8%AC%D8%AF%D9%88%D9%84-collea">- رکورد در جدول `colleagues` درج می‌شود.
- **branch** ثابت و برابر **2** است.
- **serial** با فراخوانی: <div class="code-inline">StaticController::getSerialId('colleague', 2)</div>تولید می‌شود.
- **foundation = 1**
- **category = 5**
- **type = 1**
- فیلدهای office و office\_en از: 
    - `data.title.fa`
    - `data.title.en`
- فیلد logo مقداردهی می‌شود.
- **created\_at** و **updated\_at** هر دو با `Carbon::now()->toDateTimeString()` مقدار می‌گیرند.

</div>### 2. درج در mapping\_colleagues

<div class="api-docs" id="bkmrk-colleague-%3D-id-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF">- colleague = ID رکورد ایجادشده
- accommodation = مقدار ارسال‌شده در `accommodation_id`

</div>## Serial Generation Logic (colleague)

فراخوانی زیر انجام می‌شود:

```
StaticController::getSerialId('colleague', 2)
```

منطق:

<div class="api-docs" id="bkmrk-%D8%AC%D8%AF%D9%88%D9%84%3A-colleagues-que">- جدول: `colleagues`
- Query: بر اساس branch = 2
- اگر رکورد وجود داشته باشد → serial آخر + 1
- اگر هیچ رکوردی نباشد → مقدار اولیه = 2

</div>## Response (Success)

```
{
  "status": true,
  "time": 1710000000,
  "message": "1023 | Supplier stored!"
}
  
```

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

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

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

<div class="api-docs" id="bkmrk-validate-jwt-%26-core-"><div class="flowchart"><div class="flow-item">Validate JWT &amp; Core Access</div><div class="flow-arrow">↓</div><div class="flow-item">Read data + accommodation_id</div><div class="flow-arrow">↓</div><div class="flow-item">Generate colleague serial (getSerialId)</div><div class="flow-arrow">↓</div><div class="flow-item">Insert colleague into colleagues table</div><div class="flow-arrow">↓</div><div class="flow-item">Insert mapping to mapping_colleagues</div><div class="flow-arrow">↓</div><div class="flow-item">Return success JSON</div></div></div>