Skip to main content
#P1110

Function deleteCharterReservation

·  هدف:

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

ویژگی‌ها توضیحات
هدف کلی حذف موقت و غیرفیزیکی (Soft Delete) رزروهای چارتر.
عملیات اتمی (Atomic) قابلیت حذف چندین رزرو با یک درخواست واحد.
پشتیبانی از انواع چارتر اطلاعات رزرو در دیتابیس باقی می‌ماند و فقط از دسترس خارج می‌شود.
موتور تکرار (Repeat Engine) تمام رزروهای مشخص شده در یک تراکنش حذف می‌شوند.
ساختار داده پیچیده متد به صورت هوشمند جدول رزرو مربوط به نوع چارتر (مسیر یا اقامتگاه) را تشخیص می‌دهد.

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

 

توضیحات موقعیت نوع داده نام پارمتر
(اجباری) شناسه اصلی چارتر (charter_id) که رزروها به آن تعلق دارند. Body integer $request->main_id
(اجباری) آرایه‌ای از شناسه‌های رزرو (reservation_id) که باید حذف شوند. Body array $request->ids

·     خروجی (Return):

 

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

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

سناریو:سناریو: حذف دو رزرو با شناسه‌های ۵۰۱ و ۵۰۲ از چارتر با شناسه ۱۰۰.

  • Request Body:
json
    {
        "main_id": 100,
        "ids": [501, 502]
    }
  • Action:
  1. متد ابتدا با استفاده از main_id: 100، نوع چارتر را تشخیص داده و نام جدول رزرو صحیح (مثلاً charter_reservations_route) را پیدا می‌کند.
  2. سپس یک کوئری UPDATE روی این جدول اجرا می‌کند تا برای رکوردهایی که id آن‌ها در آرایه [501, 502] وجود دارد، ستون deleted_at را با تاریخ و زمان فعلی پر کند.
  • Response:
  • کد وضعیت: 204 No Content
  • Body: (خالی)