#P1103
Function setRoomingPlanCharter
· هدف:
این متد به عنوان نقطه پایانی برای تخصیص یک مسافر به یک اتاق خاص در یک پلن اتاقبندی عمل میکند. هدف اصلی آن، ثبت یا بهروزرسانی رکورد مربوط به “رومینگ” (تخصیص اتاق) در جدول charter_plans_rooming است. متد ابتدا بررسی میکند که آیا مسافر از قبل به اتاق دیگری در همین پلن تخصیص داده شده است یا خیر. اگر چنین باشد، آن تخصیص قبلی را حذف میکند تا از تخصیص دوگانه یک مسافر جلوگیری شود. سپس، رکورد جدیدی برای تخصیص مسافر (reserve_id) به اتاق (room_id) در پلن (plan_id) درج میکند. این فرآیند اطمینان میدهد که هر مسافر در هر لحظه فقط به یک اتاق در یک پلن مشخص متصل است.
| ویژگیها | توضیحات |
| هدف کلی | تخصیص یک مسافر (رزرو) به یک اتاق در یک پلن اتاقبندی. |
| جلوگیری از تخصیص دوگانه | حذف تخصیص قبلی مسافر در همان پلن قبل از ایجاد تخصیص جدید. |
| عملیات اصلی | درج یک رکورد در جدول charter_plans_rooming. |
| یکپارچگی داده | تضمین اینکه هر مسافر فقط یک جایگاه در پلن دارد. |
| پاسخ موفقیت | بازگرداندن پاسخ 201 Created در صورت موفقیت. |
· ورودیها (پارامترها):
| توضیحات | موقعیت | نوع داده | نام پارمتر |
| شناسه چارتر. | Route |
integer |
$request->id |
| شناسه پلن اتاقبندی. | Body |
integer |
$request->plan_id |
| شناسه اتاق در پلن. | Body |
integer |
$request->room_id |
| شناسه رزرو مسافری که باید به اتاق تخصیص داده شود. | Body |
integer |
$request->reserve_id |
· خروجی (Return):
| توضیحات | نوع داده |
در صورت موفقیت، یک پاسخ خالی با کد 201 Created. |
Illuminate\Http\JsonResponse |
در صورت بروز خطا، یک پاسخ با کد 400 Bad Request. |
Illuminate\Http\JsonResponse |
· مثال استفاده / سناریو:
سناریو: انتقال مسافر با رزرو شناسه ۵۴۳۲ به اتاق با شناسه ۱۰۱ در پلن ۵
- Request Body:
json
{
"plan_id": 5,
"room_id": 101,
"reserve_id": 5432
}
- Action:
DELETE FROM charter_plans_rooming WHERE plan_id = 5 AND reserve_id = 5432اجرا میشود تا هرگونه تخصیص قبلی پاک شود.INSERT INTO charter_plans_rooming (plan_id, room_id, reserve_id) VALUES (5, 101, 5432)اجرا میشود.
- Response:
HTTP Status:201 Created