# POST /api/v2/tasks/category/operation

<div id="bkmrk-" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### Route Info

<div id="bkmrk-method-endpoint-cont" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"><div><table border="1" style="width: 100%; margin: auto; border-collapse: collapse; text-align: center; border: 1px solid #ddd;"><tbody><tr style="background: #f4f4f4; font-weight: bold;"><td style="padding: 10px;">Method</td><td style="padding: 10px;">Endpoint</td><td style="padding: 10px;">Controller</td></tr><tr><td style="direction: ltr; padding: 10px;">POST</td><td style="direction: ltr; padding: 10px;">/api/v2/tasks/category/operation</td><td style="direction: ltr; padding: 10px;">OfficialController@operationTasksCategory</td></tr></tbody></table>

</div></div>### شرح عملکرد (Functionality)

این متد مدیریت کامل (CRUD) دسته‌بندی‌های تسک را بر عهده دارد و بر اساس پارامتر `action` رفتار متفاوتی نشان می‌دهد:

<div id="bkmrk-%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA-store-%28%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF%29" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">- **عملیات Store (ایجاد):**
    - یک رکورد جدید در جدول `tasks_categories` ایجاد می‌کند.
    - فیلد `user` با شناسه اپراتور جاری و فیلد `branch` با شناسه شعبه جاری پر می‌شود.
    - اطلاعات ظاهری (عنوان، رنگ، آیکون) از آرایه `data` دریافت می‌شود.
- **عملیات Update (ویرایش):**
    - رکورد مربوط به `id` ارسالی را در جدول `tasks_categories` پیدا کرده و فیلدهای `title`، `color` و `icon` را به‌روزرسانی می‌کند.
- **عملیات Delete (حذف کامل و آبشاری):**
    - ابتدا خود دسته‌بندی را از جدول `tasks_categories` حذف می‌کند.
    - سپس تمام تسک‌های زیرمجموعه این دسته‌بندی را از جدول `tasks_items` حذف می‌کند.
    - در نهایت، تمامی یادداشت‌ها (Notes) مرتبط با آن تسک‌های حذف شده را نیز از جدول `tasks_notes` پاک می‌کند تا دیتای یتیم (Orphan Data) باقی نماند.

</div>### پارامترهای ورودی (Input Parameters)

<div id="bkmrk-%D9%86%D8%A7%D9%85-%D9%BE%D8%A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1-%D9%86%D9%88%D8%B9-%D8%A7%D9%84%D8%B2%D8%A7" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"><div><table border="1" style="width: 100%; border-collapse: collapse; text-align: right;"><thead><tr style="background: #f4f4f4;"><th style="padding: 8px;">نام پارامتر</th><th style="padding: 8px;">نوع</th><th style="padding: 8px;">الزامی؟</th><th style="padding: 8px;">توضیحات</th></tr></thead><tbody><tr><td style="direction: ltr;">action</td><td>String</td><td>بله</td><td>نوع عملیات: `store`, `update`, `delete`.</td></tr><tr><td style="direction: ltr;">id</td><td>Integer</td><td>شرطی</td><td>برای `update` و `delete` الزامی است.</td></tr><tr><td style="direction: ltr;">data</td><td>Array</td><td>شرطی</td><td>برای `store` و `update` الزامی است. حاوی اطلاعات دسته‌بندی.</td></tr></tbody></table>

</div></div>#### ساختار آرایه `data`:

```
{
    "title": "عنوان دسته‌بندی",
    "color": "#FF0000",  // کد رنگ HEX
    "icon": "fa-list"    // کلاس آیکون (مثلاً FontAwesome)
}
```

<div id="bkmrk--1" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### نمونه خروجی (Response)

در صورت موفقیت عملیات:

```
{
    "status": true,
    "time": 1732615200
}
```

در صورت بروز خطا (Exception):

```
{
    "status": false,
    "time": 1732615200,
    "message": "Error message description",
    "trace": [ ... ]
}
```