Skip to main content
#P1106

Function setAccommodationRooms

·  هدف:

این متد برای تغییر وضعیت یک یا چند اتاق در یک چارتر اقامتی طراحی شده است. هدف اصلی آن، امکان خارج کردن اتاق‌ها از دسترس (status = 2) یا بازگرداندن آن‌ها به حالت در دسترس (status = 1) است. یک منطق امنیتی مهم در این متد وجود دارد: قبل از خارج کردن یک اتاق از دسترس، بررسی می‌کند که آیا آن اتاق در بازه زمانی درخواستی (from, to) دارای رزرو قطعی است یا خیر. اگر رزروی وجود داشته باشد، عملیات متوقف شده و با یک خطای 400 به کاربر اطلاع داده می‌شود. این کار از ایجاد تداخل و از دسترس خارج کردن اتاقی که به مسافری فروخته شده است، جلوگیری می‌کند و یکپارچگی داده‌های رزرو را تضمین می‌نماید.

ویژگی‌ها توضیحات
هدف کلی تغییر وضعیت در دسترس بودن اتاق‌های هتل.
بررسی امنیتی جلوگیری از خارج کردن اتاقی که دارای رزرو است.
عملیات گروهی قابلیت تغییر وضعیت چندین اتاق در یک درخواست.
عملیات اصلی به‌روزرسانی فیلد status در جدول charter_accommodation_rooms.
خطایابی بازگرداندن پیام خطای واضح در صورت وجود رزرو روی اتاق.

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

 

توضیحات موقعیت نوع داده نام پارمتر
آبجکت اصلی درخواست حاوی تمام داده‌های لازم برای ایجاد چارتر. Route integer $request->id
کلید اصلی. نوع چارتر را مشخص می‌کند. مقادیر معتبر: 'route' یا 'accommodation'. Body array $request->items
(برای type: 'route') نوع وسیله نقلیه را مشخص می‌کند: 'aircraft', 'train', 'bus'. Body integer $request->status
آرایه‌ای حاوی جزئیات اصلی چارتر، مانند مبدأ، مقصد، تاریخ و اطلاعات وسیله نقلیه. Body string (date) $request->from
مهم. آرایه‌ای از آبجکت‌ها که کلاس‌های مختلف قیمتی و ظرفیتی چارتر را تعریف می‌کنند. Body string (date) $request->to

·     خروجی (Return):

 

توضیحات نوع داده
در صورت موفقیت، یک آبجکت JSON با payload: true. Illuminate\Http\JsonResponse
در صورت وجود رزرو روی یکی از اتاق‌ها، یک پاسخ با کد 400 Bad Request و پیام خطا. Illuminate\Http\JsonResponse

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

سناریو: تلاش برای خارج کردن اتاقی که رزرو دارد

  • Request Body:
json
    {
        "items": [201],
        "status": 2,
        "from": "2025-10-15",
        "to": "2025-10-25"
    }
  • Action:
  1. متد روی items حلقه می‌زند (برای اتاق 201).
  2. کوئری برای یافتن رزروهای اتاق 201 در بازه زمانی مشخص شده اجرا می‌شود.
  3. فرض: یک رزرو پیدا می‌شود.
  4. عملیات متوقف می‌شود.
  • Response:
  • HTTP Status: 400 Bad Request
  • Body: {"error": {"message": "این اتاق در بازه درخواستی شما دارای رزرو می باشد..."}}