# RESOURCE /v2/cartable/operator_role

<div class="api-docs" id="bkmrk-">  <div class="endpoint-section">  
</div></div>## Operator Role &amp; Signature Logic

این کنترلر برای انتساب یک "عنوان" (`title`) به یک "اپراتور" (`operator`) و مهم‌تر از آن، ذخیره \*\*تصویر امضای دیجیتال\*\* (`signature\_file`) استفاده می‌شود.   
فایل‌های آپلود شده در فضای ذخیره‌سازی ابری (دیسک `liara`) با ساختار پوشه‌بندی بر اساس شناسه شعبه (`branch`) و تاریخ ذخیره می‌شوند.

<div class="api-docs" id="bkmrk-select-operator-%E2%86%93-de"><div class="endpoint-section"><div class="flowchart"><div class="flow-item">Select Operator</div><div class="flow-arrow">↓</div><div class="flow-item-process" style="background-color: #fff3e0;">**Define Title &amp; Upload Signature**  
(Image validation: max 2MB, jpeg/png...)</div><div class="flow-arrow">↓</div><div class="flow-item-success">File Uploaded to Cloud  
Record Saved in DB</div></div></div>  
---

  </div># List Operator Roles

دریافت لیست نقش‌ها و امضاهای تعریف شده.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcartable%2Fop"><div class="endpoint-info"><div>**URL:** `/v2/cartable/operator_role`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** OperatorRoleController@index</div></div></div>### Query Parameters

<div class="api-docs" id="bkmrk-parameter-type-descr"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">operator</td><td>Integer</td><td>(اختیاری) فیلتر بر اساس شناسه اپراتور.</td></tr><tr><td dir="ltr">status</td><td>Integer</td><td>(اختیاری) فیلتر بر اساس وضعیت.</td></tr></tbody></table>

</div>### Response Structure

```json
{
    "items": [
        {
            "id": 5,
            "operator": 105,
            "title": "مدیر فنی",
            "signature_file": "uploads/100/cartable/signatures/2024/12/example.png",
            "created_at": "...",
            "updated_at": "..."
        }
    ],
    "meta": { "timestamp": 1733764000 }
}
```

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

  </div># Create Role &amp; Upload Signature

تعریف نقش جدید و آپلود تصویر امضا.   
<span style="color: orange;">نکته مهم:</span> این درخواست باید به صورت `multipart/form-data` ارسال شود.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcartable%2Fop-1"><div class="endpoint-info"><div>**URL:** `/v2/cartable/operator_role`</div><div>**Method:** <span class="method-post">POST</span></div><div>**Controller:** OperatorRoleController@store</div></div></div>### Body Parameters (Multipart)

<div class="api-docs" id="bkmrk-parameter-type-descr-1"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">operator</td><td>Integer</td><td>(الزامی) شناسه اپراتور صاحب امضا.</td></tr><tr><td dir="ltr">title</td><td>String</td><td>(الزامی) عنوان شغلی (مثلاً "رئیس هیئت مدیره").</td></tr><tr><td dir="ltr">branch</td><td>Integer</td><td>(الزامی) شناسه شعبه (جهت ساخت مسیر ذخیره‌سازی فایل).</td></tr><tr><td dir="ltr">signature\_file</td><td>File</td><td>(اختیاری) فایل تصویر امضا. فرمت‌های مجاز: jpeg, png, jpg, gif, svg. حداکثر حجم: 2MB.</td></tr></tbody></table>

</div>### Success Response

```json
{
    "payload": {
        "id": 8,
        "operator": 105,
        "title": "رئیس هیئت مدیره",
        "signature_file": "uploads/101/cartable/signatures/2025/12/sig-123.png",
        "created_at": "...",
        "updated_at": "..."
    },
    "meta": { "timestamp": 1733764000 }
}
```

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

  </div># Show Role Details

مشاهده جزئیات یک نقش خاص.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcartable%2Fop-2"><div class="endpoint-info"><div>**URL:** `/v2/cartable/operator_role/{id}`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** OperatorRoleController@show</div></div></div>### Response Structure

```json
{
    "payload": {
        "id": 8,
        "operator": 105,
        "title": "رئیس هیئت مدیره",
        "signature_file": "uploads/101/cartable/signatures/2025/12/sig-123.png",
        "created_at": "...",
        "updated_at": "..."
    },
    "meta": { "timestamp": 1733764000 }
}
```

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

  </div># Update Role &amp; Signature

ویرایش عنوان یا جایگزینی فایل امضا.   
اگر فایل جدیدی ارسال شود، آپلود شده و مسیر آن در دیتابیس جایگزین می‌شود.   
*توجه: در لاراول برای ارسال فایل در متد PUT معمولاً باید از `\_method: PUT` در یک درخواست POST استفاده کنید.*

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcartable%2Fop-3"><div class="endpoint-info"><div>**URL:** `/v2/cartable/operator_role/{id}`</div><div>**Method:** <span class="method-put">PUT</span> / <span class="method-patch">PATCH</span></div><div>**Controller:** OperatorRoleController@update</div></div></div>### Body Parameters

<div class="api-docs" id="bkmrk-parameter-type-descr-2"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">operator</td><td>Integer</td><td>شناسه اپراتور.</td></tr><tr><td dir="ltr">title</td><td>String</td><td>عنوان شغلی جدید.</td></tr><tr><td dir="ltr">branch</td><td>Integer</td><td>شناسه شعبه (الزامی اگر فایل ارسال شود).</td></tr><tr><td dir="ltr">signature\_file</td><td>File</td><td>(اختیاری) تصویر امضای جدید برای جایگزینی.</td></tr></tbody></table>

</div>### Success Response

```json
{
    "payload": {
        "id": 8,
        "operator": 105,
        "title": "عنوان ویرایش شده",
        "signature_file": "uploads/101/cartable/signatures/2025/12/new-sig.png",
        "updated_at": "..."
    },
    "meta": { "timestamp": 1733764000 }
}
```

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

  </div># Delete Role

حذف نقش و امضا.   
**پاکسازی فایل:** این متد علاوه بر حذف رکورد از دیتابیس، فایل امضای مربوطه را نیز از فضای ابری (Liara) پاک می‌کند.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcartable%2Fop-4"><div class="endpoint-info"><div>**URL:** `/v2/cartable/operator_role/{id}`</div><div>**Method:** <span class="method-delete">DELETE</span></div><div>**Controller:** OperatorRoleController@destroy</div></div></div>### Success Response

```json
{
    "payload": 1, // 1 for success
    "meta": { "timestamp": 1733764000 }
}
```