Skip to main content
#P1767

RESOURCE /v2/cartable/subjects


Subject & Workflow Configuration Logic

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

Admin Define Subject
Define Steps (JSON)
Example: [Step1: Secretary, Step2: Manager, Step3: Archive]
Saved in `cartable_subjects`

Used by LetterController


List Subjects

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

URL: /v2/cartable/subjects
Method: GET
Controller: SubjectController@index

Query Parameters

Parameter Type Description
department Integer (اختیاری) فیلتر بر اساس دپارتمان.
status Integer (اختیاری) فیلتر بر اساس وضعیت فعال/غیرفعال بودن موضوع.

Response Structure

{
    "items": [
        {
            "id": 1,
            "branch": 101,
            "department": 5,
            "title": "درخواست مرخصی",
            "steps": "[{\"order\":1, \"role\":\"manager\"}, ...]", // JSON String
            "created_at": "...",
            "updated_at": "..."
        }
    ],
    "meta": { "timestamp": 1733758000 }
}

Create Subject & Workflow

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

URL: /v2/cartable/subjects
Method: POST
Controller: SubjectController@store

Body Parameters

Parameter Type Description
branch Integer (الزامی) شناسه شعبه.
department Integer شناسه دپارتمان مربوطه.
title String عنوان موضوع (مثلاً: "درخواست وام").
steps Array آرایه مراحل گردش کار (JSON). این ساختار برای تولید خودکار مراحل حیاتی است.

Success Response

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

Show Subject Details

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

URL: /v2/cartable/subjects/{id}
Method: GET
Controller: SubjectController@show

Update Subject

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

URL: /v2/cartable/subjects/{id}
Method: PUT / PATCH
Controller: SubjectController@update

Body Parameters

Parameter Type Description
department Integer دپارتمان.
title String عنوان موضوع.
steps Array بازتعریف مراحل گردش کار (این تغییر روی نامه‌های قدیمی تاثیر نمی‌گذارد، فقط نامه‌های جدید).

Delete Subject

حذف فیزیکی (Hard Delete) یک موضوع از دیتابیس.
هشدار: این عملیات Soft Delete نیست و رکورد کاملاً پاک می‌شود.

URL: /v2/cartable/subjects/{id}
Method: DELETE
Controller: SubjectController@destroy