#P1761
RESOURCE /v2/scrumboard/checklists
Checklist Hydration Logic
در تمامی متدها (لیست، ایجاد، نمایش، ویرایش)، دادههای خام دیتابیس قبل از ارسال به کلاینت پردازش میشوند. فیلد `checkitems` از رشته JSON به آرایه تبدیل شده و شناسه `operator` به آبجکت کامل اپراتور تبدیل میگردد.
Fetch Record(s) from DB
↓
Step 1: Decode Checkitems
Input: JSON String (e.g., "[{...}]")
Output: Array (or [] if null)
Input: JSON String (e.g., "[{...}]")
Output: Array (or [] if null)
↓
Step 2: Hydrate Operator
Input: Operator ID (Int)
Action: Fetch from `operators` table
Output: Object {id, name, avatar...}
Input: Operator ID (Int)
Action: Fetch from `operators` table
Output: Object {id, name, avatar...}
↓
Return Hydrated JSON
Get Card Checklists
دریافت لیست تمامی چکلیستهای متصل به یک کارت (Card) مشخص. آیتمهای داخلی چکلیست و اطلاعات اپراتور مسئول به صورت خودکار بارگذاری میشوند.
URL:
/v2/scrumboard/checklistsMethod: GET
Controller: ChecklistController@index
Parameters
| Parameter | Type | Location | Description |
|---|---|---|---|
| card_id | Integer | Query | (الزامی) شناسه کارتی که چکلیستها متعلق به آن هستند. |
| status | Integer | Query | (اختیاری) فیلتر بر اساس وضعیت (مثلاً 1 فعال). |
Response Structure
{
"items": [
{
"id": 1,
"card_id": 101,
"title": "QA Testing",
"checkitems": [
{ "text": "Test Login", "done": true },
{ "text": "Test Logout", "done": false }
],
"operator": {
"id": 5,
"first_name": "Ali",
"last_name": "Rezaei",
"avatar": "path/to/img.jpg"
...
},
"duration": "2h",
"status": 1,
"created_at": "..."
}
],
"meta": { "timestamp": 1733754000 }
}
Create Checklist
ایجاد یک چکلیست جدید. کلاینت میتواند آرایهای از آیتمها (`checkitems`) را ارسال کند که در سمت سرور به JSON تبدیل و ذخیره میشود.
URL:
/v2/scrumboard/checklistsMethod: POST
Controller: ChecklistController@store
Parameters
| Parameter | Type | Description |
|---|---|---|
| card_id | Integer | شناسه کارت والد. |
| title | String | عنوان کلی چکلیست. |
| checkitems | Array | آرایهای از آبجکتها (آیتمهای تیکدار). |
| operator | Integer | شناسه اپراتور مسئول (اختیاری). |
| duration | String | مدت زمان تخمینی/صرف شده (اختیاری). |
Success Response
{
"payload": {
"id": 15,
"title": "Deployment Steps",
"checkitems": [ ... ], // آرایه دیکد شده
"operator": { ... }, // آبجکت اپراتور (اگر ارسال شده باشد)
"created_at": "..."
},
"meta": { "timestamp": 1733754000 }
}
Show Checklist
دریافت جزئیات یک چکلیست خاص با شناسه ID.
URL:
/v2/scrumboard/checklists/{id}Method: GET
Controller: ChecklistController@show
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | شناسه چکلیست. |
Response
اگر یافت نشود، payload: false برمیگرداند.
{
"payload": {
"id": 15,
"title": "Deployment Steps",
"checkitems": [],
"operator": null,
...
},
"meta": { "timestamp": 1733754000 }
}
Update Checklist
ویرایش اطلاعات چکلیست. این متد معمولاً برای تغییر عنوان، وضعیت، تغییر مسئول (`operator`) یا بهروزرسانی محتوای آیتمهای داخلی (`checkitems`) استفاده میشود.
URL:
/v2/scrumboard/checklists/{id}Method: PUT / PATCH
Controller: ChecklistController@update
Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
| card_id | Integer | شناسه کارت. | - |
| title | String | عنوان چکلیست. | - |
| checkitems | Array | آرایه کامل آیتمها (جایگزین قبلی میشود). | null |
| operator | Integer | شناسه اپراتور جدید. | null |
| duration | String | مدت زمان. | null |
| status | Integer | وضعیت. | 1 |
Success Response
{
"payload": {
"id": 15,
"title": "Updated Title",
"checkitems": [ ... ],
"operator": { ... },
"updated_at": "..."
},
"meta": { "timestamp": 1733754000 }
}
Delete Checklist
حذف چکلیست از دیتابیس.
URL:
/v2/scrumboard/checklists/{id}Method: DELETE
Controller: ChecklistController@destroy
Success Response
{
"payload": 1, // تعداد ردیفهای حذف شده
"meta": {
"timestamp": 1733754000
}
}