#P1559
POST /api/v2/tasks/task/operation
Route Info
| Method | Endpoint | Controller | Middleware |
| POST | /api/v2/tasks/task/operation | OfficialController@operationTask | authWithJwt |
شرح عملکرد (Functionality)
این متد یک رابط چندمنظوره برای مدیریت چرخه حیات تسکها است که بر اساس پارامتر action عملیاتهای مختلفی را روی دیتابیس اجرا میکند:
- store (ایجاد تسک):
- شناسایی اپراتورهای مسئول و ارسال نوتیفیکیشن تلگرام جهت اطلاعرسانی.
- ذخیره اطلاعات اصلی تسک در جدول
tasks_items. - در صورت وجود چکلیست، آیتمهای آن به صورت مجزا در جدول
tasks_item_checklistثبت میشوند.
- store_note (ثبت یادداشت):
- ذخیره یادداشت جدید در جدول
tasks_notesمتصل به تسک. - ارسال اعلان به تمامی افراد درگیر در تسک (شامل سازنده و مسئولین) به جز شخصی که یادداشت را ثبت کرده است.
- ذخیره یادداشت جدید در جدول
- update (ویرایش تسک):
- بروزرسانی فیلدهای اطلاعاتی تسک و ارسال اعلان تغییرات به کاربران مرتبط.
- مدیریت چکلیست:
- آیتمهای جدید (بدون شناسه) به لیست اضافه میشوند.
- آیتمهای موجود (با شناسه)، وضعیت انجام کار (
done_atوdone_by) آنها بروزرسانی میشود.
- حذف آیتمهای چکلیست مشخص شده در آرایه
deleted_checklist.
- update_order (تغییر اولویت نمایش):
- دریافت لیستی از تسکها و بروزرسانی ترتیب (Order) آنها در دیتابیس جهت نمایش مرتبسازی شده.
- update_status (تغییر وضعیت):
- تغییر وضعیت تسک (به عنوان مثال: انجام شده/در حال انجام) و اطلاعرسانی به ذینفعان.
- بازگرداندن تعداد بهروز شدهی تسکهای فعال کاربر جهت بروزرسانی UI.
- delete (حذف):
- حذف فیزیکی رکورد تسک و تمامی یادداشتهای وابسته به آن از سیستم.
پارامترهای ورودی (Body Parameters)
| نام پارامتر | نوع | الزامی؟ | توضیحات |
|---|---|---|---|
| action | String | بله | تعیین نوع عملیات: store, update, delete, store_note, update_order, update_status |
| id | Integer | شرطی | شناسه تسک (در متدهای ویرایشی و حذفی الزامی است). |
| data | Array | بله | حاوی جزئیات عملیات (طبق ساختار زیر). |
ساختار آبجکت data:
- برای ایجاد و ویرایش (store/update):
{ "category": int, "title": string, "priority": int, "description": string, "deadline": string (nullable), "operators": [int, int], // لیست ID مسئولین "checklist": [ { "id": int (optional), "content": string, "done": boolean } ] } - برای یادداشت (store_note):
{ "note": "متن یادداشت" } - برای وضعیت (update_status):
{ "status": int }
نمونه خروجی (Response)
عملیات موفق (Success):
{
"status": true,
"time": 1732048123,
"tasks": 12 // (فقط در update_status موجود است)
}
بروز خطا (Error):
{
"status": false,
"time": 1732048123,
"message": "Error description...",
"trace": [...]
}