#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:
- متد درخواست را دریافت کرده و حلقه را روی آرایه
reservationsشروع میکند. - برای رزرو
12345، آبجکتpassengerرا در دیتابیس پیدا کرده، نام خانوادگی را آپدیت و مجدداً به صورت JSON ذخیره میکند. - برای رزرو
12346، فیلدstatusرا در دیتابیس به2تغییر میدهد.
- Response:
- کد وضعیت:
204 No Content - Body: (خالی)