Skip to main content
#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": [...]
}