#P1111
Function operationWarrantyCharter
· هدف:
این متد به منظور مدیریت گارانتیکنندگان (تضامین) یک چارتر خاص طراحی شده است. بر اساس پارامتر action که در درخواست ارسال میشود، این تابع میتواند یک یا چند گارانتیکننده جدید را به چارتر اضافه کند (add) یا گارانتیکنندگان موجود را از آن حذف نماید (remove). این قابلیت به مدیر سیستم اجازه میدهد تا به صورت پویا لیست همکارانی که فروش صندلیها یا اتاقها را تضمین کردهاند، مدیریت کند.
| ویژگیها | توضیحات |
| هدف کلی | افزودن یا حذف گارانتیکنندگان (تضامین) برای یک چارتر. |
| عملیات دوگانه | با استفاده از پارامتر action، هم کار add و هم remove را انجام میدهد. |
| پردازش دستهای | قابلیت افزودن یا حذف چندین گارانتیکننده با یک درخواست. |
| جلوگیری از تکرار | هنگام افزودن، بررسی میکند که گارانتیکننده قبلاً برای آن چارتر ثبت نشده باشد. |
| عملیات اتمی | عملیات افزودن یا حذف در یک تراکنش واحد انجام میشود. |
· ورودیها (پارامترها):
| توضیحات | موقعیت | نوع داده | نام پارمتر |
(اجباری) شناسه اصلی چارتر (charter_id) که عملیات روی آن انجام میشود. |
Body |
integer |
$request->main_id |
(اجباری) نوع عملیات. باید یکی از مقادیر add یا remove باشد. |
Body |
string |
$request->action |
(اجباری) آرایهای از شناسهها. در حالت add، این آرایه شامل guarantor_id (شناسه همکار) است. در حالت remove، این آرایه شامل warranty_id (شناسه رکورد تضمین در جدول charter_warranties) است. |
Body |
array |
$request->items |
· خروجی (Return):
| توضیحات | نوع داده |
در صورت موفقیت کامل، یک پاسخ خالی با کد وضعیت 204 No Content برمیگرداند. |
Illuminate\Http\JsonResponse |
در صورت بروز خطا (مثلاً ارسال action نامعتبر)، یک پاسخ با کد 400 Bad Request حاوی جزئیات خطا برمیگرداند. |
Illuminate\Http\JsonResponse |
· مثال استفاده / سناریو:
سناریو ۱: افزودن دو همکار با شناسههای ۲۰۰۱ و ۲۰۰۲ به عنوان گارانتیکننده برای چارتر ۱۰۰.
- Request Body:
json
{
"main_id": 100,
"action": "add",
"items": [2001, 2002]
}
- Action:
- متد درخواست را با
action: "add"دریافت میکند. - به ازای هر
idدر آرایهitems، یک رکورد جدید در جدولcharter_warrantiesباcharter_id = 100وguarantor = idایجاد میکند (به شرطی که از قبل وجود نداشته باشد).
- Response:
- کد وضعیت:
204 No Content
سناریو ۲: حذف دو تضمین با شناسههای ۳۵ و ۳۶ از چارتر مربوطه.
- Request Body:
json
{
"main_id": 100, // در این سناریو main_id استفاده نمیشود ولی ارسال آن الزامی است
"action": "remove",
"items": [35, 36]
}
- Action:
- متد درخواست را با
action: "remove"دریافت میکند. - رکوردهایی از جدول
charter_warrantiesکهidآنها در آرایه[35, 36]موجود است را حذف فیزیکی (delete) میکند.
- Response:
- کد وضعیت:
204 No Content