Skip to main content
#P1770

RESOURCE /v2/cartable/operator_role


Operator Role & Signature Logic

این کنترلر برای انتساب یک "عنوان" (`title`) به یک "اپراتور" (`operator`) و مهم‌تر از آن، ذخیره **تصویر امضای دیجیتال** (`signature_file`) استفاده می‌شود.
فایل‌های آپلود شده در فضای ذخیره‌سازی ابری (دیسک `liara`) با ساختار پوشه‌بندی بر اساس شناسه شعبه (`branch`) و تاریخ ذخیره می‌شوند.

Select Operator
Define Title & Upload Signature
(Image validation: max 2MB, jpeg/png...)
File Uploaded to Cloud
Record Saved in DB


List Operator Roles

دریافت لیست نقش‌ها و امضاهای تعریف شده.

URL: /v2/cartable/operator_role
Method: GET
Controller: OperatorRoleController@index

Query Parameters

Parameter Type Description
operator Integer (اختیاری) فیلتر بر اساس شناسه اپراتور.
status Integer (اختیاری) فیلتر بر اساس وضعیت.

Response Structure

{
    "items": [
        {
            "id": 5,
            "operator": 105,
            "title": "مدیر فنی",
            "signature_file": "uploads/100/cartable/signatures/2024/12/example.png",
            "created_at": "...",
            "updated_at": "..."
        }
    ],
    "meta": { "timestamp": 1733764000 }
}

Create Role & Upload Signature

تعریف نقش جدید و آپلود تصویر امضا.
نکته مهم: این درخواست باید به صورت multipart/form-data ارسال شود.

URL: /v2/cartable/operator_role
Method: POST
Controller: OperatorRoleController@store

Body Parameters (Multipart)

Parameter Type Description
operator Integer (الزامی) شناسه اپراتور صاحب امضا.
title String (الزامی) عنوان شغلی (مثلاً "رئیس هیئت مدیره").
branch Integer (الزامی) شناسه شعبه (جهت ساخت مسیر ذخیره‌سازی فایل).
signature_file File (اختیاری) فایل تصویر امضا. فرمت‌های مجاز: jpeg, png, jpg, gif, svg. حداکثر حجم: 2MB.

Success Response

{
    "payload": {
        "id": 8,
        "operator": 105,
        "title": "رئیس هیئت مدیره",
        "signature_file": "uploads/101/cartable/signatures/2025/12/sig-123.png",
        "created_at": "...",
        "updated_at": "..."
    },
    "meta": { "timestamp": 1733764000 }
}

Show Role Details

مشاهده جزئیات یک نقش خاص.

URL: /v2/cartable/operator_role/{id}
Method: GET
Controller: OperatorRoleController@show

Response Structure

{
    "payload": {
        "id": 8,
        "operator": 105,
        "title": "رئیس هیئت مدیره",
        "signature_file": "uploads/101/cartable/signatures/2025/12/sig-123.png",
        "created_at": "...",
        "updated_at": "..."
    },
    "meta": { "timestamp": 1733764000 }
}

Update Role & Signature

ویرایش عنوان یا جایگزینی فایل امضا.
اگر فایل جدیدی ارسال شود، آپلود شده و مسیر آن در دیتابیس جایگزین می‌شود.
توجه: در لاراول برای ارسال فایل در متد PUT معمولاً باید از `_method: PUT` در یک درخواست POST استفاده کنید.

URL: /v2/cartable/operator_role/{id}
Method: PUT / PATCH
Controller: OperatorRoleController@update

Body Parameters

Parameter Type Description
operator Integer شناسه اپراتور.
title String عنوان شغلی جدید.
branch Integer شناسه شعبه (الزامی اگر فایل ارسال شود).
signature_file File (اختیاری) تصویر امضای جدید برای جایگزینی.

Success Response

{
    "payload": {
        "id": 8,
        "operator": 105,
        "title": "عنوان ویرایش شده",
        "signature_file": "uploads/101/cartable/signatures/2025/12/new-sig.png",
        "updated_at": "..."
    },
    "meta": { "timestamp": 1733764000 }
}

Delete Role

حذف نقش و امضا.
پاکسازی فایل: این متد علاوه بر حذف رکورد از دیتابیس، فایل امضای مربوطه را نیز از فضای ابری (Liara) پاک می‌کند.

URL: /v2/cartable/operator_role/{id}
Method: DELETE
Controller: OperatorRoleController@destroy

Success Response

{
    "payload": 1, // 1 for success
    "meta": { "timestamp": 1733764000 }
}