Skip to main content
#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:
  1. متد درخواست را با action: "add" دریافت می‌کند.
  2. به ازای هر 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:
  1. متد درخواست را با action: "remove" دریافت می‌کند.
  2. رکوردهایی از جدول charter_warranties که id آن‌ها در آرایه [35, 36] موجود است را حذف فیزیکی (delete) می‌کند.
  • Response:
  • کد وضعیت: 204 No Content