#P1767
RESOURCE /v2/cartable/subjects
Subject & Workflow Configuration Logic
این کنترلر وظیفه مدیریت "موضوعات نامه" را بر عهده دارد. اهمیت اصلی این بخش در فیلد steps است.
فیلد steps یک آرایه JSON است که "نقشه راه" یا "گردش کار" (Workflow) یک نامه را تعریف میکند. وقتی نامهای با موضوع خاصی ایجاد میشود، سیستم از این تنظیمات برای تولید مراحل (`cartable_letter_steps`) استفاده میکند.
Example: [Step1: Secretary, Step2: Manager, Step3: Archive]
List Subjects
دریافت لیست تمام موضوعات تعریف شده. برخلاف نامهها، در اینجا فعلاً صفحهبندی (Pagination) وجود ندارد و همه رکوردها بر اساس فیلترها بازگردانده میشوند.
/v2/cartable/subjectsQuery 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` شده در دیتابیس ذخیره میشود.
/v2/cartable/subjectsBody 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
مشاهده جزئیات یک موضوع.
/v2/cartable/subjects/{id}Update Subject
ویرایش تنظیمات موضوع.
نکته: طبق کد، فیلد `branch` در متد Update قابل ویرایش نیست (فقط department, title, steps).
/v2/cartable/subjects/{id}Body Parameters
| Parameter | Type | Description |
|---|---|---|
| department | Integer | دپارتمان. |
| title | String | عنوان موضوع. |
| steps | Array | بازتعریف مراحل گردش کار (این تغییر روی نامههای قدیمی تاثیر نمیگذارد، فقط نامههای جدید). |
Delete Subject
حذف فیزیکی (Hard Delete) یک موضوع از دیتابیس.
هشدار: این عملیات Soft Delete نیست و رکورد کاملاً پاک میشود.
/v2/cartable/subjects/{id}