# RESOURCE /v2/cartable/subjects

<div class="api-docs" id="bkmrk-">  <div class="endpoint-section">  
</div></div>## Subject &amp; Workflow Configuration Logic

این کنترلر وظیفه مدیریت "موضوعات نامه" را بر عهده دارد. اهمیت اصلی این بخش در فیلد `steps` است.   
فیلد `steps` یک آرایه JSON است که "نقشه راه" یا "گردش کار" (Workflow) یک نامه را تعریف می‌کند. وقتی نامه‌ای با موضوع خاصی ایجاد می‌شود، سیستم از این تنظیمات برای تولید مراحل (`cartable\_letter\_steps`) استفاده می‌کند.

<div class="api-docs" id="bkmrk-admin-define-subject"><div class="endpoint-section"><div class="flowchart"><div class="flow-item">Admin Define Subject</div><div class="flow-arrow">↓</div><div class="flow-item-process" style="background-color: #fff3e0;">**Define Steps (JSON)**  
Example: [Step1: Secretary, Step2: Manager, Step3: Archive]</div><div class="flow-arrow">↓</div><div class="flow-item-success">Saved in `cartable_subjects`</div><div class="flow-arrow" style="border-left: 2px dashed #999; height: 30px; width: 0; margin: 0 auto;">  
</div><div class="flow-item" style="border: 1px dashed #999; color: #666; font-size: 0.8em;">Used by LetterController</div></div></div>  
---

  </div># List Subjects

دریافت لیست تمام موضوعات تعریف شده. برخلاف نامه‌ها، در اینجا فعلاً صفحه‌بندی (Pagination) وجود ندارد و همه رکوردها بر اساس فیلترها بازگردانده می‌شوند.

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcartable%2Fsu"><div class="endpoint-info"><div>**URL:** `/v2/cartable/subjects`</div><div>**Method:** <span class="method-get">GET</span></div><div>**Controller:** SubjectController@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">department</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": 1,
            "branch": 101,
            "department": 5,
            "title": "درخواست مرخصی",
            "steps": "[{\"order\":1, \"role\":\"manager\"}, ...]", // JSON String
            "created_at": "...",
            "updated_at": "..."
        }
    ],
    "meta": { "timestamp": 1733758000 }
}
```

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

  </div># Create Subject &amp; Workflow

تعریف یک موضوع جدید به همراه مراحل گردش کار آن.   
**نکته فنی:** آرایه `steps` به صورت `json\_encode` شده در دیتابیس ذخیره می‌شود.

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

<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">branch</td><td>Integer</td><td>(الزامی) شناسه شعبه.</td></tr><tr><td dir="ltr">department</td><td>Integer</td><td>شناسه دپارتمان مربوطه.</td></tr><tr><td dir="ltr">title</td><td>String</td><td>عنوان موضوع (مثلاً: "درخواست وام").</td></tr><tr><td dir="ltr">steps</td><td>Array</td><td>آرایه مراحل گردش کار (JSON). این ساختار برای تولید خودکار مراحل حیاتی است.</td></tr></tbody></table>

</div>### Success Response

```json
{
    "payload": {
        "id": 12,
        "title": "New Workflow",
        "steps": "[\"step1\", \"step2\"]",
        "created_at": "..."
    },
    "meta": { "timestamp": 1733758000 }
}
```

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

  </div># Show Subject Details

مشاهده جزئیات یک موضوع.

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

  </div># Update Subject

ویرایش تنظیمات موضوع.   
**نکته:** طبق کد، فیلد `branch` در متد Update قابل ویرایش نیست (فقط department, title, steps).

<div class="api-docs" id="bkmrk-url%3A-%2Fv2%2Fcartable%2Fsu-3"><div class="endpoint-info"><div>**URL:** `/v2/cartable/subjects/{id}`</div><div>**Method:** <span class="method-put">PUT</span> / <span class="method-patch">PATCH</span></div><div>**Controller:** SubjectController@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">department</td><td>Integer</td><td>دپارتمان.</td></tr><tr><td dir="ltr">title</td><td>String</td><td>عنوان موضوع.</td></tr><tr><td dir="ltr">steps</td><td>Array</td><td>بازتعریف مراحل گردش کار (این تغییر روی نامه‌های قدیمی تاثیر نمی‌گذارد، فقط نامه‌های جدید).</td></tr></tbody></table>

---

  </div># Delete Subject

حذف فیزیکی (Hard Delete) یک موضوع از دیتابیس.   
<span style="color: red;">هشدار:</span> این عملیات Soft Delete نیست و رکورد کاملاً پاک می‌شود.

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