Skip to main content
#P1109

Function updateCharterReservation

·  هدف:

این متد برای ویرایش اطلاعات رزرو یک یا چند مسافر به صورت همزمان استفاده می‌شود. کاربر می‌تواند اطلاعات هویتی (مانند نام، کد ملی)، اطلاعات تماس (ایمیل، موبایل) و یا حتی وضعیت رزرو (مثلاً تغییر از حالت موقت به قطعی) را برای لیستی از رزروها تغییر دهد. متد قبل از اعمال تغییرات، اعتبارسنجی‌های لازم را روی داده‌های جدید انجام می‌دهد تا از صحت آن‌ها اطمینان حاصل کند. این عملیات به صورت اتمیک برای هر رزرو انجام می‌شود تا از بروز خطا و ناقص ماندن اطلاعات جلوگیری شود.

ویژگی‌ها توضیحات
هدف کلی ویرایش اطلاعات یک یا چند رزرو موجود در یک چارتر.
پردازش دسته‌ای قابلیت آپدیت کردن چندین رزرو (reservation_id) با یک درخواست واحد.
اعتبارسنجی ورودی ولیدیشن داده‌های جدید قبل از ذخیره‌سازی (مانند فرمت صحیح ایمیل و موبایل).
به‌روزرسانی انتخابی فقط فیلدهایی که در درخواست ارسال شوند، به‌روزرسانی می‌شوند.
عملیات اتمی هر رزرو به صورت مستقل و کامل آپدیت می‌شود.

·     ورودی‌ها (پارامتر‌ها):

 

توضیحات موقعیت نوع داده نام پارمتر
آرایه‌ای از آبجکت‌های رزرو که هر کدام شامل شناسه رزرو و فیلدهای مورد نظر برای ویرایش است. Body array $request->reservations
(اجباری) شناسه رزرو (reservation_id) که قرار است ویرایش شود. Body integer $reservation['id']
(اختیاری) آبجکتی شامل اطلاعات جدید مسافر (مانند fullname, identity, birth, mobile, email). Body object $reservation['passenger']
(اختیاری) کد وضعیت جدید رزرو (مثلاً 1 برای قطعی، 2 برای کنسل). Body integer $reservation['status']

·     خروجی (Return):

 

توضیحات نوع داده
در صورت موفقیت کامل، یک پاسخ خالی با کد وضعیت 204 No Content برمی‌گرداند. Illuminate\Http\JsonResponse
در صورت بروز خطا در حین پردازش (مثلاً پیدا نشدن یکی از رزروها)، یک پاسخ با کد 400 Bad Request حاوی جزئیات خطا برمی‌گرداند. Illuminate\Http\JsonResponse
در صورت وجود خطای اعتبارسنجی در داده‌های ورودی، یک پاسخ با کد 422 Unprocessable Entity برمی‌گرداند. Illuminate\Http\JsonResponse

·  مثال استفاده / سناریو:

سناریو:سناریو: اصلاح نام خانوادگی مسافر در رزرو شماره ۱۲۳۴۵ و تغییر وضعیت رزرو شماره ۱۲۳۴۶ به کنسل شده.

  • Request Body:
json
    {
        "reservations": [
            {
                "id": 12345,
                "passenger": {
                    "fullname": {
                        "last_name": { "fa": "اکبری", "en": "Akbari" }
                    }
                }
            },
            {
                "id": 12346,
                "status": 2
            }
        ]
    }
  • Action:
  1. متد درخواست را دریافت کرده و حلقه را روی آرایه reservations شروع می‌کند.
  2. برای رزرو 12345، آبجکت passenger را در دیتابیس پیدا کرده، نام خانوادگی را آپدیت و مجدداً به صورت JSON ذخیره می‌کند.
  3. برای رزرو 12346، فیلد status را در دیتابیس به 2 تغییر می‌دهد.
  • Response:
  • کد وضعیت: 204 No Content
  • Body: (خالی)