{
    "openapi": "3.0.0",
    "info": {
        "title": "Turista Laravel APIs",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https://laravel.turista.com.ly/api/v2.1",
            "description": "🟢 Development Server"
        },
        {
            "url": "http://127.0.0.1:8000/api/v2.1",
            "description": "🟡 Local Server"
        },
        {
            "url": "http://laravel.test/api/v2.1",
            "description": "🐱 Marwa Server"
        },
        {
            "url": "https://laravel.turista.ly/api/v2.1",
            "description": "🔴 Production Server"
        },
        {
            "url": "/api"
        }
    ],
    "paths": {
        "/availability-list": {
            "get": {
                "tags": [
                    "Availability"
                ],
                "summary": "Get availability list",
                "description": "Returns availability list based on property type and id",
                "operationId": "getAvailabilityListV2",
                "parameters": [
                    {
                        "name": "property_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "property_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    }
                }
            }
        },
        "/availability-lists": {
            "get": {
                "tags": [
                    "Availability"
                ],
                "summary": "Get full availability lists",
                "description": "Returns detailed availability list",
                "operationId": "getAvailabilityListsV2",
                "parameters": [
                    {
                        "name": "property_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "property_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "400": {
                        "description": "Bad request"
                    }
                }
            }
        },
        "/availability/close": {
            "post": {
                "tags": [
                    "Availability"
                ],
                "summary": "Close availability for a property",
                "description": "Manually close availability dates",
                "operationId": "closeAvailabilityV2",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "detail_id",
                                    "property_type",
                                    "start_date",
                                    "end_date"
                                ],
                                "properties": {
                                    "detail_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "property_type": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2023-12-01"
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2023-12-05"
                                    },
                                    "notes": {
                                        "type": "string",
                                        "example": "Maintenance"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/availability/open/{id}": {
            "delete": {
                "tags": [
                    "Availability"
                ],
                "summary": "Reopen availability",
                "description": "Deletes an availability closure record",
                "operationId": "openAvailabilityV2",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/availability/audit-log": {
            "get": {
                "tags": [
                    "Availability"
                ],
                "summary": "Get availability audit log",
                "description": "Retrieves the audit log for availability closures and bookings",
                "operationId": "getAvailabilityAuditLogV2",
                "parameters": [
                    {
                        "name": "property_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "detail_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "available",
                                "unavailable",
                                "booking"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/bookings": {
            "get": {
                "tags": [
                    "Bookings"
                ],
                "summary": "Get list of host bookings",
                "operationId": "50b92211e72e23dc691e1e5fe24cf3ea",
                "parameters": [
                    {
                        "name": "state_id",
                        "in": "query",
                        "description": "Filter by state_id (3=Paid, 4=Confirm, 5=Completed, 6=Waiting, 7=Cancelled, 8=Unpaid, 9=Confirmed Deposit)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "booking_source",
                        "in": "query",
                        "description": "Filter by booking_source (web or mobile)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Bookings"
                ],
                "summary": "Create new booking",
                "operationId": "9a1554e4c296d54c2d4c491c345f0ec9",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "detail_id",
                                    "start_date",
                                    "end_date",
                                    "type_of_guest",
                                    "no_of_guest",
                                    "property_type",
                                    "total_amount"
                                ],
                                "properties": {
                                    "detail_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2026-03-10"
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2026-03-13"
                                    },
                                    "start_time": {
                                        "type": "string",
                                        "format": "time",
                                        "example": "14:00:00"
                                    },
                                    "end_time": {
                                        "type": "string",
                                        "format": "time",
                                        "example": "12:00:00"
                                    },
                                    "type_of_guest": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "no_of_guest": {
                                        "type": "integer",
                                        "example": 4
                                    },
                                    "no_of_extra_guest": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "property_type": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "occasion_type_id": {
                                        "description": "5 = normal booking",
                                        "type": "integer",
                                        "example": 5
                                    },
                                    "deposite_type": {
                                        "description": "1 = one night, 2 = fixed amount",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "deposite_amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 200
                                    },
                                    "total_amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 600
                                    },
                                    "action_wallet": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "booking_source": {
                                        "type": "string",
                                        "enum": [
                                            "mobile",
                                            "web"
                                        ],
                                        "example": "mobile"
                                    },
                                    "created_by_id": {
                                        "description": "Required if booking_source = web",
                                        "type": "integer",
                                        "example": 3
                                    },
                                    "customer_token": {
                                        "type": "string"
                                    },
                                    "mixedDays": {
                                        "type": "number",
                                        "example": 0
                                    },
                                    "children": {
                                        "properties": {
                                            "ages": {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Booking created successfully",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "400": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {}
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {}
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/bookings/{id}": {
            "get": {
                "tags": [
                    "Bookings"
                ],
                "summary": "Get booking information",
                "operationId": "8802415f0a98d28233055645dc3f0d59",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id of Booking",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "allOf": [
                                        {
                                            "$ref": "#/components/schemas/TblBooking"
                                        },
                                        {
                                            "properties": {
                                                "contact_phone": {
                                                    "description": "رقم هاتف الطرف الآخر",
                                                    "type": "string"
                                                },
                                                "contact_whatsapp": {
                                                    "description": "رقم واتساب الطرف الآخر",
                                                    "type": "string"
                                                },
                                                "property_images": {
                                                    "description": "صور العقار",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "host_timeout_at": {
                                                    "description": "مهلة المالك للرد",
                                                    "type": "string",
                                                    "format": "date-time"
                                                },
                                                "customer_timeout_at": {
                                                    "description": "مهلة الزبون للدفع",
                                                    "type": "string",
                                                    "format": "date-time"
                                                },
                                                "remaining_seconds": {
                                                    "description": "الثواني المتبقية للعداد",
                                                    "type": "integer"
                                                },
                                                "cancelation_confirm": {
                                                    "description": "حالة التأكيد على الإلغاء",
                                                    "type": "boolean"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Resource Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/bookings/{id}/cancel": {
            "post": {
                "tags": [
                    "Bookings"
                ],
                "summary": "Cancel a booking by customer",
                "operationId": "7ab38cbc7daa3e12b19f03e16e104b5a",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "تم الإلغاء بنجاح"
                    },
                    "400": {
                        "description": "بيانات غير صحيحة أو حالة لا تسمح بالإلغاء"
                    },
                    "403": {
                        "description": "غير مصرح"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/bookings/{id}/respond": {
            "post": {
                "tags": [
                    "Bookings"
                ],
                "summary": "Respond to a waiting booking (accept or reject) by host or authorized staff",
                "operationId": "f3ee2f3f28182800749a64e6436dc4e0",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "action"
                                ],
                                "properties": {
                                    "action": {
                                        "description": "accept = قبول الحجز, reject = رفض الحجز",
                                        "type": "string",
                                        "enum": [
                                            "accept",
                                            "reject"
                                        ]
                                    },
                                    "reason_id": {
                                        "description": "معرف سبب الرفض (مطلوب عند الرفض)",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تمت العملية بنجاح"
                    },
                    "400": {
                        "description": "بيانات غير صحيحة"
                    },
                    "401": {
                        "description": "غير مصرح"
                    },
                    "403": {
                        "description": "ممنوع"
                    },
                    "404": {
                        "description": "الحجز غير موجود"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/bookings/{id}/pay": {
            "post": {
                "tags": [
                    "Bookings"
                ],
                "summary": "Process Booking Payment (Smart Endpoint: Auto-detects Wallet vs Cash based on User Token)",
                "description": "This is a unified payment endpoint. \n     * - If the logged-in user is the **Customer**, it will deduct the amount from their **Wallet** and lock the dates.\n     * - If the logged-in user is the **Property Owner (or Staff)**, it will act as a **Cash Confirmation**, deducting only the platform commission from the owner's wallet and locking the dates.\n     * - No need to send 'amount', the system calculates it securely based on the 'payment_scope'.",
                "operationId": "5a1a9645d477d11572bf7d5b08798e0f",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "payment_scope"
                                ],
                                "properties": {
                                    "payment_scope": {
                                        "type": "string",
                                        "enum": [
                                            "full",
                                            "deposit",
                                            "remaining"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment or Confirmation processed successfully"
                    },
                    "400": {
                        "description": "Invalid state, dates not available, or insufficient wallet balance"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Booking not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/chalet": {
            "get": {
                "tags": [
                    "chalets"
                ],
                "summary": "Get list of chalets",
                "operationId": "getChalets",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/chalet/store": {
            "post": {
                "tags": [
                    "chalets"
                ],
                "summary": "Create a new chalet",
                "description": "Store a newly created TblPropertyDetail in storage.\nPOST /tblPropertyDetails",
                "operationId": "addchalet",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    },
                                    "property_type": {
                                        "type": "integer"
                                    },
                                    "staff_id": {
                                        "type": "integer"
                                    },
                                    "week_day_price": {
                                        "type": "integer"
                                    },
                                    "weekend_day_price": {
                                        "type": "integer"
                                    },
                                    "depositـweek_day_price": {
                                        "type": "string"
                                    },
                                    "depositـweekend_day_price": {
                                        "type": "string"
                                    },
                                    "location": {
                                        "type": "string"
                                    },
                                    "latitude": {
                                        "type": "string"
                                    },
                                    "longitude": {
                                        "type": "string"
                                    },
                                    "image_file": {
                                        "type": "string"
                                    },
                                    "file": {
                                        "type": "string"
                                    },
                                    "no_of_chalets": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "meter_distance": {
                                        "type": "string"
                                    },
                                    "is_near_see": {
                                        "type": "integer"
                                    },
                                    "is_favorite": {
                                        "type": "integer"
                                    },
                                    "no_of_guest": {
                                        "type": "integer"
                                    },
                                    "check_in_time": {},
                                    "children_count": {
                                        "type": "integer"
                                    },
                                    "adult_count": {
                                        "type": "integer"
                                    },
                                    "check_out_time": {},
                                    "host_token": {
                                        "type": "string"
                                    },
                                    "resort_id": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error, "
                    },
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/companies/map": {
            "get": {
                "tags": [
                    "Companies"
                ],
                "summary": "Get active companies list for map",
                "description": "Retrieve a list of all active companies with their basic information and coordinates for map display",
                "operationId": "dc747b1229cf27c1bb14a59ee4eb5c98",
                "parameters": [
                    {
                        "name": "Accept",
                        "in": "header",
                        "description": "Accept header",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "application/json"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of active companies retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "description": "Company unique identifier",
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "name": {
                                                        "description": "Company name",
                                                        "type": "string",
                                                        "example": "شركة النجاح"
                                                    },
                                                    "phone": {
                                                        "description": "Company phone number",
                                                        "type": "string",
                                                        "example": "+966501234567"
                                                    },
                                                    "coordinates": {
                                                        "description": "Company location coordinates (latitude,longitude)",
                                                        "type": "string",
                                                        "example": "24.7136,46.6753"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Internal server error"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/distributor/vouchers": {
            "get": {
                "tags": [
                    "Distributor Vouchers"
                ],
                "summary": "عرض المخزون المتاح",
                "operationId": "3a8203e55d804b2882bb5a7eefe9f144",
                "responses": {
                    "200": {
                        "description": "تم الاسترجاع بنجاح"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/distributor/vouchers/sell": {
            "post": {
                "tags": [
                    "Distributor Vouchers"
                ],
                "summary": "شراء كرت (سحب مباشر من المخزون)",
                "operationId": "1ffde232831f703350dfdaceec32b584",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "value": {
                                        "type": "number",
                                        "example": 100
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تمت عملية البيع"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/distributor/webhooks/vouchers/sold": {
            "post": {
                "tags": [
                    "Distributor Vouchers"
                ],
                "summary": "ويب هوك: إبلاغ النظام ببيع كرت خارجي",
                "description": "يستخدمه الموزع عندما يبيع كرت يملكه مسبقاً في نظامه ويريد تسجيل العمولة وتحديث الحالة في نظامنا.",
                "operationId": "6d7f638c47ef0a4dde3c59844813a4ba",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "voucher_code": {
                                        "type": "string",
                                        "example": "ABC-123-XYZ"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تم تحديث الحالة وتسجيل العمولة"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/distributor/vouchers/stats": {
            "get": {
                "tags": [
                    "Distributor Vouchers"
                ],
                "summary": "إحصائيات الموزع التفصيلية",
                "operationId": "be87964c459580f2ce1df3665a2f7caf",
                "responses": {
                    "200": {
                        "description": "success"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/ezonepay/initiate": {
            "post": {
                "tags": [
                    "EzonePay"
                ],
                "summary": "Initiate a new payment link",
                "description": "Creates a new payment link restricted to a single payment method via EzonePay gateway.",
                "operationId": "8c43314c19bfb6fe824971a021ababee",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "userId",
                                    "payment_method"
                                ],
                                "properties": {
                                    "amount": {
                                        "description": "The payment amount",
                                        "type": "number",
                                        "format": "float",
                                        "example": 150.5
                                    },
                                    "userId": {
                                        "description": "The ID or reference of the user making the payment",
                                        "type": "string",
                                        "example": "1"
                                    },
                                    "payment_method": {
                                        "description": "The specific payment method ID. e.g., 102: موبي كاش, 103: دفع تجريبي, 104: مصرفي باي, 105: يسر باي, 106: إدفع لي, 107: سداد, 108: صحارى باي, 125: يسر باي كيو آر, 128: صحارى باي كيو آر",
                                        "type": "integer",
                                        "enum": [
                                            102,
                                            103,
                                            104,
                                            105,
                                            106,
                                            107,
                                            108,
                                            125,
                                            128
                                        ],
                                        "example": 103
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment link created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Payment link created successfully"
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 2696
                                                },
                                                "title": {
                                                    "type": "string",
                                                    "example": null,
                                                    "nullable": true
                                                },
                                                "orderReference": {
                                                    "type": "string",
                                                    "example": "inv-20260504-204403-nz6IV8"
                                                },
                                                "internalReference": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "agentName": {
                                                    "type": "string",
                                                    "example": null,
                                                    "nullable": true
                                                },
                                                "link": {
                                                    "type": "string",
                                                    "example": "https://dlink.ezonepay.ly/VY3HoLDBvTFJRReo6DFnHQ__Q_GZLg"
                                                },
                                                "source": {
                                                    "type": "string",
                                                    "example": "توريستا"
                                                },
                                                "isDirectPayment": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "amount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 150.5
                                                },
                                                "currency": {
                                                    "type": "string",
                                                    "example": "LYD"
                                                },
                                                "note": {
                                                    "type": "string",
                                                    "example": null,
                                                    "nullable": true
                                                },
                                                "isEnabled": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "createdAt": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2026-05-04T18:44:03.4147149Z"
                                                },
                                                "updatedAt": {
                                                    "type": "string",
                                                    "example": null,
                                                    "nullable": true
                                                },
                                                "expiresAt": {
                                                    "type": "string",
                                                    "example": "غير محدود"
                                                },
                                                "maxUsageCount": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "currentUsageCount": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "customer": {
                                                    "properties": {
                                                        "firstName": {
                                                            "type": "string",
                                                            "example": "User"
                                                        },
                                                        "lastName": {
                                                            "type": "string",
                                                            "example": "1"
                                                        },
                                                        "phoneNumber": {
                                                            "type": "string",
                                                            "example": "0910000000"
                                                        },
                                                        "phoneNumber2": {
                                                            "type": "string",
                                                            "example": null,
                                                            "nullable": true
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "paymentMethods": {
                                                    "type": "string",
                                                    "example": null,
                                                    "nullable": true
                                                },
                                                "totalAmountPaid": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 0
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Failed to initiate payment",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Failed to initiate payment"
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Internal server error details"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/ezonepay/subscribe-webhook": {
            "post": {
                "tags": [
                    "EzonePay"
                ],
                "summary": "Subscribe to EzonePay Webhook",
                "description": "⚠️ SERVER-TO-SERVER ONLY: Registers the webhook URL with EzonePay and returns the SecretKey. Run this once from Postman/Swagger. Not for mobile apps.",
                "operationId": "9b213153c7a6c619245e4a91aa2d34a6",
                "responses": {
                    "200": {
                        "description": "Subscribed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Subscribed successfully"
                                        },
                                        "secret_key": {
                                            "type": "string",
                                            "example": "BASE64_SECRET_KEY"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/ezonepay/webhook": {
            "post": {
                "tags": [
                    "EzonePay"
                ],
                "summary": "Receive payment status updates from EzonePay",
                "description": "⚠️ SERVER-TO-SERVER ONLY: Webhook endpoint strictly for EzonePay's automated system to notify the application about payment events. It is NOT for mobile apps or frontend clients.",
                "operationId": "98c5438e81e4221e92305c1646c1f055",
                "parameters": [
                    {
                        "name": "X-Signature",
                        "in": "header",
                        "description": "HMAC-SHA256 signature for verifying the payload",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "event": {
                                        "description": "Event type, 2 means Paid",
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "transactionId": {
                                        "description": "EzonePay transaction ID",
                                        "type": "integer",
                                        "example": 98765
                                    },
                                    "transactionType": {
                                        "description": "Type of transaction",
                                        "type": "string",
                                        "example": "online"
                                    },
                                    "orderReference": {
                                        "description": "Your custom order reference",
                                        "type": "string",
                                        "example": "INV-2026-001"
                                    },
                                    "updatedUtc": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2026-04-29T10:30:00Z"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Webhook received successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Webhook received successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized (Invalid Signature)",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthorized"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/ezonepay/payment-callback/{user_id}": {
            "get": {
                "tags": [
                    "EzonePay"
                ],
                "summary": "Handle payment callback from EzonePay RedirectUrl",
                "description": "Handles customer redirection from EzonePay after payment process to close the webview.",
                "operationId": "4e93e509d10a22f41eeed71b2c7aa61a",
                "parameters": [
                    {
                        "name": "user_id",
                        "in": "path",
                        "description": "ID of the user",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "invoice_no",
                        "in": "query",
                        "description": "Invoice number sent in the redirect URL",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "HTML Page returned"
                    }
                }
            }
        },
        "/ezonepay/payment-methods": {
            "get": {
                "tags": [
                    "EzonePay"
                ],
                "summary": "Get available payment methods",
                "description": "Fetches available payment methods from EzonePay.",
                "operationId": "344379efadcfaba0baad873954d4809e",
                "responses": {
                    "200": {
                        "description": "Payment methods retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 102
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "موبي كاش"
                                                    },
                                                    "logoUrl": {
                                                        "type": "string",
                                                        "example": "https://ik.imagekit.io/w0vzu9b56/assets/icons/payment/mobiCash.png"
                                                    },
                                                    "method": {
                                                        "type": "string",
                                                        "example": "mobicash"
                                                    },
                                                    "minPayment": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 0.01000000000000000020816681711721685132943093776702880859375
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Failed to get payment methods"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/reviews": {
            "post": {
                "tags": [
                    "Host Reviews"
                ],
                "summary": "إنشاء تقييم مضيف للعميل",
                "description": "إنشاء تقييم جديد من المضيف للعميل مع التقييمات الفرعية للفئات",
                "operationId": "236945140cc476d2d4d69bc6a72af42c",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "guest_id",
                                    "booking_id",
                                    "overall_rating"
                                ],
                                "properties": {
                                    "guest_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "booking_id": {
                                        "type": "integer",
                                        "example": 10
                                    },
                                    "overall_rating": {
                                        "type": "integer",
                                        "maximum": 5,
                                        "minimum": 1,
                                        "example": 4
                                    },
                                    "categories": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "category_id",
                                                "rating"
                                            ],
                                            "properties": {
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "rating": {
                                                    "type": "integer",
                                                    "maximum": 5,
                                                    "minimum": 1,
                                                    "example": 5
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "comment": {
                                        "type": "string",
                                        "example": "تجربة رائعة"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "تم إنشاء التقييم بنجاح",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "تم إضافة التقييم بنجاح"
                                        },
                                        "review": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "review_type": {
                                                    "type": "string",
                                                    "example": "host_to_customer"
                                                },
                                                "reviewer_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "reviewee_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "booking_id": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "overall_rating": {
                                                    "type": "integer",
                                                    "example": 4
                                                },
                                                "comment": {
                                                    "type": "string",
                                                    "example": "تجربة رائعة"
                                                },
                                                "category_ratings": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "review_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "category_id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "rating": {
                                                                "type": "integer",
                                                                "example": 5
                                                            },
                                                            "category": {
                                                                "properties": {
                                                                    "category_id": {
                                                                        "type": "integer",
                                                                        "example": 1
                                                                    },
                                                                    "name": {
                                                                        "type": "string",
                                                                        "example": "النظافة"
                                                                    }
                                                                },
                                                                "type": "object"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "غير مصرح (غير مسجل الدخول)",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "خطأ في التحقق من البيانات",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "properties": {
                                                "guest_id": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "The guest id field is required."
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "خطأ في الخادم",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "حدث خطأ أثناء حفظ التقييم"
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "SQLSTATE[23000]: Integrity constraint violation"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/guests/{guest_id}/reviews-overview": {
            "get": {
                "tags": [
                    "Host Reviews"
                ],
                "summary": "عرض ملخص وتفاصيل تقييمات الضيف",
                "description": "جلب جميع تقييمات الضيف مع ملخص، متوسط التقييم، وتوزيع النجوم، مع إمكانية فلترة النتائج.",
                "operationId": "3b570c71f6b9c8518731dc4ece8f1fce",
                "parameters": [
                    {
                        "name": "guest_id",
                        "in": "path",
                        "description": "معرف الضيف",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "name": "booking_id",
                        "in": "query",
                        "description": "فلترة حسب معرف الحجز",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 10
                        }
                    },
                    {
                        "name": "min_rating",
                        "in": "query",
                        "description": "فلترة حسب الحد الأدنى للتقييم العام",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "maximum": 5,
                            "minimum": 1,
                            "example": 3
                        }
                    },
                    {
                        "name": "max_rating",
                        "in": "query",
                        "description": "فلترة حسب الحد الأقصى للتقييم العام",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "maximum": 5,
                            "minimum": 1,
                            "example": 5
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "نجاح جلب التقييمات",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "overview": {
                                            "properties": {
                                                "guest_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "total_reviews": {
                                                    "type": "integer",
                                                    "example": 15
                                                },
                                                "average_rating": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 4.20000000000000017763568394002504646778106689453125
                                                },
                                                "ratings_distribution": {
                                                    "type": "object",
                                                    "example": {
                                                        "5": 8,
                                                        "4": 5,
                                                        "3": 2
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "reviews": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "review_type": {
                                                        "type": "string",
                                                        "example": "host_to_customer"
                                                    },
                                                    "reviewer_id": {
                                                        "type": "integer",
                                                        "example": 2
                                                    },
                                                    "reviewee_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "booking_id": {
                                                        "type": "integer",
                                                        "example": 10
                                                    },
                                                    "overall_rating": {
                                                        "type": "integer",
                                                        "example": 4
                                                    },
                                                    "comment": {
                                                        "type": "string",
                                                        "example": "تجربة رائعة"
                                                    },
                                                    "category_ratings": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "review_id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "category_id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "rating": {
                                                                    "type": "integer",
                                                                    "example": 5
                                                                },
                                                                "category": {
                                                                    "properties": {
                                                                        "category_id": {
                                                                            "type": "integer",
                                                                            "example": 1
                                                                        },
                                                                        "name": {
                                                                            "type": "string",
                                                                            "example": "النظافة"
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            },
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "غير مصرح (غير مسجل الدخول)",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "خطأ في التحقق من البيانات",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "properties": {
                                                "guest_id": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "The guest id field is required."
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "خطأ في الخادم",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "حدث خطأ أثناء جلب التقييمات"
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "SQLSTATE[23000]: Integrity constraint violation"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/property-occasions": {
            "get": {
                "tags": [
                    "Property Configurations"
                ],
                "summary": "Get all property occasion types",
                "description": "Retrieve a list of all available occasion types for properties.",
                "operationId": "c5ab2d101ac36e06b96f71fde782b352",
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "New Year"
                                                    },
                                                    "state_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/permissions": {
            "get": {
                "tags": [
                    "permissions"
                ],
                "summary": "Get list of permissions",
                "operationId": "getPermissions",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "Login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/property-features": {
            "get": {
                "tags": [
                    "Property"
                ],
                "summary": "Get list of facilities and amenities by property type",
                "operationId": "getPropertyFeaturesV2",
                "parameters": [
                    {
                        "name": "property_type_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "service_type",
                        "in": "query",
                        "description": "Can be 'facility', 'amenity', or 'both'. Defaults to 'both'.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "both",
                            "enum": [
                                "facility",
                                "amenity",
                                "both"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/home-settings": {
            "get": {
                "tags": [
                    "Home Settings"
                ],
                "summary": "Get featured properties for home page (default or by city) with full filters",
                "operationId": "getHomeSettings",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Records per page (default 10)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "property_type[]",
                        "in": "query",
                        "description": "Property type: 1=Villa, 2=Resort, 3=Chalet, 4=Building, 5=Hotel",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[type_id]",
                        "in": "query",
                        "description": "1=Displayed, 0=Hidden",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[resort_id]",
                        "in": "query",
                        "description": "Filter by resort",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "occasion_type_id",
                        "in": "query",
                        "description": "Occasion type: 1=Wedding, 2=Engagement, 3=Contract, 4=Newborn week, 5=Regular stay, 6=Eid, 7=تلبيسة",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[title]",
                        "in": "query",
                        "description": "Search by title",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "latitude",
                        "in": "query",
                        "description": "Latitude",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "longitude",
                        "in": "query",
                        "description": "Longitude",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "filter[children_max_age]",
                        "in": "query",
                        "description": "Maximum age of children",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "city_id",
                        "in": "query",
                        "description": "City ID. 0 or omit for default",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 0
                        }
                    },
                    {
                        "name": "filter[tbl_zone_id]",
                        "in": "query",
                        "description": "Zone ID for filter",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "guest_type",
                        "in": "query",
                        "description": "Guest type",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "payment_type",
                        "in": "query",
                        "description": "Payment type",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "cash",
                                "wallet",
                                "wallet_and_cash",
                                "wallet_plus"
                            ]
                        }
                    },
                    {
                        "name": "start_day_price",
                        "in": "query",
                        "description": "Minimum price per day",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "end_day_price",
                        "in": "query",
                        "description": "Maximum price per day",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "price_type_search",
                        "in": "query",
                        "description": "Price type search: both, week_day_price, weekend_day_price",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "both",
                                "week_day_price",
                                "weekend_day_price"
                            ]
                        }
                    },
                    {
                        "name": "availability_date_start",
                        "in": "query",
                        "description": "Availability start date (YYYY-MM-DD)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "availability_date_end",
                        "in": "query",
                        "description": "Availability end date (YYYY-MM-DD)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "availability_search_type",
                        "in": "query",
                        "description": "Availability type: full or part",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "full",
                                "part"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/home-settings/{id}": {
            "put": {
                "tags": [
                    "Home Settings"
                ],
                "summary": "Add or update a featured property for home page",
                "operationId": "updateHomeSettings",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Property ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "home_order"
                                ],
                                "properties": {
                                    "home_order": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "city_id": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "property_type": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Updated successfully"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "404": {
                        "description": "Property not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Home Settings"
                ],
                "summary": "Remove a property from featured list (default or city)",
                "operationId": "removeHomeSettings",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Property ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "city_id": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "property_type": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Removed successfully"
                    },
                    "404": {
                        "description": "Property not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/services": {
            "get": {
                "tags": [
                    "Services"
                ],
                "summary": "Fetch list of global service templates",
                "description": "Returns a list of predefined services available in the system.",
                "operationId": "getServices",
                "responses": {
                    "400": {
                        "description": "Bad Request."
                    },
                    "500": {
                        "description": "Internal server error."
                    }
                }
            }
        },
        "/services/property-services/create": {
            "post": {
                "tags": [
                    "Services"
                ],
                "summary": "Create a new service template",
                "operationId": "d6e74cb76b4fac00cfb02f35f930c21c",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "required": [
                                    "service_id",
                                    "detail_id",
                                    "price"
                                ],
                                "properties": {
                                    "service_id": {
                                        "description": "The ID of the service.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "detail_id": {
                                        "description": "The ID of the detail associated with the service.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "price": {
                                        "description": "The price of the service template.",
                                        "type": "number",
                                        "format": "float",
                                        "example": 12.9900000000000002131628207280300557613372802734375
                                    },
                                    "amount": {
                                        "description": "The amount associated with the service.",
                                        "type": "number",
                                        "example": 0
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Service created successfully."
                    },
                    "400": {
                        "description": "Invalid payload or missing required fields."
                    },
                    "500": {
                        "description": "Internal server error."
                    }
                }
            }
        },
        "/services/property-services/update": {
            "put": {
                "tags": [
                    "Services"
                ],
                "summary": "Update an existing service template",
                "operationId": "ff8e523d73c428c116ba1f5982538cf5",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "required": [
                                    "service_id",
                                    "detail_id",
                                    "price",
                                    "is_active"
                                ],
                                "properties": {
                                    "service_id": {
                                        "description": "The ID of the service to update.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "detail_id": {
                                        "description": "The ID of the detail associated with the service.",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "price": {
                                        "description": "The updated price of the service template.",
                                        "type": "number",
                                        "format": "float",
                                        "example": 12.9900000000000002131628207280300557613372802734375
                                    },
                                    "is_active": {
                                        "description": "Indicates whether the service is active.1 or 0",
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Service updated successfully."
                    },
                    "400": {
                        "description": "Invalid payload or missing required fields."
                    },
                    "500": {
                        "description": "Internal server error."
                    }
                }
            }
        },
        "/services/property-services/delete/{id}": {
            "delete": {
                "tags": [
                    "Services"
                ],
                "summary": "Delete a service template",
                "operationId": "a2abc2039e20ff39b3befbea1f284bfb",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Service ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Service deleted successfully"
                    }
                }
            }
        },
        "/services/service-requests": {
            "post": {
                "tags": [
                    "Services"
                ],
                "summary": "Create a new service request",
                "operationId": "a8d737ecc58c7b2ef905172a641d6b53",
                "requestBody": {
                    "description": "Input validation for the service API",
                    "required": true,
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "required": [
                                    "name",
                                    "name_ar",
                                    "type",
                                    "unit"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Name of the service",
                                        "type": "string",
                                        "example": "meal"
                                    },
                                    "name_ar": {
                                        "description": "Arabic name of the service",
                                        "type": "string",
                                        "example": "وجبة"
                                    },
                                    "type": {
                                        "description": "Type of the service (0 or 1)",
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1
                                        ],
                                        "example": 1
                                    },
                                    "unit": {
                                        "description": "Unit of the service, minimum value is 0",
                                        "type": "integer",
                                        "example": 10
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "service requested successfully"
                    }
                }
            }
        },
        "/services/service-requests/my": {
            "get": {
                "tags": [
                    "Services"
                ],
                "summary": "List of my requested services",
                "operationId": "b59207f95ccab1839fb024773ffc6a88",
                "responses": {
                    "204": {
                        "description": "Services list"
                    }
                }
            }
        },
        "/property-types": {
            "get": {
                "tags": [
                    "Property"
                ],
                "summary": "استرجاع أنواع العقارات المدعومة في النظام",
                "description": "يرجع قائمة هرمية لأنواع العقارات (مثل المنتجعات يتبعها شاليهات، المباني يتبعها شقق)",
                "operationId": "getSupportedPropertyTypes",
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "فيلا"
                                                    },
                                                    "name_en": {
                                                        "type": "string",
                                                        "example": "Villa"
                                                    },
                                                    "children": {
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 5
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "example": "شاليه"
                                                                },
                                                                "name_en": {
                                                                    "type": "string",
                                                                    "example": "Chalet"
                                                                }
                                                            },
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/property-units/update": {
            "put": {
                "tags": [
                    "Property"
                ],
                "summary": "Update property units (total & displayed)",
                "description": "Update total units and displayed units for a property based on subscription limits",
                "operationId": "3b7c4022fc9335dc5543fb8eb4a694d0",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "property_id",
                                    "total_quantity",
                                    "displayed_quantity"
                                ],
                                "properties": {
                                    "property_id": {
                                        "description": "Property ID",
                                        "type": "integer",
                                        "example": 123
                                    },
                                    "total_quantity": {
                                        "description": "Total number of units for this property",
                                        "type": "integer",
                                        "example": 10
                                    },
                                    "displayed_quantity": {
                                        "description": "Number of units to be displayed in the app",
                                        "type": "integer",
                                        "example": 5
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Units updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Units updated successfully"
                                        },
                                        "data": {
                                            "properties": {
                                                "property_id": {
                                                    "type": "integer",
                                                    "example": 123
                                                },
                                                "total_quantity": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "displayed_quantity": {
                                                    "type": "integer",
                                                    "example": 5
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Validation or subscription error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Displayed quantity cannot exceed total quantity."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/unit-types/by-property-type/{property_type_id}": {
            "get": {
                "tags": [
                    "Property"
                ],
                "summary": "استرجاع أنواع الوحدات المتاحة لنوع عقار معين",
                "description": "يرجع قائمة بأنواع الوحدات (مثل: جناح، غرفة) بناءً على ID نوع العقار المرسل",
                "operationId": "getUnitTypesByPropertyType",
                "parameters": [
                    {
                        "name": "property_type_id",
                        "in": "path",
                        "description": "رقم نوع العقار (مثلاً: 8 للفنادق)",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "example": 8
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "تم استرجاع البيانات بنجاح",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Property unit types retrieved successfully."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 7
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "غرفة مفردة"
                                                    },
                                                    "property_type": {
                                                        "type": "integer",
                                                        "example": 8
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "خطأ داخلي في الخادم"
                    }
                }
            }
        },
        "/resorts": {
            "get": {
                "tags": [
                    "resorts"
                ],
                "summary": "Get list of resorts",
                "description": "Display a listing of the resource.",
                "operationId": "getResorts",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/resorts/store": {
            "post": {
                "tags": [
                    "resorts"
                ],
                "summary": "Create a new resort",
                "description": "Store a newly created TblPropertyDetail in storage.\nPOST /tblPropertyDetails",
                "operationId": "addResort",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    },
                                    "property_type": {
                                        "type": "integer"
                                    },
                                    "staff_id": {
                                        "type": "integer"
                                    },
                                    "week_day_price": {
                                        "type": "integer"
                                    },
                                    "weekend_day_price": {
                                        "type": "integer"
                                    },
                                    "depositـweek_day_price": {
                                        "type": "string"
                                    },
                                    "depositـweekend_day_price": {
                                        "type": "string"
                                    },
                                    "location": {
                                        "type": "string"
                                    },
                                    "latitude": {
                                        "type": "string"
                                    },
                                    "longitude": {
                                        "type": "string"
                                    },
                                    "image_file": {
                                        "type": "string"
                                    },
                                    "file": {
                                        "type": "string"
                                    },
                                    "no_of_chalets": {
                                        "type": "integer"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "meter_distance": {
                                        "type": "string"
                                    },
                                    "is_near_see": {
                                        "type": "integer"
                                    },
                                    "is_favorite": {
                                        "type": "integer"
                                    },
                                    "no_of_guest": {
                                        "type": "integer"
                                    },
                                    "check_in_time": {},
                                    "children_count": {
                                        "type": "integer"
                                    },
                                    "adult_count": {
                                        "type": "integer"
                                    },
                                    "check_out_time": {},
                                    "host_token": {
                                        "type": "string"
                                    },
                                    "resort_id": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error, or login required"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/resort-logo/store": {
            "post": {
                "tags": [
                    "resort-logo"
                ],
                "summary": "Upload or update the resort's logo",
                "description": "Upload or update the resort's logo.\nPOST /resort-logo/store",
                "operationId": "826589affc02d23042507b919e4c754e",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "logo"
                                ],
                                "properties": {
                                    "logo": {
                                        "description": "The logo file to upload (PNG, JPG max: 2MB)",
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Logo uploaded/updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Resort logo uploaded successfully."
                                        },
                                        "data": {
                                            "type": "string",
                                            "example": "https://example.com/uploads/logo.png"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Logo validation failed."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "logo": "The logo must be a file of type: jpg, png, jpeg and must not exceed 2MB"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/resort-logo/retrieve": {
            "get": {
                "tags": [
                    "resort-logo"
                ],
                "summary": "Retrieve the resort's current logo URL",
                "description": "Retrieve the current resort's logo URL.\nGET /resort-logo/retrieve",
                "operationId": "2e654f5943b7be71255bc401b40e7372",
                "responses": {
                    "200": {
                        "description": "Logo retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "string",
                                            "example": "https://laravel.turista.com.ly/uploads/logo.png"
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Resort logo retrieved successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Logo not found, returning default logo",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "data": {
                                            "type": "string",
                                            "example": "https://laravel.turista.com.ly/default-logo.png"
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Resort logo not found, returning default logo."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/review-categories": {
            "get": {
                "tags": [
                    "reviews"
                ],
                "summary": "Get active review categories",
                "operationId": "f7fa4ec4f0a19bddefb5af5391b35741",
                "responses": {
                    "404": {
                        "description": "Not Found. No categories found or incorrect URL."
                    }
                }
            }
        },
        "/review-categories/store": {
            "post": {
                "tags": [
                    "reviews"
                ],
                "summary": "Create a new review category",
                "description": "Creates a new review category with the required field category_name, and optional fields description and is_active.",
                "operationId": "8ab41fc1e41396f2a90f0b0e74d50a63",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "category_name"
                                ],
                                "properties": {
                                    "category_name": {
                                        "description": "Name of the review category",
                                        "type": "string",
                                        "example": "General"
                                    },
                                    "description": {
                                        "description": "A brief description of the review category",
                                        "type": "string",
                                        "example": "A category for general reviews"
                                    },
                                    "is_active": {
                                        "description": "Indicates if the category is active",
                                        "type": "boolean",
                                        "example": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Review category created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "properties": {
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "category_name": {
                                                    "type": "string",
                                                    "example": "General"
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": "A category for general reviews"
                                                },
                                                "is_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Review category created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/reviews/submit": {
            "post": {
                "tags": [
                    "reviews"
                ],
                "summary": "Submit a new review",
                "operationId": "cdc324fe5cfe92b48b74a8352f58fc50",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "review_type",
                                    "reviewee_id",
                                    "booking_id",
                                    "overall_rating"
                                ],
                                "properties": {
                                    "review_type": {
                                        "type": "string",
                                        "enum": [
                                            "customer_to_property",
                                            "host_to_customer"
                                        ],
                                        "example": "customer_to_property"
                                    },
                                    "reviewee_id": {
                                        "type": "integer",
                                        "example": 5
                                    },
                                    "booking_id": {
                                        "type": "integer",
                                        "example": 12
                                    },
                                    "overall_rating": {
                                        "type": "integer",
                                        "maximum": 5,
                                        "minimum": 1,
                                        "example": 4
                                    },
                                    "comment": {
                                        "type": "string",
                                        "example": "Nice place"
                                    },
                                    "categories": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "rating": {
                                                    "type": "integer",
                                                    "maximum": 5,
                                                    "minimum": 1,
                                                    "example": 5
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Review submitted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Review submitted"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/reviews/property/{property_id}": {
            "get": {
                "tags": [
                    "reviews"
                ],
                "summary": "Get visible reviews for property",
                "operationId": "36c6436127a109d0f04f773274d16423",
                "parameters": [
                    {
                        "name": "property_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Visible reviews"
                    },
                    "403": {
                        "description": "Restricted"
                    }
                }
            }
        },
        "/reviews/property/{property_id}/all": {
            "get": {
                "tags": [
                    "reviews"
                ],
                "summary": "Get all reviews for property (owner only)",
                "operationId": "c4ee3666fd8cac2e756bb072b1c05406",
                "parameters": [
                    {
                        "name": "property_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "All reviews"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/roles": {
            "get": {
                "tags": [
                    "roles"
                ],
                "summary": "Get list of roles",
                "description": "Display a listing of the Role.\nGET|HEAD /roles",
                "operationId": "getRoles",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "roles"
                ],
                "summary": "Create a new role",
                "description": "Store a newly created Role in storage.\nPOST /roles",
                "operationId": "addRole",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "guard_name": {
                                        "type": "string"
                                    },
                                    "permissions": {
                                        "description": "The id of the permission",
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "example": "[1,2]"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error or login required"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/roles/{id}": {
            "get": {
                "tags": [
                    "roles"
                ],
                "summary": "Get a roles details",
                "description": "Display the specified Role.\nGET|HEAD /roles/{id}",
                "operationId": "getRole",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the role",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Role not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "roles"
                ],
                "summary": "Update a roles details",
                "description": "Update the specified Role in storage.\nPUT/PATCH /roles/{id}",
                "operationId": "updateRole",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the role",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "guard_name": {
                                        "type": "string"
                                    },
                                    "permissions": {
                                        "description": "The id of the permission",
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "example": "[1,2]"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Role not found"
                    },
                    "403": {
                        "description": "Validation error OR login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "roles"
                ],
                "summary": "Delete a role",
                "description": "Remove the specified Role from storage.\nDELETE /roles/{id}",
                "operationId": "deleteRole",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the role",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Role not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/settings": {
            "get": {
                "tags": [
                    "settings"
                ],
                "summary": "Get list of settings",
                "description": "Display a listing of the Setting.\nGET|HEAD /settings",
                "operationId": "getSettings",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/settings/show/{id}": {
            "get": {
                "tags": [
                    "settings"
                ],
                "summary": "Get a settings details",
                "description": "Display the specified Setting.\nGET|HEAD /settings/{id}",
                "operationId": "getSetting",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the settings",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Settings not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/settings/update/{id}": {
            "put": {
                "tags": [
                    "settings"
                ],
                "summary": "Update a settings details",
                "description": "Update the specified Setting in storage.\nPUT/PATCH /settings/{id}",
                "operationId": "updateSettings",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the settings",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "value": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "settings not found"
                    },
                    "403": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/staff": {
            "post": {
                "tags": [
                    "Staff"
                ],
                "summary": "Create a new staff member",
                "operationId": "25f2cd89789e195a6c1dbbba74fa5183",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "first_name",
                                    "last_name",
                                    "username",
                                    "role_id",
                                    "phone_number",
                                    "password"
                                ],
                                "properties": {
                                    "first_name": {
                                        "description": "First name of the staff",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "last_name": {
                                        "description": "Last name of the staff",
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "username": {
                                        "description": "Username of the staff",
                                        "type": "string",
                                        "example": "johndoe"
                                    },
                                    "email": {
                                        "description": "Email of the staff member",
                                        "type": "string",
                                        "format": "email",
                                        "example": "john.doe@example.com"
                                    },
                                    "role_id": {
                                        "description": "Role ID of the staff: 1 (CO-Admin), 2 (Booking), 3 (Finance)",
                                        "type": "integer",
                                        "enum": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "example": 1
                                    },
                                    "phone_number": {
                                        "description": "Phone number of the staff member",
                                        "type": "string",
                                        "example": "0915273748"
                                    },
                                    "country_code": {
                                        "description": "Country code of the phone number",
                                        "type": "string",
                                        "example": "+218"
                                    },
                                    "password": {
                                        "description": "Password for the staff account",
                                        "type": "string",
                                        "example": "secret123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Staff created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Staff"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "email": [
                                                    "The email has already been taken."
                                                ],
                                                "role_id": [
                                                    "The selected role_id is invalid."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/staff/{id}": {
            "get": {
                "tags": [
                    "Staff"
                ],
                "summary": "Get staff member(s)",
                "operationId": "41efb382943a50205d5d0fc464d0cec3",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Staff ID (optional, if not provided, will return a list with pagination)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "perPage",
                        "in": "query",
                        "description": "Number of items per page (pagination)",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Field to sort by. Use '-' prefix for descending (e.g., -first_name)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id",
                                "-id",
                                "first_name",
                                "-first_name",
                                "last_name",
                                "-last_name",
                                "username",
                                "-username",
                                "email",
                                "-email",
                                "role_id",
                                "-role_id",
                                "phone_number",
                                "-phone_number",
                                "is_active",
                                "-is_active"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "$ref": "#/components/schemas/Staff"
                                        },
                                        {
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Staff"
                                                    }
                                                },
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Staff not found or not authorized"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Staff"
                ],
                "summary": "Update staff member",
                "operationId": "4d3693e0fb3e554614b55f9a5ba23626",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Staff ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "first_name",
                        "in": "query",
                        "description": "The first name of the staff member",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "John"
                        }
                    },
                    {
                        "name": "last_name",
                        "in": "query",
                        "description": "The last name of the staff member",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "Doe"
                        }
                    },
                    {
                        "name": "username",
                        "in": "query",
                        "description": "The username to be used by the staff member",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "johndoe"
                        }
                    },
                    {
                        "name": "email",
                        "in": "query",
                        "description": "The email address of the staff member",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "email",
                            "example": "john.doe@example.com"
                        }
                    },
                    {
                        "name": "role_id",
                        "in": "query",
                        "description": "The role ID assigned to the staff member: 1 (CO-Admin), 2 (Booking), 3 (Finance)",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "name": "phone_number",
                        "in": "query",
                        "description": "The staff member's phone number",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "234567890"
                        }
                    },
                    {
                        "name": "country_code",
                        "in": "query",
                        "description": "The country code for the phone number",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "218"
                        }
                    },
                    {
                        "name": "password",
                        "in": "query",
                        "description": "The password for the staff member's account, with a minimum of 8 characters",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "minLength": 8,
                            "example": "newpassword123"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Staff updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Staff"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Staff not found or unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Staff member not found or not authorized"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "email": [
                                                    "The email has already been taken."
                                                ],
                                                "role_id": [
                                                    "The selected role id is invalid."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/staff/{id}/status/{action}": {
            "patch": {
                "tags": [
                    "Staff"
                ],
                "summary": "Change staff member status",
                "operationId": "ec7e79c1fb1ac5e7fe184c7bf486a084",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Staff ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "action",
                        "in": "path",
                        "description": "Action to perform (1=activate, 0=deactivate)",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Status changed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Staff member activated"
                                        },
                                        "data": {
                                            "$ref": "#/components/schemas/Staff"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Staff not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Staff member not found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Invalid action parameter",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Invalid action parameter. Use 0 to activate or 1 to deactivate."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/statistics/chalet-availability": {
            "get": {
                "tags": [
                    "statistics"
                ],
                "summary": "Get chalet availability",
                "operationId": "chaletAvailability",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "Login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/statistics/customers-track": {
            "get": {
                "tags": [
                    "statistics"
                ],
                "summary": "Track auth checkin and checkout",
                "operationId": "AuthUserTrack",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "Login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/statistics/booking-statuses": {
            "get": {
                "tags": [
                    "statistics"
                ],
                "summary": "Get booking availability",
                "operationId": "bookingAvailability",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "Login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/statistics/bookings-by-date": {
            "get": {
                "tags": [
                    "statistics"
                ],
                "summary": "Get bookings by date",
                "operationId": "getBookingsByDate",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "Login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/statistics/confirmed-bookings": {
            "get": {
                "tags": [
                    "statistics"
                ],
                "summary": "Get authenticated user last confirmed booking",
                "operationId": "getLastBooking",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "Login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/subscription": {
            "get": {
                "tags": [
                    "Subscription"
                ],
                "summary": "Get current host subscription details",
                "operationId": "25e1efea9c33b3a017059893f092928e",
                "responses": {
                    "200": {
                        "description": "Returns subscription details",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "type": {
                                            "type": "string",
                                            "example": "wallet"
                                        },
                                        "duration_in_days": {
                                            "type": "integer",
                                            "example": 180
                                        },
                                        "reserved_payment_mode": {
                                            "type": "string",
                                            "example": "wallet_only"
                                        },
                                        "start_date": {
                                            "type": "string",
                                            "format": "date",
                                            "example": "2025-09-01"
                                        },
                                        "end_date": {
                                            "type": "string",
                                            "format": "date",
                                            "example": "2026-02-28"
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "Active"
                                        },
                                        "count_of_units": {
                                            "type": "integer",
                                            "example": 4
                                        },
                                        "employee_count": {
                                            "type": "integer",
                                            "example": 12
                                        },
                                        "owner_percentage": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 7.5
                                        },
                                        "customer_fee_percentage": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 2.5
                                        },
                                        "max_negative_balance": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 250
                                        },
                                        "cancellation_full_refund_days": {
                                            "type": "integer",
                                            "example": 10
                                        },
                                        "cancellation_partial_refund_percent": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 30
                                        },
                                        "cancellation_partial_refund_day": {
                                            "type": "integer",
                                            "example": 5
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or Host not found"
                    },
                    "404": {
                        "description": "No subscription found for this host"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Subscription"
                ],
                "summary": "Update host subscription settings",
                "operationId": "ae928a302d577b5f6dc39dc372adab64",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "cancellation_full_refund_days": {
                                        "type": "integer",
                                        "example": 10
                                    },
                                    "cancellation_partial_refund_day": {
                                        "type": "integer",
                                        "example": 5
                                    },
                                    "cancellation_partial_refund_percent": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 30
                                    },
                                    "cancellation_full_deduct_day": {
                                        "type": "integer",
                                        "example": 2
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Subscription updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Subscription updated successfully"
                                        },
                                        "subscription": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized or Host not found"
                    },
                    "404": {
                        "description": "No subscription found for this host"
                    },
                    "422": {
                        "description": "Validation errors"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/subscription/{id}": {
            "get": {
                "tags": [
                    "Subscription"
                ],
                "summary": "Get subscription details by user ID",
                "operationId": "26d085ff835e7e62945a4b8acaa531c1",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "User ID of the host",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "example": 123
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns subscription details",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "full_name": {
                                            "type": "string",
                                            "example": "أحمد محمد"
                                        },
                                        "id": {
                                            "type": "integer",
                                            "example": 5
                                        },
                                        "type": {
                                            "type": "string",
                                            "example": "wallet"
                                        },
                                        "type_ar": {
                                            "type": "string",
                                            "example": "محفظة"
                                        },
                                        "duration_in_days": {
                                            "type": "integer",
                                            "example": 180
                                        },
                                        "reserved_payment_mode": {
                                            "type": "string",
                                            "example": "wallet_only"
                                        },
                                        "start_date": {
                                            "type": "string",
                                            "format": "date",
                                            "example": "2025-09-01"
                                        },
                                        "end_date": {
                                            "type": "string",
                                            "format": "date",
                                            "example": "2026-02-28"
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "Active"
                                        },
                                        "count_of_units": {
                                            "type": "integer",
                                            "example": 4
                                        },
                                        "employee_count": {
                                            "type": "integer",
                                            "example": 12
                                        },
                                        "owner_percentage": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 7.5
                                        },
                                        "customer_fee_percentage": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 2.5
                                        },
                                        "max_negative_balance": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 250
                                        },
                                        "cancellation_full_refund_days": {
                                            "type": "integer",
                                            "example": 10
                                        },
                                        "cancellation_partial_refund_percent": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 30
                                        },
                                        "cancellation_partial_refund_day": {
                                            "type": "integer",
                                            "example": 5
                                        },
                                        "cancellation_full_deduct_day": {
                                            "type": "integer",
                                            "example": 2
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Subscription not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/tbl_booking_resorts": {
            "get": {
                "tags": [
                    "booking resort"
                ],
                "summary": "Get list of booking resort",
                "description": "Display a listing of the TblBookingResort.\nGET|HEAD /tblBookingResorts",
                "operationId": "getBookingResorts",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            },
            "post": {
                "tags": [
                    "booking resort"
                ],
                "summary": "Create a new booking resort",
                "description": "Store a newly created TblBookingResort in storage.\nPOST /tblBookingResorts",
                "operationId": "addBookingResort",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "start_date",
                                    "unique_id",
                                    "created_by_id",
                                    "modified_by_id",
                                    "refund",
                                    "cancelation_note",
                                    "occasion_type_id",
                                    "mixedDays"
                                ],
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    },
                                    "detail_id": {
                                        "type": "integer"
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "unique_id": {
                                        "type": "string"
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "start_time": {},
                                    "end_time": {},
                                    "deposite_amount": {
                                        "type": "string"
                                    },
                                    "type_of_guest": {
                                        "type": "integer"
                                    },
                                    "no_of_guest": {
                                        "type": "integer"
                                    },
                                    "state_id": {
                                        "type": "integer"
                                    },
                                    "type_id": {
                                        "type": "integer"
                                    },
                                    "state_type": {
                                        "type": "integer"
                                    },
                                    "property_type": {
                                        "type": "integer"
                                    },
                                    "created_on": {},
                                    "created_by_id": {
                                        "type": "integer"
                                    },
                                    "modified_by_id": {
                                        "type": "integer"
                                    },
                                    "confrimed_by_id": {
                                        "type": "integer"
                                    },
                                    "total_amount": {
                                        "type": "string"
                                    },
                                    "refund": {
                                        "type": "number"
                                    },
                                    "cancelation_note": {
                                        "type": "string"
                                    },
                                    "occasion_type_id": {
                                        "type": "integer"
                                    },
                                    "mixedDays": {
                                        "type": "boolean"
                                    },
                                    "customer_token": {
                                        "type": "string"
                                    },
                                    "price_first_day": {
                                        "type": "number"
                                    },
                                    "deposit_payment_type": {
                                        "type": "string"
                                    },
                                    "payment_type": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/tbl_booking_resorts/{id}": {
            "get": {
                "tags": [
                    "booking resort"
                ],
                "summary": "Get a booking resort details",
                "description": "Display the specified TblBookingResort.\nGET|HEAD /tblBookingResorts/{id}",
                "operationId": "getBookingResort",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the booking resort",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Booking Resort not found"
                    }
                }
            },
            "put": {
                "tags": [
                    "booking resort"
                ],
                "summary": "Update a booking resort",
                "description": "Update the specified TblBookingResort in storage.\nPUT/PATCH /tblBookingResorts/{id}",
                "operationId": "updateBookingResort",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the bookingresort",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    },
                                    "detail_id": {
                                        "type": "integer"
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "unique_id": {
                                        "type": "string"
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "start_time": {},
                                    "end_time": {},
                                    "deposite_amount": {
                                        "type": "string"
                                    },
                                    "type_of_guest": {
                                        "type": "integer"
                                    },
                                    "no_of_guest": {
                                        "type": "integer"
                                    },
                                    "state_id": {
                                        "type": "integer"
                                    },
                                    "type_id": {
                                        "type": "integer"
                                    },
                                    "state_type": {
                                        "type": "integer"
                                    },
                                    "property_type": {
                                        "type": "integer"
                                    },
                                    "created_on": {},
                                    "created_by_id": {
                                        "type": "integer"
                                    },
                                    "modified_by_id": {
                                        "type": "integer"
                                    },
                                    "confrimed_by_id": {
                                        "type": "integer"
                                    },
                                    "total_amount": {
                                        "type": "string"
                                    },
                                    "refund": {
                                        "type": "number"
                                    },
                                    "cancelation_note": {
                                        "type": "string"
                                    },
                                    "occasion_type_id": {
                                        "type": "integer"
                                    },
                                    "mixedDays": {
                                        "type": "boolean"
                                    },
                                    "customer_token": {
                                        "type": "string"
                                    },
                                    "price_first_day": {
                                        "type": "number"
                                    },
                                    "deposit_payment_type": {
                                        "type": "string"
                                    },
                                    "payment_type": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                }
            },
            "delete": {
                "tags": [
                    "booking resort"
                ],
                "summary": "Delete a booking resort",
                "description": "Remove the specified TblBookingResort from storage.\nDELETE /tblBookingResorts/{id}",
                "operationId": "deleteBookingResort",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the booking resort",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "booking resort not found"
                    }
                }
            }
        },
        "/tbl_chalet_sizes": {
            "get": {
                "tags": [
                    "chalet sizes"
                ],
                "summary": "Get list of chalet sizes",
                "description": "Display a listing of the TblChaletSizes.\nGET|HEAD /tblChaletSizes",
                "operationId": "getChaletSizes",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            },
            "post": {
                "tags": [
                    "chalet sizes"
                ],
                "summary": "Create a new chalet size",
                "description": "Store a newly created TblChaletSizes in storage.\nPOST /tblChaletSizes",
                "operationId": "addChaletSize",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/tbl_chalet_sizes/{id}": {
            "get": {
                "tags": [
                    "chalet sizes"
                ],
                "summary": "Get a chalet size details",
                "description": "Display the specified TblChaletSizes.\nGET|HEAD /tblChaletSizes/{id}",
                "operationId": "getChalet",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the chalet size",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "chalet size not found"
                    }
                }
            },
            "put": {
                "tags": [
                    "chalet sizes"
                ],
                "summary": "Update a chalet size details",
                "description": "Update the specified TblChaletSizes in storage.\nPUT/PATCH /tblChaletSizes/{id}",
                "operationId": "updateChaletSize",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the chalet size",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "chalet size not found"
                    },
                    "403": {
                        "description": "Validation error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "chalet sizes"
                ],
                "summary": "Delete a chalet size",
                "description": "Remove the specified TblChaletSizes from storage.\nDELETE /tblChaletSizes/{id}",
                "operationId": "deleteChaletSize",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the chalet size",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "chalet size not found"
                    }
                }
            }
        },
        "/tbl_cities": {
            "get": {
                "tags": [
                    "cities"
                ],
                "summary": "Get list of cities",
                "description": "Display a listing of the TblCity.\nGET|HEAD /tblCities",
                "operationId": "getCities",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            },
            "post": {
                "tags": [
                    "cities"
                ],
                "summary": "Create a new city",
                "description": "Store a newly created TblCity in storage.\nPOST /tblCities",
                "operationId": "addCity",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/tbl_cities/{id}": {
            "get": {
                "tags": [
                    "cities"
                ],
                "summary": "Get a city details",
                "description": "Display the specified TblCity.\nGET|HEAD /tblCities/{id}",
                "operationId": "getCity",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the city",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "City not found"
                    }
                }
            },
            "put": {
                "tags": [
                    "cities"
                ],
                "summary": "Update a city details",
                "description": "Update the specified TblCity in storage.\nPUT/PATCH /tblCities/{id}",
                "operationId": "updateCity",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the city",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "City not found"
                    },
                    "403": {
                        "description": "Validation error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "cities"
                ],
                "summary": "Delete a city",
                "description": "Remove the specified TblCity from storage.\nDELETE /tblCities/{id}",
                "operationId": "deleteCity",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the city",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "City not found"
                    }
                }
            }
        },
        "/tbl_host_wallet_invoices": {
            "get": {
                "tags": [
                    "host wallet invoices"
                ],
                "summary": "Get list of host wallet invoices",
                "description": "Display a listing of the TblHostWalletInvoice.\nGET|HEAD /tblHostWalletInvoices",
                "operationId": "getHostWalletInvoices",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            },
            "post": {
                "tags": [
                    "host wallet invoices"
                ],
                "summary": "Create a new host wallet invoice",
                "description": "Store a newly created TblHostWalletInvoice in storage.\nPOST /tblHostWalletInvoices",
                "operationId": "addHostWalletInvoice",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "tbl_user_id",
                                    "amount",
                                    "transaction_ids",
                                    "created_at",
                                    "updated_at",
                                    "total_debt",
                                    "paid",
                                    "state_id"
                                ],
                                "properties": {
                                    "tbl_user_id": {
                                        "type": "integer"
                                    },
                                    "amount": {
                                        "type": "integer"
                                    },
                                    "transaction_ids": {
                                        "type": "string"
                                    },
                                    "created_at": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "updated_at": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "total_debt": {
                                        "type": "number"
                                    },
                                    "paid": {
                                        "type": "boolean"
                                    },
                                    "state_id": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/tbl_host_wallet_invoices/{id}": {
            "get": {
                "tags": [
                    "host wallet invoices"
                ],
                "summary": "Get a host wallet invoice details",
                "description": "Display the specified TblHostWalletInvoice.\nGET|HEAD /tblHostWalletInvoices/{id}",
                "operationId": "getHostWalletInvoice",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the host wallet invoice",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "host wallet invoice not found"
                    }
                }
            },
            "put": {
                "tags": [
                    "host wallet invoices"
                ],
                "summary": "Update a host wallet invoice details",
                "description": "Update the specified TblHostWalletInvoice in storage.\nPUT/PATCH /tblHostWalletInvoices/{id}",
                "operationId": "updateHostWalletInvoice",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the host wallet invoice",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "tbl_user_id": {
                                        "type": "integer"
                                    },
                                    "amount": {
                                        "type": "integer"
                                    },
                                    "transaction_ids": {
                                        "type": "string"
                                    },
                                    "created_at": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "updated_at": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "total_debt": {
                                        "type": "number"
                                    },
                                    "paid": {
                                        "type": "boolean"
                                    },
                                    "state_id": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "host wallet invoice not found"
                    },
                    "403": {
                        "description": "Validation error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "host wallet invoices"
                ],
                "summary": "Delete a host wallet invocie",
                "description": "Remove the specified TblHostWalletInvoice from storage.\nDELETE /tblHostWalletInvoices/{id}",
                "operationId": "deleteHostWalletInvoice",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the host wallet invoice",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "host wallet invoice not found"
                    }
                }
            }
        },
        "/tbl_property_details": {
            "get": {
                "tags": [
                    "Property"
                ],
                "summary": "Get list of property details",
                "description": "Display a listing of the TblPropertyDetail.\nGET|HEAD /v2/tblPropertyDetails",
                "operationId": "getPropertyDetails",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "The page number for pagination.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "total records per page defult is 10",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "property_type[]",
                        "in": "query",
                        "description": "نوع العقار: 1=فيلا، 2=منتجع، 3=استراحة، 4=عمارة، 5=فندق. يمكنك إرسال أكثر من نوع",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    },
                    {
                        "name": "filter[type_id]",
                        "in": "query",
                        "description": "1=معروض, 0=غير معروض",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[resort_id]",
                        "in": "query",
                        "description": "فلتر بحسب المنتجع",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "occasion_type_id[]",
                        "in": "query",
                        "description": "Occasion Type IDs (1=عرس, 2=خطوبة, 3=عقد قران, 4=اسبوع مولود, 5=الإقامة العادية, 6=العيد, 7=تلبيسة)",
                        "required": false,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer",
                                "enum": [
                                    1,
                                    2,
                                    3,
                                    4,
                                    5,
                                    6,
                                    7
                                ]
                            }
                        }
                    },
                    {
                        "name": "filter[title]",
                        "in": "query",
                        "description": "title",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "latitude",
                        "in": "query",
                        "description": "latitude",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "longitude",
                        "in": "query",
                        "description": "longitude",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[children_max_age]",
                        "in": "query",
                        "description": "Maximum age of children",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[tbl_city_id]",
                        "in": "query",
                        "description": "city_id",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[tbl_zone_id]",
                        "in": "query",
                        "description": "zone_id",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[children_max_age]",
                        "in": "query",
                        "description": "children_max_age",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "guest_type",
                        "in": "query",
                        "description": "guest_type",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "payment_type",
                        "in": "query",
                        "description": "payment_type",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "cash",
                                "wallet",
                                "wallet_and_cash",
                                "wallet_plus"
                            ]
                        }
                    },
                    {
                        "name": "start_day_price",
                        "in": "query",
                        "description": "Minimum price per day",
                        "required": false,
                        "schema": {
                            "type": "float"
                        }
                    },
                    {
                        "name": "end_day_price",
                        "in": "query",
                        "description": "Maximum price per day",
                        "required": false,
                        "schema": {
                            "type": "float"
                        }
                    },
                    {
                        "name": "price_type_search",
                        "in": "query",
                        "description": "Price type for search (both - week_day_price - weekend_day_price)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "both",
                                "week_day_price",
                                "weekend_day_price"
                            ]
                        }
                    },
                    {
                        "name": "availability_date_start",
                        "in": "query",
                        "description": "availability_date_start",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "availability_date_end",
                        "in": "query",
                        "description": "availability_date_end",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "availability_search_type",
                        "in": "query",
                        "description": "Price type for search (both - week_day_price - weekend_day_price)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "full ",
                                "part"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/property-details/{id}": {
            "get": {
                "tags": [
                    "Property"
                ],
                "summary": "Get property by ID",
                "operationId": "9577f14da7d89b422afd5f0ae3ddd8b0",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    },
                    "404": {
                        "description": "Property not found"
                    }
                }
            }
        },
        "/add-property": {
            "post": {
                "tags": [
                    "Property"
                ],
                "summary": "Add property",
                "description": "Create a property with prices, units, amenities, facilities and guest types",
                "operationId": "baf5d19feb0cea701e7f3cd6490880b6",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "Detail": {
                                        "required": [
                                            "title",
                                            "property_type"
                                        ],
                                        "properties": {
                                            "title": {
                                                "type": "string",
                                                "example": "فيلا الشاطئ"
                                            },
                                            "property_type": {
                                                "description": "1=Villa, 3=Vacation",
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "parent_id": {
                                                "type": "integer",
                                                "nullable": true
                                            },
                                            "tbl_city_id": {
                                                "type": "integer",
                                                "example": 5
                                            },
                                            "tbl_zone_id": {
                                                "type": "integer",
                                                "example": 12
                                            },
                                            "children_count": {
                                                "type": "integer",
                                                "example": 4
                                            },
                                            "adult_count": {
                                                "type": "integer",
                                                "example": 8
                                            },
                                            "latitude": {
                                                "type": "string",
                                                "example": "32.8872"
                                            },
                                            "longitude": {
                                                "type": "string",
                                                "example": "13.1913"
                                            },
                                            "meter_distance": {
                                                "type": "string",
                                                "example": "200"
                                            },
                                            "type_of_guest": {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer"
                                                }
                                            },
                                            "description": {
                                                "type": "string",
                                                "example": "فيلا جميلة جدا"
                                            },
                                            "no_of_chalets": {
                                                "type": "integer",
                                                "example": 2
                                            },
                                            "is_near_see": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "no_of_guest": {
                                                "type": "integer",
                                                "example": 4
                                            },
                                            "type_id": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "check_in_time": {
                                                "type": "string",
                                                "example": "14:00"
                                            },
                                            "check_out_time": {
                                                "type": "string",
                                                "example": "12:00"
                                            },
                                            "tbl_chalet_size_id": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "resort_id": {
                                                "type": "integer",
                                                "example": 1,
                                                "nullable": true
                                            },
                                            "location": {
                                                "type": "string",
                                                "example": "طرابلس"
                                            },
                                            "image_file": {
                                                "description": "الصورة الرئيسية",
                                                "type": "string",
                                                "format": "binary"
                                            },
                                            "file": {
                                                "description": "ملف إضافي أو صورة ثانوية",
                                                "type": "string",
                                                "format": "binary"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "PropertyUnits": {
                                        "properties": {
                                            "total_quantity": {
                                                "type": "integer",
                                                "example": 10
                                            },
                                            "displayed_quantity": {
                                                "type": "integer",
                                                "example": 5
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "PropertyChaletPrice": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "occasion_type_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "occasion_price": {
                                                    "type": "number",
                                                    "example": 1500
                                                },
                                                "deposit_occasion_price": {
                                                    "type": "number",
                                                    "example": 300
                                                },
                                                "payment_type": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "deposite_type": {
                                                    "type": "integer",
                                                    "example": 2
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "Amenity": {
                                        "properties": {
                                            "category_id": {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer"
                                                },
                                                "example": [
                                                    1,
                                                    2,
                                                    3
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "Facility": {
                                        "properties": {
                                            "category_id": {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer"
                                                },
                                                "example": [
                                                    5,
                                                    6,
                                                    7
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Property added successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Property added successfully"
                                        },
                                        "detail": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Validation or processing error"
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/edit-property/{id}": {
            "put": {
                "tags": [
                    "Property"
                ],
                "summary": "Edit property details",
                "description": "Update property info, units, amenities, facilities, prices, services and images",
                "operationId": "8938d5b5e618ce54b375ae65607375f8",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Property ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "example": 123
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "Detail": {
                                        "properties": {
                                            "title": {
                                                "type": "string",
                                                "example": "فيلا الشاطئ"
                                            },
                                            "property_type": {
                                                "description": "1=Villa, 3=Vacation",
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "parent_id": {
                                                "type": "integer",
                                                "nullable": true
                                            },
                                            "tbl_city_id": {
                                                "type": "integer",
                                                "example": 5
                                            },
                                            "tbl_zone_id": {
                                                "type": "integer",
                                                "example": 12
                                            },
                                            "total_quantity": {
                                                "type": "integer",
                                                "example": 10
                                            },
                                            "displayed_quantity": {
                                                "type": "integer",
                                                "example": 5
                                            },
                                            "children_count": {
                                                "type": "integer",
                                                "example": 4
                                            },
                                            "adult_count": {
                                                "type": "integer",
                                                "example": 8
                                            },
                                            "latitude": {
                                                "type": "string",
                                                "example": "32.8872"
                                            },
                                            "longitude": {
                                                "type": "string",
                                                "example": "13.1913"
                                            },
                                            "description": {
                                                "type": "string",
                                                "example": "فيلا جميلة جدا"
                                            },
                                            "no_of_chalets": {
                                                "type": "integer",
                                                "example": 2
                                            },
                                            "is_near_see": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "no_of_guest": {
                                                "type": "integer",
                                                "example": 4
                                            },
                                            "type_id": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "check_in_time": {
                                                "type": "string",
                                                "example": "14:00"
                                            },
                                            "check_out_time": {
                                                "type": "string",
                                                "example": "12:00"
                                            },
                                            "tbl_chalet_size_id": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "resort_id": {
                                                "type": "integer",
                                                "example": 1,
                                                "nullable": true
                                            },
                                            "location": {
                                                "type": "string",
                                                "example": "طرابلس"
                                            },
                                            "image_file": {
                                                "description": "الصورة الرئيسية",
                                                "type": "string",
                                                "format": "binary"
                                            },
                                            "file": {
                                                "description": "ملف إضافي أو صورة ثانوية",
                                                "type": "string",
                                                "format": "binary"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "Amenity": {
                                        "properties": {
                                            "category_id": {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer"
                                                },
                                                "example": [
                                                    1,
                                                    2,
                                                    3
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "Facility": {
                                        "properties": {
                                            "category_id": {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer"
                                                },
                                                "example": [
                                                    5,
                                                    6,
                                                    7
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "ChaletPrice": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "type_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "amount": {
                                                    "type": "number",
                                                    "example": 1500
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "delete_images": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "example": 55
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Property updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Property updated successfully"
                                        },
                                        "detail": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Validation error"
                    },
                    "404": {
                        "description": "Property not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/property/{id}/images": {
            "post": {
                "tags": [
                    "Property Images"
                ],
                "summary": "Upload gallery images for a property",
                "operationId": "f47e1cfdd03c3ad7d15f45713c80aa6a",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Property ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "images[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Images uploaded successfully"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/property/images/{imageId}": {
            "delete": {
                "tags": [
                    "Property Images"
                ],
                "summary": "Delete a property gallery image",
                "operationId": "911b945db32fbc7800d21794e757742e",
                "parameters": [
                    {
                        "name": "imageId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Image deleted successfully"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/property-detail/property-list": {
            "get": {
                "tags": [
                    "properties"
                ],
                "summary": "Get list of properties",
                "description": "Display a listing of the TblPropertyResort.\nGET|HEAD /tblPropertyResorts",
                "operationId": "getProperties",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/tbl_transactions": {
            "get": {
                "tags": [
                    "transactions"
                ],
                "summary": "Get list of transactions",
                "description": "Display a listing of the TblTransaction.\nGET|HEAD /tblTransactions",
                "operationId": "getTransactions",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            },
            "post": {
                "tags": [
                    "transactions"
                ],
                "summary": "Create a new transaction",
                "description": "Store a newly created TblTransaction in storage.\nPOST /tblTransactions",
                "operationId": "addTransaction",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "type_id",
                                    "amount",
                                    "amount_after_comssion",
                                    "comssion"
                                ],
                                "properties": {
                                    "booking_id": {
                                        "type": "integer"
                                    },
                                    "booking_apartment_id": {
                                        "type": "integer"
                                    },
                                    "type_id": {
                                        "type": "integer"
                                    },
                                    "amount": {
                                        "type": "number"
                                    },
                                    "user_wallet_id": {
                                        "type": "integer"
                                    },
                                    "amount_after_comssion": {
                                        "type": "number"
                                    },
                                    "comssion": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/tbl_transactions/{id}": {
            "get": {
                "tags": [
                    "transactions"
                ],
                "summary": "Get a transaction details",
                "description": "Display the specified TblTransaction.\nGET|HEAD /tblTransactions/{id}",
                "operationId": "getTransaction",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the transaction",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "transaction not found"
                    }
                }
            },
            "put": {
                "tags": [
                    "transactions"
                ],
                "summary": "Update a transaction details",
                "description": "Update the specified TblTransaction in storage.\nPUT/PATCH /tblTransactions/{id}",
                "operationId": "updateTransaction",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the transaction",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "booking_id": {
                                        "type": "integer"
                                    },
                                    "booking_apartment_id": {
                                        "type": "integer"
                                    },
                                    "type_id": {
                                        "type": "integer"
                                    },
                                    "amount": {
                                        "type": "number"
                                    },
                                    "user_wallet_id": {
                                        "type": "integer"
                                    },
                                    "amount_after_comssion": {
                                        "type": "number"
                                    },
                                    "comssion": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "transaction not found"
                    },
                    "403": {
                        "description": "Validation error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "transactions"
                ],
                "summary": "Delete a transaction",
                "description": "Remove the specified TblTransaction from storage.\nDELETE /tblTransactions/{id}",
                "operationId": "deleteTransaction",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the transaction",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "transaction not found"
                    }
                }
            }
        },
        "/resort_wallets_by_user/{userId}": {
            "get": {
                "tags": [
                    "Transactions"
                ],
                "summary": "Get booking financial transactions for a specific user",
                "operationId": "31e2f89c41aa74af48f6ec5e63cf2ba8",
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "description": "ID of the user",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "description": "Start date for filtering (YYYY-MM-DD)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-01-01"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "description": "End date for filtering (YYYY-MM-DD)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2024-12-31"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Booking financial transactions retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "example": 12
                                            },
                                            "user_id": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "type_id": {
                                                "type": "integer",
                                                "example": 5
                                            },
                                            "amount": {
                                                "type": "number",
                                                "format": "float",
                                                "example": 100.5
                                            },
                                            "created_on": {
                                                "type": "string",
                                                "format": "date-time",
                                                "example": "2024-06-15T14:00:00Z"
                                            },
                                            "description": {
                                                "type": "string",
                                                "example": "Booking payment"
                                            }
                                        },
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Missing required user ID or invalid data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "user_id is required"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/tbl_zones": {
            "get": {
                "tags": [
                    "zones"
                ],
                "summary": "Get list of zones",
                "description": "Display a listing of the TblZone.\nGET|HEAD /tbl_zones",
                "operationId": "getZones",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                }
            },
            "post": {
                "tags": [
                    "zones"
                ],
                "summary": "Create a new zone",
                "description": "Store a newly created TblZone in storage.\nPOST /tbl_zones",
                "operationId": "addZone",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "name",
                                    "tbl_city_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "tbl_city_id": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                }
            }
        },
        "/tbl_zones/{id}": {
            "get": {
                "tags": [
                    "zones"
                ],
                "summary": "Get a zones details",
                "description": "Display the specified TblZone.\nGET|HEAD /tblZones/{id}",
                "operationId": "getZone",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the zone",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Zone not found"
                    }
                }
            },
            "put": {
                "tags": [
                    "zones"
                ],
                "summary": "Update a zones details",
                "description": "Update the specified TblZone in storage.\nPUT/PATCH /tblZones/{id}",
                "operationId": "updateZone",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the zone",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "tbl_city_id": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Zone not found"
                    },
                    "403": {
                        "description": "Validation error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "zones"
                ],
                "summary": "Delete a zone",
                "description": "Remove the specified TblZone from storage.\nDELETE /tblZones/{id}",
                "operationId": "deleteZone",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the zone",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "Zone not found"
                    }
                }
            }
        },
        "/user/signup": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "تسجيل مستخدم جديد",
                "operationId": "d6e7edb1256ed5326412b431e198b1b3",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "country_code",
                                    "contact_no",
                                    "role_id"
                                ],
                                "properties": {
                                    "country_code": {
                                        "type": "string",
                                        "example": "+218"
                                    },
                                    "contact_no": {
                                        "type": "string",
                                        "example": "912345678"
                                    },
                                    "role_id": {
                                        "description": "2=User, 5=Owner",
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "device_token": {
                                        "type": "string",
                                        "example": "token123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "تم تسجيل الحساب المبدئي بنجاح. تم إرسال رمز التحقق (OTP) إلى هاتفك."
                    },
                    "202": {
                        "description": "تم إرسال رمز التحقق (OTP) للتأكد من هويتك قبل استكمال التسجيل."
                    },
                    "403": {
                        "description": "هذا الرقم مسجل مسبقاً بحساب يمتلك صلاحيات مختلفة، يرجى تسجيل الدخول."
                    },
                    "409": {
                        "description": "هذا الرقم مسجل مسبقاً ولديه حساب نشط. يرجى التوجه لتسجيل الدخول."
                    },
                    "500": {
                        "description": "حدث خطأ غير متوقع أثناء إنشاء الحساب."
                    }
                }
            }
        },
        "/user/verify-otp": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "التحقق من رمز OTP",
                "operationId": "05d1123b97d9fda6b0f873dd26a44c13",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "country_code",
                                    "contact_no",
                                    "otp"
                                ],
                                "properties": {
                                    "country_code": {
                                        "type": "string",
                                        "example": "+218"
                                    },
                                    "contact_no": {
                                        "type": "string",
                                        "example": "912345678"
                                    },
                                    "otp": {
                                        "type": "integer",
                                        "example": 1234
                                    },
                                    "device_token": {
                                        "type": "string",
                                        "example": "token123"
                                    },
                                    "device_name": {
                                        "type": "string",
                                        "example": "android"
                                    },
                                    "device_type": {
                                        "type": "string",
                                        "example": "1"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تم التحقق من الرمز بنجاح. (قد يعود بـ state=0 أو state=2 إذا كان الملف غير مكتمل)"
                    },
                    "400": {
                        "description": "رمز التحقق (OTP) غير صحيح."
                    },
                    "404": {
                        "description": "لم يتم العثور على المستخدم."
                    }
                }
            }
        },
        "/user/profile-setup": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Setup user profile after OTP verification",
                "operationId": "a5fe0f4f5d7c61dcd2e4524cbd43f17c",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "User[first_name]",
                                    "User[password]",
                                    "User[confirm_password]"
                                ],
                                "properties": {
                                    "User[first_name]": {
                                        "type": "string",
                                        "example": "User"
                                    },
                                    "User[last_name]": {
                                        "type": "string",
                                        "example": "Rajput"
                                    },
                                    "User[email]": {
                                        "type": "string",
                                        "example": "user2@mail.com"
                                    },
                                    "User[address]": {
                                        "type": "string",
                                        "example": "address"
                                    },
                                    "User[latitude]": {
                                        "type": "string",
                                        "example": "43.6532"
                                    },
                                    "User[whtsaap_no]": {
                                        "type": "string",
                                        "example": "1234567890"
                                    },
                                    "User[longitude]": {
                                        "type": "string",
                                        "example": "79.3832"
                                    },
                                    "User[password]": {
                                        "type": "string",
                                        "example": ""
                                    },
                                    "User[confirm_password]": {
                                        "type": "string",
                                        "example": "admin123"
                                    },
                                    "User[id_proof]": {
                                        "type": "file"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تمت إضافة الملف الشخصي بنجاح."
                    },
                    "500": {
                        "description": "حدث خطأ أثناء حفظ البيانات."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/host/payment/type": {
            "get": {
                "tags": [
                    "auth payment type"
                ],
                "summary": "Get the authinticated user payment type",
                "operationId": "getAuthPaymentType",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "403": {
                        "description": "login required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/apartment/transaction/earning": {
            "get": {
                "tags": [
                    "auth transaction earning"
                ],
                "summary": "Get host appartment transaction earning",
                "operationId": "getAuthAppartmentTransactionEarning",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/property/transaction/earning": {
            "get": {
                "tags": [
                    "auth transaction earning"
                ],
                "summary": "Get host property transaction earning",
                "operationId": "getAuthPropertyTransactionEarning",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/transaction": {
            "get": {
                "tags": [
                    "auth transactions"
                ],
                "summary": "Get host transactions",
                "operationId": "getAuthTransactions",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/transaction/earning": {
            "get": {
                "tags": [
                    "auth transaction earning"
                ],
                "summary": "Get host transaction earning",
                "operationId": "getAuthTransactionEarning",
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/customer/phone-search": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Search for a customer by phone number",
                "description": "Checks whether the entered phone number (with country code, default is +218) belongs to a registered and active customer with a verified phone number. If the number belongs to a property owner (role_id = 5), it returns a specific conflict message without exposing user data.",
                "operationId": "phoneSearch",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "phone"
                                ],
                                "properties": {
                                    "phone": {
                                        "description": "Phone number without country code",
                                        "type": "string",
                                        "example": "925667675"
                                    },
                                    "country_code": {
                                        "description": "Country code (optional, default is +218)",
                                        "type": "string",
                                        "example": "+218"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Customer found successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "تم العثور على العميل بنجاح."
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "full_name": {
                                                    "type": "string",
                                                    "example": "Mohamed Ali"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "mohamed@example.com"
                                                },
                                                "contact_no": {
                                                    "type": "string",
                                                    "example": "+218925667675"
                                                },
                                                "whtsaap_no": {
                                                    "type": "string",
                                                    "example": "+218925667675"
                                                },
                                                "address": {
                                                    "type": "string",
                                                    "example": "Tripoli"
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "example": "Tripoli"
                                                },
                                                "country": {
                                                    "type": "string",
                                                    "example": "Libya"
                                                },
                                                "role_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "type_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "otp_verify": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "state_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Account is inactive, not verified, or belongs to another role.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "تم العثور على العميل، لكن الحساب غير مفعل أو لم يتم التحقق من رقم الهاتف."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Customer not found.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "لم يتم العثور على العميل."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "The phone number is already registered as a property owner.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "نأسف، هذا الرقم مسجل مسبقاً كصاحب عقار."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The phone field is required."
                                        },
                                        "errors": {
                                            "properties": {
                                                "phone": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "The phone field is required."
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/user/host-stats": {
            "get": {
                "tags": [
                    "المضيفين"
                ],
                "summary": "الحصول على إحصائيات المضيف",
                "description": "يحصل على رصيد المحفظة وعدد الحجوزات للمضيف. يجب أن يكون المستخدم مضيف (role_id = 5)",
                "operationId": "getHostStats",
                "responses": {
                    "200": {
                        "description": "تم الحصول على الإحصائيات بنجاح",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "تم الحصول على الإحصائيات بنجاح"
                                        },
                                        "data": {
                                            "properties": {
                                                "wallet_balance": {
                                                    "description": "رصيد المحفظة",
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 1500.5
                                                },
                                                "cash_earnings": {
                                                    "description": "أرباح الكاش من الحجوزات المكتملة",
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 2500.75
                                                },
                                                "wallet_earnings": {
                                                    "description": "أرباح المحفظة من الحجوزات المكتملة",
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 1800.25
                                                },
                                                "completed_bookings": {
                                                    "description": "عدد الحجوزات المكتملة (نوع 5)",
                                                    "type": "integer",
                                                    "example": 25
                                                },
                                                "confirm_bookings": {
                                                    "description": "عدد الحجوزات المؤكدة (نوع 4)",
                                                    "type": "integer",
                                                    "example": 18
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "غير مسموح - المستخدم ليس مضيف",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "غير مسموح - يجب أن تكون مضيف للوصول لهذه البيانات"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "غير مصرح - يجب تسجيل الدخول",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "يجب تسجيل الدخول للوصول لهذه البيانات"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/login": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Unified Login",
                "description": "Allows login for a property owner (TblUser) via phone number, or a staff member (Staff) via username. Detection is automatic: if username is digits only = TblUser, if it contains letters = Staff.",
                "operationId": "unifiedLogin",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "username",
                                    "password",
                                    "device_token",
                                    "device_name",
                                    "device_type"
                                ],
                                "properties": {
                                    "username": {
                                        "description": "Phone number (for TblUser) or text username (for Staff)",
                                        "type": "string",
                                        "example": "912345678"
                                    },
                                    "password": {
                                        "description": "Account password",
                                        "type": "string",
                                        "format": "password",
                                        "example": "secret123"
                                    },
                                    "country_code": {
                                        "description": "Country code — required only for TblUser phone login (default: 218)",
                                        "type": "string",
                                        "example": "218"
                                    },
                                    "role_id": {
                                        "description": "Role ID — required only for TblUser login (1=Admin, 2=User, 5=Owner)",
                                        "type": "integer",
                                        "example": 5
                                    },
                                    "device_token": {
                                        "description": "FCM device token",
                                        "type": "string",
                                        "example": "fcm_token_abc123"
                                    },
                                    "device_name": {
                                        "description": "Device platform: android / ios",
                                        "type": "string",
                                        "example": "android"
                                    },
                                    "device_type": {
                                        "description": "Device type as a numeric string",
                                        "type": "string",
                                        "example": "1"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تمت عملية الدخول بنجاح",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "state": {
                                            "description": "0=fully registered, 1=OTP not verified (TblUser only), 2=profile incomplete",
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "تمت عملية الدخول بنجاح"
                                        },
                                        "access_token": {
                                            "type": "string",
                                            "example": "abc123..."
                                        },
                                        "role": {
                                            "type": "string",
                                            "example": "CO-Admin"
                                        },
                                        "role_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "permissions": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "202": {
                        "description": "يتطلب التحقق من OTP أو الملف الشخصي غير مكتمل أو لم يتم تعيين كلمة مرور (TblUser فقط)"
                    },
                    "400": {
                        "description": "بيانات الإدخال غير صحيحة أو دور المستخدم غير متطابق"
                    },
                    "401": {
                        "description": "كلمة المرور غير صحيحة"
                    },
                    "403": {
                        "description": "الحساب موقوف. تواصل مع المسؤول (Staff فقط)"
                    },
                    "404": {
                        "description": "لم يتم العثور على الحساب (اسم المستخدم أو رقم الهاتف غير موجود)"
                    }
                }
            }
        },
        "/host/customers/send-otp": {
            "post": {
                "tags": [
                    "Host-Customers"
                ],
                "summary": "Send OTP to a new or unverified customer",
                "description": "Checks if the phone number is already registered. If not, creates a pending customer account and sends an OTP. If exists but not verified, resends OTP.",
                "operationId": "sendHostCustomerOtp",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "phone"
                                ],
                                "properties": {
                                    "phone": {
                                        "type": "string",
                                        "example": "911234567"
                                    },
                                    "country_code": {
                                        "type": "string",
                                        "default": "+218",
                                        "example": "+218"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Pending account created and OTP sent"
                    },
                    "200": {
                        "description": "OTP resent successfully"
                    },
                    "409": {
                        "description": "Phone number already registered as Host or active Customer"
                    },
                    "403": {
                        "description": "Phone number registered with other roles"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/customers/verify-otp": {
            "post": {
                "tags": [
                    "Host-Customers"
                ],
                "summary": "Verify OTP for customer",
                "description": "Verifies the OTP sent to the customer's phone number and returns the user ID upon success.",
                "operationId": "verifyHostCustomerOtp",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "phone",
                                    "otp"
                                ],
                                "properties": {
                                    "phone": {
                                        "type": "string",
                                        "example": "911234567"
                                    },
                                    "country_code": {
                                        "type": "string",
                                        "default": "+218",
                                        "example": "+218"
                                    },
                                    "otp": {
                                        "type": "integer",
                                        "example": 1234
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OTP verified successfully, returns user_id"
                    },
                    "400": {
                        "description": "Invalid OTP"
                    },
                    "404": {
                        "description": "Customer not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/host/customers/{id}/profile": {
            "post": {
                "tags": [
                    "Host-Customers"
                ],
                "summary": "Complete customer profile and send WhatsApp link",
                "description": "Updates the customer's profile details and sends a WhatsApp message with the Turista App download link. The customer must have their OTP verified first.",
                "operationId": "updateHostCustomerProfile",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "first_name",
                                    "last_name"
                                ],
                                "properties": {
                                    "first_name": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "john@example.com"
                                    },
                                    "gender": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "city": {
                                        "type": "string",
                                        "example": "Tripoli"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated and WhatsApp message sent"
                    },
                    "403": {
                        "description": "Customer OTP not verified yet"
                    },
                    "404": {
                        "description": "Customer not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/user_wallets/resorts/{user_id}": {
            "get": {
                "tags": [
                    "user wallets"
                ],
                "summary": "Get resort wallets for a specific user",
                "description": "Returns wallets related to resort bookings created by the user",
                "operationId": "getResortWalletsByUserId",
                "parameters": [
                    {
                        "name": "user_id",
                        "in": "path",
                        "description": "ID of the user",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "properties": {
                                                "wallets": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "تم جلب محافظ المنتجع بنجاح"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User not found"
                    }
                }
            }
        },
        "/vouchers": {
            "get": {
                "tags": [
                    "Vouchers"
                ],
                "summary": "عرض قائمة الكروت مع الفلترة",
                "operationId": "listVouchers",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "description": "حالة الكرت",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "package_id",
                        "in": "query",
                        "description": "ID الباقة",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "distributor_id",
                        "in": "query",
                        "description": "ID الموزع",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "code",
                        "in": "query",
                        "description": "كود الكرت",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "تاريخ من",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "تاريخ إلى",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "نجحت العملية"
                    },
                    "400": {
                        "description": "طلب غير صالح"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/vouchers/redeem": {
            "post": {
                "tags": [
                    "Vouchers"
                ],
                "summary": "شحن كرت باستخدام الكود",
                "operationId": "redeemVoucher",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "code"
                                ],
                                "properties": {
                                    "code": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تم شحن الكرت بنجاح"
                    },
                    "400": {
                        "description": "كود غير صحيح أو خطأ بالمعالجة"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/vouchers/{id}": {
            "get": {
                "tags": [
                    "Vouchers"
                ],
                "summary": "عرض بيانات كرت معين",
                "operationId": "getVoucherById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID الكرت",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "تم استرجاع البيانات"
                    },
                    "404": {
                        "description": "الكرت غير موجود"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/vouchers/by-code": {
            "post": {
                "tags": [
                    "Vouchers"
                ],
                "summary": "جلب كرت عن طريق الكود",
                "operationId": "getVoucherByCode",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "code"
                                ],
                                "properties": {
                                    "code": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "تم العثور على الكرت"
                    },
                    "404": {
                        "description": "كرت غير موجود بالكود"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/wallet/create": {
            "post": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Create a wallet for a user",
                "description": "USED BY YII2 ONLY Creates a default wallet for the given user ID, using role_id to determine the type (host, customer, or other).",
                "operationId": "c908628bc665301cf656f6f6da8f2980",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "user_id",
                                    "role_id"
                                ],
                                "properties": {
                                    "user_id": {
                                        "type": "integer",
                                        "example": 7
                                    },
                                    "role_id": {
                                        "type": "integer",
                                        "example": 5
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Wallet created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Wallet created successfully."
                                        },
                                        "wallet": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Main Wallet"
                                                },
                                                "slug": {
                                                    "type": "string",
                                                    "example": "default"
                                                },
                                                "balance": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 0
                                                },
                                                "meta": {
                                                    "properties": {
                                                        "type": {
                                                            "type": "string",
                                                            "example": "host"
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Wallet already exists"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/wallet/charge/LocalCard/payWithLocalCard": {
            "post": {
                "tags": [
                    "Wallet - Local Card"
                ],
                "summary": "Initiate payment with a local card",
                "description": "Generates a redirect URL to Plutu checkout page to pay with Libyan local bank cards",
                "operationId": "payWithLocalCard",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "user_id"
                                ],
                                "properties": {
                                    "amount": {
                                        "description": "Amount in LYD",
                                        "type": "number",
                                        "format": "float",
                                        "example": 25.5
                                    },
                                    "user_id": {
                                        "description": "User ID for tracking",
                                        "type": "integer",
                                        "example": 837
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Redirect URL returned",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "redirect_url": {
                                            "type": "string",
                                            "example": "https://plutu.ly/pay/abc123"
                                        },
                                        "invoice_no": {
                                            "type": "string",
                                            "example": "inv-20250430-153000-abc123"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Validation or API error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Invalid amount"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Unexpected server error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Unexpected error"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/wallet/pay-booking": {
            "post": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Customer pays booking (full, deposit or remaining)",
                "description": "Handles booking payment from customer's wallet by ID. Supports initial or remaining payments. Transfers money to host and deducts company commissions.",
                "operationId": "payBooking",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "booking_id",
                                    "amount",
                                    "host_id",
                                    "customer_id",
                                    "customer_fee",
                                    "host_fee"
                                ],
                                "properties": {
                                    "booking_id": {
                                        "type": "integer",
                                        "example": 123
                                    },
                                    "amount": {
                                        "description": "Total amount customer will pay",
                                        "type": "number",
                                        "example": 105
                                    },
                                    "customer_id": {
                                        "description": "ID of the paying customer",
                                        "type": "integer",
                                        "example": 44
                                    },
                                    "is_remaining": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "is_cash_payment": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "host_id": {
                                        "type": "integer",
                                        "example": 22
                                    },
                                    "customer_fee": {
                                        "type": "number",
                                        "example": 5
                                    },
                                    "host_fee": {
                                        "type": "number",
                                        "example": 10
                                    },
                                    "property_id": {
                                        "type": "integer",
                                        "example": 13
                                    },
                                    "property_type": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Booking payment processed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Booking payment processed successfully"
                                        },
                                        "booking_id": {
                                            "type": "integer",
                                            "example": 123
                                        },
                                        "total_paid": {
                                            "type": "number",
                                            "example": 105
                                        },
                                        "host_received": {
                                            "type": "number",
                                            "example": 90
                                        },
                                        "customer_fee": {
                                            "type": "number",
                                            "example": 5
                                        },
                                        "host_fee": {
                                            "type": "number",
                                            "example": 10
                                        },
                                        "host_net": {
                                            "type": "number",
                                            "example": 80
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Insufficient balance or validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "Insufficient wallet balance"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User or company or host not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "User not found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/wallet/balance": {
            "get": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Get wallet balance",
                "description": "This endpoint retrieves the balance of the authenticated user's wallet.",
                "operationId": "getWalletBalance",
                "responses": {
                    "200": {
                        "description": "Balance fetched successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "balance": {
                                            "type": "number",
                                            "example": 1000
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/wallet/transactions": {
            "get": {
                "tags": [
                    "Wallet"
                ],
                "summary": "List wallet transactions",
                "description": "This endpoint fetches a list of transactions for the authenticated user's wallet.",
                "operationId": "getWalletTransactions",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number for pagination",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transactions retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "type": {
                                                        "type": "string",
                                                        "example": "charge"
                                                    },
                                                    "amount": {
                                                        "type": "number",
                                                        "example": 100
                                                    },
                                                    "meta": {
                                                        "type": "object"
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "example": "2025-08-04 19:00:00"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": 5
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 10
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/wallet/cancel-booking": {
            "post": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Cancel a booking and apply refund logic",
                "description": "Handles booking cancellation by customer or host and applies refund and penalty logic.",
                "operationId": "cancelBooking",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "booking_id",
                                    "canceled_by"
                                ],
                                "properties": {
                                    "booking_id": {
                                        "type": "integer"
                                    },
                                    "canceled_by": {
                                        "type": "string",
                                        "enum": [
                                            "customer",
                                            "host"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Booking canceled successfully"
                    },
                    "404": {
                        "description": "Booking or user not found"
                    },
                    "400": {
                        "description": "Invalid request"
                    }
                }
            }
        },
        "/wallet/pay-remaining-fee": {
            "post": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Host pays remaining host and customer fees to company",
                "description": "Transfers the remaining host and customer fees from the host to Tourista wallet (company) as two separate transfers.",
                "operationId": "payRemainingFees",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "booking_id",
                                    "host_id",
                                    "host_fee",
                                    "customer_fee",
                                    "property_id",
                                    "property_type"
                                ],
                                "properties": {
                                    "booking_id": {
                                        "type": "integer",
                                        "example": 123
                                    },
                                    "host_id": {
                                        "type": "integer",
                                        "example": 22
                                    },
                                    "host_fee": {
                                        "description": "Remaining host fee to transfer",
                                        "type": "number",
                                        "example": 25.5
                                    },
                                    "customer_fee": {
                                        "description": "Remaining customer fee to transfer",
                                        "type": "number",
                                        "example": 10
                                    },
                                    "property_id": {
                                        "type": "integer",
                                        "example": 13
                                    },
                                    "property_type": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Remaining fees transferred successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "تم تحويل باقي العمولة بنجاح"
                                        },
                                        "booking_id": {
                                            "type": "integer",
                                            "example": 123
                                        },
                                        "host_id": {
                                            "type": "integer",
                                            "example": 22
                                        },
                                        "host_fee": {
                                            "type": "number",
                                            "example": 25.5
                                        },
                                        "customer_fee": {
                                            "type": "number",
                                            "example": 10
                                        },
                                        "property_id": {
                                            "type": "integer",
                                            "example": 13
                                        },
                                        "property_type": {
                                            "type": "integer",
                                            "example": 1
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/dashboard-settings": {
            "get": {
                "tags": [
                    "dashboard settings"
                ],
                "summary": "Get list of dashboard settings",
                "description": "Display a listing of the WebDashboardSetting.\nGET|HEAD /webDashboardSettings",
                "operationId": "getDashboardSettings",
                "parameters": [
                    {
                        "name": "skip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/dashboard-settings/store": {
            "post": {
                "tags": [
                    "dashboard settings"
                ],
                "summary": "Create a new dashboard settings",
                "description": "Store a newly created WebDashboardSetting in storage.\nPOST /webDashboardSettings",
                "operationId": "addDashboardSettings",
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "title",
                                    "main_logo",
                                    "title_logo",
                                    "fav_icon"
                                ],
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    },
                                    "main_logo": {
                                        "type": "file"
                                    },
                                    "title_logo": {
                                        "type": "file"
                                    },
                                    "fav_icon": {
                                        "type": "file"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error or login required"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/dashboard-settings/show/{id}": {
            "get": {
                "tags": [
                    "dashboard settings"
                ],
                "summary": "Get a dashboard settings details",
                "description": "Display the specified WebDashboardSetting.\nGET|HEAD /webDashboardSettings/{id}",
                "operationId": "getDashboardSetting",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the settings",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "settings not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/dashboard-settings/update/{id}": {
            "post": {
                "tags": [
                    "dashboard settings"
                ],
                "summary": "update a dashboard settings",
                "description": "Update the specified WebDashboardSetting in storage.\nPUT/PATCH /webDashboardSettings/{id}",
                "operationId": "updateDashboardSettings",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the settings",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "title",
                                    "main_logo",
                                    "title_logo",
                                    "fav_icon",
                                    "_method"
                                ],
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    },
                                    "main_logo": {
                                        "type": "file"
                                    },
                                    "title_logo": {
                                        "type": "file"
                                    },
                                    "fav_icon": {
                                        "type": "file"
                                    },
                                    "_method": {
                                        "description": "the value should be 'put'",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "403": {
                        "description": "Validation error or login required"
                    },
                    "200": {
                        "description": "successful operation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/dashboard-settings/delete/{id}": {
            "delete": {
                "tags": [
                    "dashboard settings"
                ],
                "summary": "Delete a dashboard settings",
                "description": "Remove the specified WebDashboardSetting from storage.\nDELETE /webDashboardSettings/{id}",
                "operationId": "deleteDashboardSettings",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the setting",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "successful operation"
                    },
                    "404": {
                        "description": "settings not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/whatsapp/update-whatsapp/{id}": {
            "patch": {
                "tags": [
                    "Customer-whatsapp"
                ],
                "summary": "Update customer's WhatsApp number",
                "description": "Update the WhatsApp number for a verified customer. The customer must be active, verified, and registered as a customer.",
                "operationId": "updateWhatsAppNumber",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The ID of the customer to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Provide WhatsApp number to update",
                    "required": true,
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "required": [
                                    "whatsapp_no"
                                ],
                                "properties": {
                                    "whatsapp_no": {
                                        "description": "The new WhatsApp number for the customer",
                                        "type": "string",
                                        "example": "282828"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "WhatsApp number updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "WhatsApp number updated successfully."
                                        },
                                        "details": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "full_name": {
                                                    "type": "string",
                                                    "example": "John Doe"
                                                },
                                                "whatsapp_number": {
                                                    "type": "string",
                                                    "example": "282828"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Customer not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Customer not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Unauthorized to update WhatsApp number",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "The user is not registered as a customer."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "properties": {
                                                "whatsapp_no": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "example": "The whatsapp_no field is required."
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "TblBooking": {
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "detail_id": {
                        "type": "integer",
                        "example": 10
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date",
                        "example": "2026-03-10"
                    },
                    "end_date": {
                        "type": "string",
                        "format": "date",
                        "example": "2026-03-13"
                    },
                    "start_time": {
                        "type": "string",
                        "format": "time",
                        "example": "14:00:00"
                    },
                    "end_time": {
                        "type": "string",
                        "format": "time",
                        "example": "12:00:00"
                    },
                    "no_of_guest": {
                        "type": "integer",
                        "example": 4
                    },
                    "state_id": {
                        "type": "integer",
                        "example": 1
                    },
                    "total_amount": {
                        "type": "number",
                        "format": "float",
                        "example": 600
                    },
                    "deposite_amount": {
                        "type": "number",
                        "format": "float",
                        "example": 200
                    },
                    "booking_source": {
                        "type": "string",
                        "example": "mobile"
                    },
                    "payment_type": {
                        "type": "string",
                        "example": "wallet"
                    }
                },
                "type": "object"
            },
            "Staff": {
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "first_name": {
                        "type": "string",
                        "example": "John"
                    },
                    "last_name": {
                        "type": "string",
                        "example": "Doe"
                    },
                    "username": {
                        "type": "string",
                        "example": "johndoe"
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "example": "john@example.com"
                    },
                    "phone_number": {
                        "type": "string",
                        "example": "+1234567890"
                    },
                    "country_code": {
                        "type": "string",
                        "example": "+1"
                    },
                    "role_id": {
                        "description": "Allowed values: 1 (CO-Admin), 2 (Booking), 3 (Finance)",
                        "type": "integer",
                        "example": 1
                    },
                    "is_active": {
                        "type": "boolean",
                        "example": true
                    },
                    "created_on": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_on": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "created_by_id": {
                        "type": "integer",
                        "example": 1
                    }
                },
                "type": "object"
            }
        },
        "securitySchemes": {
            "sanctum": {
                "type": "apiKey",
                "description": "Enter token in format (Bearer <token>)",
                "name": "Authorization",
                "in": "header"
            }
        }
    },
    "tags": [
        {
            "name": "Distributor Vouchers",
            "description": "واجهة برمجة التطبيقات للموزعين المعتمدين لعرض وبيع وتحديث الكروت"
        },
        {
            "name": "Home Settings",
            "description": "Manage featured properties on home page (default or per city)"
        },
        {
            "name": "Property",
            "description": "Property Management"
        },
        {
            "name": "Availability",
            "description": "Availability"
        },
        {
            "name": "Bookings",
            "description": "Bookings"
        },
        {
            "name": "chalets",
            "description": "chalets"
        },
        {
            "name": "Companies",
            "description": "Companies"
        },
        {
            "name": "EzonePay",
            "description": "EzonePay"
        },
        {
            "name": "Host Reviews",
            "description": "Host Reviews"
        },
        {
            "name": "Property Configurations",
            "description": "Property Configurations"
        },
        {
            "name": "permissions",
            "description": "permissions"
        },
        {
            "name": "Services",
            "description": "Services"
        },
        {
            "name": "resorts",
            "description": "resorts"
        },
        {
            "name": "resort-logo",
            "description": "resort-logo"
        },
        {
            "name": "reviews",
            "description": "reviews"
        },
        {
            "name": "roles",
            "description": "roles"
        },
        {
            "name": "settings",
            "description": "settings"
        },
        {
            "name": "Staff",
            "description": "Staff"
        },
        {
            "name": "statistics",
            "description": "statistics"
        },
        {
            "name": "Subscription",
            "description": "Subscription"
        },
        {
            "name": "booking resort",
            "description": "booking resort"
        },
        {
            "name": "chalet sizes",
            "description": "chalet sizes"
        },
        {
            "name": "cities",
            "description": "cities"
        },
        {
            "name": "host wallet invoices",
            "description": "host wallet invoices"
        },
        {
            "name": "Property Images",
            "description": "Property Images"
        },
        {
            "name": "properties",
            "description": "properties"
        },
        {
            "name": "transactions",
            "description": "transactions"
        },
        {
            "name": "Transactions",
            "description": "Transactions"
        },
        {
            "name": "zones",
            "description": "zones"
        },
        {
            "name": "Authentication",
            "description": "Authentication"
        },
        {
            "name": "auth payment type",
            "description": "auth payment type"
        },
        {
            "name": "auth transaction earning",
            "description": "auth transaction earning"
        },
        {
            "name": "auth transactions",
            "description": "auth transactions"
        },
        {
            "name": "Customers",
            "description": "Customers"
        },
        {
            "name": "المضيفين",
            "description": "المضيفين"
        },
        {
            "name": "Host-Customers",
            "description": "Host-Customers"
        },
        {
            "name": "user wallets",
            "description": "user wallets"
        },
        {
            "name": "Vouchers",
            "description": "Vouchers"
        },
        {
            "name": "Wallet",
            "description": "Wallet"
        },
        {
            "name": "Wallet - Local Card",
            "description": "Wallet - Local Card"
        },
        {
            "name": "dashboard settings",
            "description": "dashboard settings"
        },
        {
            "name": "Customer-whatsapp",
            "description": "Customer-whatsapp"
        }
    ],
    "security": [
        {
            "sanctum": []
        }
    ]
}