#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:
- متد ابتدا با استفاده از
main_id: 100، نوع چارتر را تشخیص داده و نام جدول رزرو صحیح (مثلاًcharter_reservations_route) را پیدا میکند. - سپس یک کوئری
UPDATEروی این جدول اجرا میکند تا برای رکوردهایی کهidآنها در آرایه[501, 502]وجود دارد، ستونdeleted_atرا با تاریخ و زمان فعلی پر کند.
- Response:
- کد وضعیت:
204 No Content - Body: (خالی)