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": [...]

}