#P1686
GET /v2/charter/services/list
Charter: List Service Categories & Services
این اندپوینت برای دریافت لیست دستهبندیهای خدمات چارتر بههمراه سرویسهای زیرمجموعه هر دسته استفاده میشود. دادهها از جداول charter_service_categories و charter_services بارگذاری شده و فقط مواردی که status = 1 دارند بازگردانده میشوند.
Request Overview
URL:
/v2/charter/services/listMethod: GET
Controller: CharterController@listServicesCharter
Middleware Stack: authWithJwt
Access Control
- JWT معتبر لازم است
- هیچ محدودیت branch یا core middleware وجود ندارد
- اطلاعات اپراتور از طریق JWT تزریق میشود:
$request->get('operator')
Query Parameters
این اندپوینت هیچ پارامتر ورودی (Query / Body) ندارد.
Response Structure
خروجی موفق شامل کلیدهای زیر است:
| Field | Type | Description |
|---|---|---|
| status | boolean | وضعیت موفقیت درخواست |
| time | integer | Unix timestamp زمان تولید پاسخ |
| data | array | آرایهای از دستهبندیها به همراه سرویسهای هر دسته |
Category Object Schema
| Field | Type | Description |
|---|---|---|
| id | integer | شناسه دستهبندی |
| title.fa | string | عنوان فارسی |
| title.en | string | عنوان انگلیسی |
| services | array | لیست سرویسهای زیرمجموعه (در صورت نبود، آرایه خالی) |
Service Object Schema
| Field | Type | Description |
|---|---|---|
| id | integer | شناسه سرویس |
| title | string | عنوان سرویس |
| type | string | نوع سرویس |
| description | string|null | توضیحات سرویس (میتواند null باشد) |
Core Processing Logic
$categories = DB::table('charter_service_categories')
->select('id','title_fa','title_en')
->where('status', 1)
->get();
foreach ($categories as $category) {
$services = DB::table('charter_services')
->select('id','title','type','description')
->where('category', $category->id)
->where('status', 1)
->get();
}
- ابتدا دستهها با
status=1واکشی میشوند - برای هر دسته، سرویسهای فعال لود میشوند
- اگر سرویس وجود نداشته باشد → آرایه خالی برگردانده میشود
- خروجی نهایی شامل تمام دستهها + سرویسهایشان است
Response (Success)
{
"status": true,
"time": 1710000000,
"data": [
{
"id": 1,
"title": {
"fa": "عنوان فارسی",
"en": "English Title"
},
"services": [
{
"id": 100,
"title": "VIP Lounge",
"type": "lounge",
"description": "Access to VIP lounge"
}
]
}
]
}
Response (Error)
در صورت Exception (به دلیل وجود try/catch):
{
"status": false,
"time": 1710000000,
"message": "Exception message here",
"trace": [ ... ]
}
Flowchart
Validate JWT
↓
Load Active Categories
↓
For Each Category → Load Services
↓
Assemble Response Array
↓
Return JSON (status=true)