#P1666
PATCH /v2/charter (updateCharter)
Charter: Update Charter (Status / Sell)
این اندپوینت جهت تغییر وضعیت کلی چارتر (Status) و یا مدیریت وضعیت فروش (Sell) برای همکاران و HUB طراحی شده است. این متد برخلاف ویرایش کامل، عملیات سبکتری انجام میدهد اما قوانین سختگیرانهای برای حذف (Delete) دارد.
Request Overview
URL:
/v2/charterMethod: PATCH
Controller: CharterController@updateCharter
Middleware Stack: authWithJwt
Access Control
- دسترسی معتبر JWT
- ارسال پارامتر
actionالزامی است.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| id | integer | yes | شناسه رکورد چارتر |
| action | string | yes | مقادیر مجاز: status یا sell |
| data | object | yes | حاوی فیلدهای مرتبط با اکشن انتخابی |
Logic: Action "status"
برای تغییر وضعیت چارتر (فعال/غیرفعال/حذف) استفاده میشود.
- بررسی وضعیت پایان یافته: اگر وضعیت فعلی چارتر
3باشد، امکان ویرایش وجود ندارد (Error: چارتر مورد نظر در وضعیت پایان یافته می باشد). - بررسی حذف (Status 4):
- فراخوانی متد
capacityItemCharter. - اگر
capacity.totalباcapacity.capacityبرابر نباشد (یعنی رزرو قطعی، موقت یا گارانتی وجود دارد): - جلوگیری از حذف → Error Code 1000.
- فراخوانی متد
- در غیر این صورت وضعیت آپدیت میشود.
| data.field | Type | Description |
|---|---|---|
| status | integer | وضعیت جدید (مثلاً 4 برای حذف) |
Logic: Action "sell"
برای کنترل سوئیچهای فروش استفاده میشود.
- اگر
data.colleagueارسال شود → فیلدcolleague_sellآپدیت میشود. - اگر
data.hubارسال شود → فیلدhub_sellآپدیت میشود. - پس از موفقیت، کش مربوط به عنوان چارتر در Redis پاک میشود.
| data.field | Type | Description |
|---|---|---|
| colleague | boolean | فعال/غیرفعالسازی فروش همکار |
| hub | boolean | فعال/غیرفعالسازی فروش HUB |
Response (Success)
در صورت موفقیت، هیچ محتوایی برگردانده نمیشود (HTTP 204).
HTTP/1.1 204 No Content
Response (Error)
// Error: Deletion failed due to existing reservations
{
"error": {
"code": 1000,
"message": "بر روی این چارتر رزرو انجام شده است و امکان حذف وجود ندارد."
}
}
// Error: Charter Not Found
{
"error": {
"code": 1000,
"message": "چارتر مورد نظر یافت نشد."
}
}
Flowchart
Start (PATCH /v2/charter)
↓
Find Charter by ID
↓
Check Action Type
↓
Action: Status
↓
Is Status = 4 (Delete)?
↓
Check Capacity (Reservations)
↓
If Has Reserve → Error
↓
Update Status
Action: Sell
↓
Update colleague_sell / hub_sell
↓
Clear Redis Cache
↓
Return 204 No Content