{
    "openapi": "3.0.0",
    "info": {
        "title": "Champion Spirit API",
        "description": "Champion Spirit Mobile API Documentation",
        "contact": {
            "name": "Ashwin Lutchmeenaraidoo",
            "email": "ashwin@infozen-consulting.com"
        },
        "license": {
            "name": "Champion Spirit",
            "url": "https://www.championspirit.com/"
        },
        "version": "1.2.10"
    },
    "paths": {
        "/v1/access/{id}/validate": {
            "get": {
                "tags": [
                    "Access Validation"
                ],
                "summary": "Validate access by booking or user public UUID",
                "operationId": "validateAccess",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Booking or user public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Validation result",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccessValidationResource"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/guest-passes/{id}/validate": {
            "get": {
                "tags": [
                    "Guest Passes"
                ],
                "summary": "Validate a guest pass",
                "operationId": "validateGuestPass",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Guest pass booking public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Validation result",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccessValidationResource"
                                }
                            }
                        }
                    }
                },
                "deprecated": true,
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/daypasses/{id}/validate": {
            "get": {
                "tags": [
                    "Daypasses"
                ],
                "summary": "Validate a daypass",
                "operationId": "validateDaypass",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Daypass booking public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Validation result",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccessValidationResource"
                                }
                            }
                        }
                    }
                },
                "deprecated": true,
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/members/{id}/validate": {
            "get": {
                "tags": [
                    "Member Validation"
                ],
                "summary": "Validate member/coach/employee access",
                "operationId": "validateMemberAccess",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "User public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Validation result",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccessValidationResource"
                                }
                            }
                        }
                    }
                },
                "deprecated": true,
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Show user account details",
                "description": "Returns details of the authenticated user's account.",
                "operationId": "showAccount",
                "responses": {
                    "200": {
                        "description": "User account details retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/UserResource"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Account"
                ],
                "summary": "Delete user account",
                "description": "Deletes the authenticated user's account.",
                "operationId": "deleteAccount",
                "responses": {
                    "204": {
                        "description": "User account deleted successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Forbidden"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "Account"
                ],
                "summary": "Update user account",
                "description": "Updates details of the authenticated user's account.",
                "operationId": "updateAccount",
                "requestBody": {
                    "description": "User account update details",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email",
                                    "phone",
                                    "avatar"
                                ],
                                "properties": {
                                    "firstname": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "push_notification": {
                                        "type": "boolean",
                                        "example": "false"
                                    },
                                    "chat_notification": {
                                        "type": "boolean",
                                        "example": "false"
                                    },
                                    "email_notification": {
                                        "type": "boolean",
                                        "example": "false"
                                    },
                                    "kids_zone": {
                                        "type": "boolean",
                                        "example": "false"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "1234567890"
                                    },
                                    "avatar": {
                                        "type": "string",
                                        "format": "binary",
                                        "example": "base64-encoded-image-data"
                                    },
                                    "place_id": {
                                        "type": "string",
                                        "example": "995ee780-9c27-4792-8ff5-8363361f5880"
                                    },
                                    "registered": {
                                        "type": "boolean",
                                        "example": "true"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "User account updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/UserResource"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account/favourites": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "List user favourites",
                "description": "Returns the authenticated user's favourite coaches and categories.",
                "operationId": "listFavourites",
                "responses": {
                    "200": {
                        "description": "Favourites retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "coaches": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Coach"
                                            }
                                        },
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Category"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account/guest-invitations": {
            "get": {
                "tags": [
                    "Account",
                    "Guest Invitations"
                ],
                "summary": "List guest invitations linked to the authenticated user",
                "operationId": "accountListGuestInvitations",
                "responses": {
                    "200": {
                        "description": "List of guest invitations",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/GuestInvitationResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account/notifications": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "List notifications for a user",
                "description": "Lists notifications for a user.",
                "operationId": "listNotifications",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Type of the notification to search: read, unread. No parameter returns all.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of notifications",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/NotificationResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/login": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "User login",
                "description": "Logs in a user with the provided credentials.",
                "operationId": "login",
                "requestBody": {
                    "description": "User login details",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password",
                                    "device_name"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "password123"
                                    },
                                    "device_name": {
                                        "type": "string",
                                        "example": "mobile_device"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "User logged in successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "token": {
                                            "type": "string",
                                            "example": "your_access_token"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Invalid credentials",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Invalid credentials."
                                        },
                                        "code": {
                                            "type": "string",
                                            "example": "BAD_LOGIN"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/logout": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "User logout",
                "description": "Logs out the authenticated user.",
                "operationId": "logout",
                "responses": {
                    "204": {
                        "description": "User logged out successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account/notifications/mark-read": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Mark all notifications as read for a user",
                "description": "Mark all notifications as read for a user.",
                "operationId": "markNotificationsAsRead",
                "responses": {
                    "200": {
                        "description": "Notifications marked as read",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Notifications marked as read."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/register": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "User registration",
                "description": "Registers a new user with the application.",
                "operationId": "register",
                "requestBody": {
                    "description": "User registration details",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email",
                                    "phone",
                                    "password",
                                    "password_confirmation",
                                    "device_name"
                                ],
                                "properties": {
                                    "firstname": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "lang": {
                                        "type": "string",
                                        "example": "en"
                                    },
                                    "place_id": {
                                        "type": "string",
                                        "example": "995edf32-64f1-4b59-addf-8684d8464d17"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "1234567890"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "password123"
                                    },
                                    "password_confirmation": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "password123"
                                    },
                                    "device_name": {
                                        "type": "string",
                                        "example": "mobile_device"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "User registered successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "token": {
                                            "type": "string",
                                            "example": "your_access_token"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User already exists."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/forgotten": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Request forgotten code",
                "description": "Requests a forgotten code to reset the password.",
                "operationId": "requestForgottenCode",
                "requestBody": {
                    "description": "User email",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Forgotten code requested successfully"
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/member-report-request": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Request member report",
                "description": "Requests a report for a member.",
                "operationId": "requestMemberReport",
                "responses": {
                    "204": {
                        "description": "Member Report requested successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/become-member": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Request membership callback",
                "description": "Requests a callback for membership.",
                "operationId": "requestMembershipCallback",
                "responses": {
                    "204": {
                        "description": "Membership callback requested successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/physical-assessment-request": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Request a physical assessment",
                "description": "Requests a physical assessment for a member.",
                "operationId": "requestPhysicalAssessment",
                "responses": {
                    "204": {
                        "description": "Member Physical Assessment requested successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account/profile": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Select active profile for the current access token",
                "description": "Allows the mobile app to pick which profile (customer, coach, or employee role) is active on the current token.",
                "operationId": "setProfile",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "profile"
                                ],
                                "properties": {
                                    "profile": {
                                        "type": "string",
                                        "example": "customer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated for token",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "profile": {
                                            "type": "string",
                                            "example": "coach"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Profile not allowed for user"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/social-login": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Social Login / Pre-Registration",
                "description": "Accepts a provider token and either logs in an existing user or starts registration for a new one.",
                "operationId": "socialLogin",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "external_id",
                                    "type",
                                    "external_token",
                                    "firstname",
                                    "lastname",
                                    "email",
                                    "device_name"
                                ],
                                "properties": {
                                    "external_id": {
                                        "type": "string",
                                        "example": "1234567890"
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "facebook",
                                            "instagram",
                                            "apple",
                                            "google",
                                            "linkedin"
                                        ]
                                    },
                                    "external_token": {
                                        "type": "string",
                                        "example": "ya29.a0Af…"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john.doe@example.com"
                                    },
                                    "lang": {
                                        "type": "string",
                                        "example": "en"
                                    },
                                    "device_name": {
                                        "type": "string",
                                        "example": "iOS–iPhone14"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Logged in or needs registration",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "token": {
                                            "type": "string",
                                            "example": "1|nLe4RmIkIhXz…"
                                        },
                                        "registration": {
                                            "type": "boolean",
                                            "example": false
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Invalid social login data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Invalid external token."
                                        },
                                        "code": {
                                            "type": "string",
                                            "example": "BAD_SOCIAL_LOGIN"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/account/favourites/categories/{category}": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Toggle a favourite category",
                "description": "Adds or removes the given category from the authenticated user's favourites.",
                "operationId": "toggleFavouriteCategory",
                "parameters": [
                    {
                        "name": "category",
                        "in": "path",
                        "description": "ID of the category to toggle",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Toggle operation successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "favourited": {
                                            "type": "boolean",
                                            "example": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Forbidden"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account/favourites/coaches/{coach}": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Toggle a favourite coach",
                "description": "Adds or removes the given coach from the authenticated user's favourites.",
                "operationId": "toggleFavouriteCoach",
                "parameters": [
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "ID of the coach to toggle",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Toggle operation successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "favourited": {
                                            "type": "boolean",
                                            "example": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Forbidden"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/account/password": {
            "patch": {
                "tags": [
                    "Account"
                ],
                "summary": "Update user password",
                "description": "Updates the password of the authenticated user's account.",
                "operationId": "updatePassword",
                "requestBody": {
                    "description": "User password update details",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "password",
                                    "device_name"
                                ],
                                "properties": {
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "new_password123"
                                    },
                                    "device_name": {
                                        "type": "string",
                                        "example": "mobile_device"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "User password updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "token": {
                                            "type": "string",
                                            "example": "your_access_token"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/forgotten/verify/{code}": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Verify forgotten code",
                "description": "Verifies the forgotten code for password reset and returns a token for resetting the password.",
                "operationId": "verifyForgottenCode",
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "description": "Forgotten code to verify",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "User email",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Forgotten code verified successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "token": {
                                            "type": "string",
                                            "example": "your_access_token"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Invalid or expired code."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/addresses": {
            "get": {
                "tags": [
                    "Address"
                ],
                "summary": "Search for addresses",
                "description": "Searches for addresses using the provided query.",
                "operationId": "searchAddress",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Addresses retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "address": {
                                                        "type": "string",
                                                        "example": "123 Main St, City, Country"
                                                    },
                                                    "latitude": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 12.345678
                                                    },
                                                    "longitude": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 23.456789
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/availabilities": {
            "get": {
                "tags": [
                    "Availability"
                ],
                "summary": "List coach availabilities",
                "description": "Lists future availabilities of the authenticated coach.",
                "operationId": "listAvailabilities",
                "responses": {
                    "200": {
                        "description": "Coach availabilities retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "date-time",
                                                "example": "2023-11-30T14:30:00Z"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Availability"
                ],
                "summary": "Sync coach availabilities",
                "description": "Syncs coach availabilities by adding and deleting selected availabilities.",
                "operationId": "syncAvailabilities",
                "requestBody": {
                    "description": "Availabilities to add and delete",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "to_add",
                                    "to_delete"
                                ],
                                "properties": {
                                    "to_add": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-11-30T14:30:00Z"
                                        }
                                    },
                                    "to_delete": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-11-30T14:30:00Z"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Coach availabilities synced successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/bookings/{booking}/cancel": {
            "delete": {
                "tags": [
                    "Booking"
                ],
                "summary": "Cancel attendee booking",
                "description": "Cancels the booking for the authenticated user as an attendee.",
                "operationId": "cancelAttendeeBooking",
                "parameters": [
                    {
                        "name": "booking",
                        "in": "path",
                        "description": "Booking ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Attendee booking canceled successfully"
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "You are not authorized to perform this action."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Booking not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/daypasses/active": {
            "get": {
                "tags": [
                    "Booking"
                ],
                "summary": "List active daypasses",
                "description": "Lists active and future daypasses for the authenticated user.",
                "operationId": "listActiveDaypasses",
                "responses": {
                    "200": {
                        "description": "Active daypasses retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "items": {
                                            "properties": {
                                                "place_id": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2023-11-30"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/guestpasses/active": {
            "get": {
                "tags": [
                    "Booking"
                ],
                "summary": "List active guest passes",
                "description": "Lists active and future guest passes for the authenticated user.",
                "operationId": "listActiveGuestPasses",
                "responses": {
                    "200": {
                        "description": "Active guest passes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "items": {
                                            "properties": {
                                                "place_id": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2023-11-30"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/bookings": {
            "get": {
                "tags": [
                    "Booking"
                ],
                "summary": "List user bookings",
                "description": "Lists user bookings with optional filtering for past and upcoming bookings.",
                "operationId": "listBookings",
                "parameters": [
                    {
                        "name": "next",
                        "in": "query",
                        "description": "Get the next upcoming booking",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "past",
                        "in": "query",
                        "description": "Get past bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "canceled",
                        "in": "query",
                        "description": "Get canceled bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "today",
                        "in": "query",
                        "description": "Get today's bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "future",
                        "in": "query",
                        "description": "Get bookings after today",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "Get guest bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "Get kids bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page to retrieve - default 1",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "integer"
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "description": "Number of records to retrieve - default 10",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User bookings retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CustomerBookingResource"
                                            }
                                        },
                                        "totalItems": {
                                            "type": "integer",
                                            "example": 42
                                        },
                                        "totalPages": {
                                            "type": "integer",
                                            "example": 5
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/bookings/{booking}": {
            "get": {
                "tags": [
                    "Booking"
                ],
                "summary": "Show booking details",
                "description": "Shows details of a specific booking for the authenticated user.",
                "operationId": "showBooking",
                "parameters": [
                    {
                        "name": "booking",
                        "in": "path",
                        "description": "Booking ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Booking details retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CustomerBookingResource"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "You are not authorized to perform this action."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Booking not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/broadcasting/auth": {
            "post": {
                "tags": [
                    "Broadcasting"
                ],
                "summary": "Authorize Pusher private channel subscription",
                "description": "Checks whether the authenticated API user may subscribe to a private broadcast channel (used by Laravel Echo / Pusher).",
                "operationId": "94c25230aafad57cdd58e0ee5a5e6ba4",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "channel_name",
                                    "socket_id"
                                ],
                                "properties": {
                                    "channel_name": {
                                        "description": "Name of the private channel to join, e.g. private-chat.{publicId}",
                                        "type": "string",
                                        "example": "private-chat.9ece10db-7e1e-405d-aa78-671dd934b0d3"
                                    },
                                    "socket_id": {
                                        "description": "Socket ID provided by Pusher client",
                                        "type": "string",
                                        "example": "1234.5678"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Authorized to join channel",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "auth": {
                                            "description": "Signed authentication token for Pusher",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized – the user must be authenticated"
                    },
                    "403": {
                        "description": "Forbidden – the user is not allowed to join this channel"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/categories": {
            "get": {
                "tags": [
                    "Category"
                ],
                "summary": "List categories",
                "description": "Lists top-level categories with their children.",
                "operationId": "listCategories",
                "responses": {
                    "200": {
                        "description": "Categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CategoryResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/ai/webhook": {
            "post": {
                "tags": [
                    "Chat"
                ],
                "summary": "Receive AI reply from micro-service",
                "operationId": "5bcb2980231f7607177f1b0107e120f2",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "session_id": {
                                        "type": "string"
                                    },
                                    "content": {
                                        "type": "string"
                                    },
                                    "message_public_id": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Accepted"
                    }
                }
            }
        },
        "/v1/chat/conversations": {
            "get": {
                "tags": [
                    "Chat"
                ],
                "summary": "List conversations for the authenticated user",
                "operationId": "a3f8ebe5205ff6821f1d909035b060a5",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Conversation"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Chat"
                ],
                "summary": "Create or fetch a 1-to-1 conversation",
                "operationId": "384e4b7ccdcbf142f283dffecf37dee3",
                "requestBody": {
                    "$ref": "#/components/requestBodies/StoreConversation"
                },
                "responses": {
                    "201": {
                        "description": "Created / existing",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Conversation"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/conversations/{public_id}": {
            "get": {
                "tags": [
                    "Chat"
                ],
                "summary": "Retrieve a single conversation",
                "operationId": "2fe445c77962ffcb52cf57ea8047708c",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Conversation"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Chat"
                ],
                "summary": "Soft-delete a conversation",
                "operationId": "19aa7d27578176587f239447af55bab7",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Deleted"
                    },
                    "404": {
                        "description": "Conversation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "Chat"
                ],
                "summary": "Update mute flag or AI flag on a conversation",
                "operationId": "ef10f47606cc1723edc67fff458206d1",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "is_muted": {
                                        "type": "boolean"
                                    },
                                    "enable_ai": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Conversation"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/conversations/{public_id}/typing": {
            "post": {
                "tags": [
                    "Chat"
                ],
                "summary": "Broadcast a typing indicator for a conversation",
                "description": "Notify other participants that the authenticated user has started or stopped typing.",
                "operationId": "dc58468ee63297e8e08ef74ee9977f54",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "description": "Public UUID of the conversation",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "typing": {
                                        "description": "`true` when the user is typing, `false` otherwise",
                                        "type": "boolean",
                                        "default": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "No Content — typing state broadcast successfully"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Conversation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/conversations/{public_id}/read": {
            "patch": {
                "tags": [
                    "Chat"
                ],
                "summary": "Mark all messages in a conversation as read",
                "operationId": "de3970356db85ddb16df62696d036b04",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "All messages marked read",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/conversations/{public_id}/deliver": {
            "patch": {
                "tags": [
                    "Chat"
                ],
                "summary": "Mark all messages in a conversation as delivered",
                "operationId": "04810286542db9d785a7efad6eeec049",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "All messages marked delivered",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/conversations/{public_id}/ai/enable": {
            "post": {
                "tags": [
                    "Chat"
                ],
                "summary": "Enable AI for a conversation",
                "operationId": "4337dd9782f8a4b012e3078cb7757e8b",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "AI enabled successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Conversation"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Conversation not found"
                    },
                    "422": {
                        "description": "AI cannot be enabled for this conversation"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/conversations/{public_id}/ai/disable": {
            "post": {
                "tags": [
                    "Chat"
                ],
                "summary": "Disable AI for a conversation",
                "operationId": "443165d3f584dfa7bff387ac0c5284d8",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "AI disabled successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Conversation"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Conversation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/list-contacts": {
            "get": {
                "tags": [
                    "Chat"
                ],
                "summary": "Lists Contacts for the Chat",
                "description": "Returns the list of contacts a user is allowed to chat with based on the authenticated user's role.",
                "operationId": "listContacts",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search query string (matches name/email; for coaches also their categories and places)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of contacts",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ContactResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/conversations/{conversation_id}/messages": {
            "get": {
                "tags": [
                    "Chat"
                ],
                "summary": "Paginated messages (newest → oldest)",
                "operationId": "775e8348dd7a9164fa501540c6eb6869",
                "parameters": [
                    {
                        "name": "conversation_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Message"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Chat"
                ],
                "summary": "Send a new chat message (text | gps)",
                "operationId": "828370fbf55345f48fce14d1b0b329c5",
                "parameters": [
                    {
                        "name": "conversation_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/StoreMessage"
                },
                "responses": {
                    "201": {
                        "description": "Created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Message"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/messages/{message_id}": {
            "get": {
                "tags": [
                    "Chat"
                ],
                "summary": "Get single message",
                "operationId": "7b22354c4272518d543861115a9a97c9",
                "parameters": [
                    {
                        "name": "message_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Message"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Chat"
                ],
                "summary": "Delete a single message",
                "operationId": "4535b4cd984b23ca224b5de7603367df",
                "parameters": [
                    {
                        "name": "message_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Message deleted"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/messages/{message_id}/receipts": {
            "patch": {
                "tags": [
                    "Chat"
                ],
                "summary": "Mark delivered / read",
                "operationId": "ba6241715eca5589e403a956f60df9e4",
                "parameters": [
                    {
                        "name": "message_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "delivered",
                                            "read"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "status": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chat/messages/{message_id}/attachments": {
            "post": {
                "tags": [
                    "Chat"
                ],
                "summary": "Upload an attachment or voice-note",
                "operationId": "080f469eb696d9b79c1853af31e2e6ee",
                "parameters": [
                    {
                        "name": "message_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/UploadAttachment"
                },
                "responses": {
                    "201": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Message"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/bookings/past": {
            "post": {
                "tags": [
                    "Coach",
                    "Booking"
                ],
                "summary": "Create a past booking for a customer",
                "description": "Allows coaches to record a personal or wellness session that already happened.",
                "operationId": "coachCreatePastBooking",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "bookable_type",
                                    "bookable_id",
                                    "customer_id",
                                    "place_id",
                                    "start_at",
                                    "end_at",
                                    "comments"
                                ],
                                "properties": {
                                    "bookable_type": {
                                        "type": "string",
                                        "enum": [
                                            "personal_course",
                                            "wellness_course"
                                        ]
                                    },
                                    "bookable_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "customer_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "place_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "start_at": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "end_at": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "comments": {
                                        "description": "Comments on the rebooking",
                                        "type": "string"
                                    },
                                    "force_busy": {
                                        "description": "Allow creation even if the attendee is marked busy",
                                        "type": "boolean"
                                    },
                                    "is_gift": {
                                        "description": "Coach chooses to not charge the customer",
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Booking created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CustomerBookingResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/customers/place/{place}": {
            "get": {
                "tags": [
                    "Coach",
                    "Customer"
                ],
                "summary": "List customers for the coach (single string filter across firstname, lastname, email)",
                "operationId": "coachListCustomers",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "str",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of customers",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/UserResource"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/planning/entries": {
            "get": {
                "tags": [
                    "Coach"
                ],
                "summary": "List coach planning entries",
                "description": "Lists planning entries for a coach including group courses, wellness courses, personal courses and events.",
                "operationId": "listPlanningEntries",
                "responses": {
                    "200": {
                        "description": "Coach planning entries retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CoachPlanningEntryResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/coaches/recommended": {
            "get": {
                "tags": [
                    "Coach"
                ],
                "summary": "List recommended coaches",
                "description": "Lists recommended coaches based on the number of bookings.",
                "operationId": "listRecommendedCoaches",
                "responses": {
                    "200": {
                        "description": "Recommended coaches retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CoachResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/bookings/attendance": {
            "post": {
                "tags": [
                    "Coach",
                    "Booking"
                ],
                "summary": "Bulk report attendance for group course bookings",
                "description": "A coach submits attendance (has_attended + optional comment) for multiple bookings identified by their public UUIDs.",
                "operationId": "reportAttendance",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "items"
                                ],
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "booking_id",
                                                "has_attended"
                                            ],
                                            "properties": {
                                                "booking_id": {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "example": "f7f2f9e0-5d02-4a1a-8756-1b0c9d0b9cbe"
                                                },
                                                "has_attended": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "comment": {
                                                    "type": "string",
                                                    "example": "Late arrival, stayed 45 minutes",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Attendance report saved"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/planning/mark-as-seen": {
            "post": {
                "tags": [
                    "Coach"
                ],
                "summary": "Mark bookings as seen",
                "description": "Marks a list of bookings as seen by the coach.",
                "operationId": "markAsSeen",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "bookings"
                                ],
                                "properties": {
                                    "bookings": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Bookings marked as seen successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/coaches/{coach}": {
            "get": {
                "tags": [
                    "Coach"
                ],
                "summary": "Show coach details",
                "description": "Displays details of a specific coach.",
                "operationId": "showCoach",
                "parameters": [
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Public ID of the coach",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Coach details retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CoachResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Coach not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Coach not found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/devices": {
            "post": {
                "tags": [
                    "Device"
                ],
                "summary": "Subscribe device for push notifications",
                "description": "Registers the Expo push notification token for the authenticated user.",
                "operationId": "subscribeDevice",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "expo_token"
                                ],
                                "properties": {
                                    "expo_token": {
                                        "description": "Expo push notification token",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Device subscribed successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Device"
                ],
                "summary": "Unsubscribe device from push notifications",
                "description": "Unregisters the Expo push notification token for the authenticated user.",
                "operationId": "unsubscribeDevice",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "expo_token"
                                ],
                                "properties": {
                                    "expo_token": {
                                        "description": "Expo push notification token",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Device unsubscribed successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/activities": {
            "get": {
                "tags": [
                    "Employee",
                    "Availabilities"
                ],
                "summary": "List activities for a place for a selected customer",
                "description": "Lists activities for a specific place. Includes information about the activity and its availability.",
                "operationId": "listActivitiesEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the activities are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the activities are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of activities",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ActivityResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/events": {
            "get": {
                "tags": [
                    "Employee",
                    "Availabilities"
                ],
                "summary": "List events for a place for a selected customer",
                "description": "Lists events for a specific place. Includes information about the category, parent category, coach, and booking count.",
                "operationId": "listEventsEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the events are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the events are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of events",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/EventResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/group-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Employee",
                    "Availabilities"
                ],
                "summary": "List group courses for a place for a selected customer",
                "description": "Lists group courses for a specific place. Includes information about the category, parent category, coach, and booking count.",
                "operationId": "listGroupCoursesEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the services are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the services are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of group courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/GroupCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/personal-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Employee",
                    "Availabilities"
                ],
                "summary": "List personal courses for a place for a selected customer",
                "description": "Lists personal courses for a specific place. Includes information about the coach, user, and booking count.",
                "operationId": "listPersonalCoursesEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the courses are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the courses are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of personal courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PersonalCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/services": {
            "get": {
                "tags": [
                    "Employee",
                    "Availabilities"
                ],
                "summary": "List services for a place for a selected customer",
                "description": "Lists services for a specific place. Includes information about the service and its availability.",
                "operationId": "listServicesEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the services are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the services are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Filter services by type",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "gym",
                                "co_working"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of services",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ServiceResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/wellness-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Employee",
                    "Availabilities"
                ],
                "summary": "List wellness courses for a place for a selected customer",
                "description": "Lists wellness courses for a specific place. Includes information about the coach, user, and booking count.",
                "operationId": "listWellnessCoursesEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the services are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the services are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of wellness courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/WellnessCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/daypasses/active": {
            "get": {
                "tags": [
                    "Employee",
                    "Booking"
                ],
                "summary": "List a customer's active daypasses",
                "description": "Lists active and future daypasses for a specific customer at the given place.",
                "operationId": "employeeListCustomerActiveDaypasses",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Active daypasses retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "items": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Customer not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/guestpasses/active": {
            "get": {
                "tags": [
                    "Employee",
                    "Booking"
                ],
                "summary": "List a customer's active guest passes",
                "description": "Lists active and future guest passes for a specific customer at the given place.",
                "operationId": "employeeListCustomerActiveGuestPasses",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Active guest passes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "items": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Customer not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/bookings/{booking}/rebooking-fees": {
            "post": {
                "tags": [
                    "Employee",
                    "Bookings"
                ],
                "summary": "Calculate rebooking fees for an existing booking",
                "description": "Given a booking and the payload for a future booking (same format as upsert order items), returns refundable amounts and the new payable fee in money and credits.",
                "operationId": "calculateRebookingFees",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "booking",
                        "in": "path",
                        "description": "Booking public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "items"
                                ],
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "orderable_type",
                                                "orderable_id"
                                            ],
                                            "properties": {
                                                "orderable_type": {
                                                    "type": "string",
                                                    "example": "personal_course"
                                                },
                                                "orderable_id": {
                                                    "type": "string",
                                                    "format": "uuid"
                                                },
                                                "metadata": {
                                                    "type": "object"
                                                },
                                                "is_guest": {
                                                    "type": "boolean"
                                                },
                                                "kid_id": {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Rebooking fee calculated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "booking_id": {
                                            "type": "string",
                                            "format": "uuid"
                                        },
                                        "currency": {
                                            "type": "string"
                                        },
                                        "previous_booking": {
                                            "properties": {
                                                "price": {
                                                    "properties": {
                                                        "money": {
                                                            "type": "number",
                                                            "format": "float"
                                                        },
                                                        "credits": {
                                                            "type": "number",
                                                            "format": "float"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "refundable": {
                                                    "type": "boolean"
                                                },
                                                "refundable_price": {
                                                    "properties": {
                                                        "money": {
                                                            "type": "number",
                                                            "format": "float"
                                                        },
                                                        "credits": {
                                                            "type": "number",
                                                            "format": "float"
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "new_booking": {
                                            "properties": {
                                                "price": {
                                                    "properties": {
                                                        "money": {
                                                            "type": "number",
                                                            "format": "float"
                                                        },
                                                        "credits": {
                                                            "type": "number",
                                                            "format": "float"
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "rebooking_fee": {
                                            "properties": {
                                                "money": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "credits": {
                                                    "type": "number",
                                                    "format": "float"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/bookings/{booking}/cancel": {
            "delete": {
                "tags": [
                    "Employee",
                    "Bookings"
                ],
                "summary": "Cancel attendee booking via Employee",
                "description": "Cancels the booking for the selected user as an attendee.",
                "operationId": "cancelAttendeeBookingEmployee",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "booking",
                        "in": "path",
                        "description": "Booking ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Attendee booking canceled successfully"
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "You are not authorized to perform this action."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Booking not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/bookings": {
            "get": {
                "tags": [
                    "Employee",
                    "Bookings"
                ],
                "summary": "List user bookings via Employee",
                "description": "Lists user bookings with optional filtering for past and upcoming bookings.",
                "operationId": "listBookingsEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "next",
                        "in": "query",
                        "description": "Get the next upcoming booking",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "past",
                        "in": "query",
                        "description": "Get past bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User bookings retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CustomerBookingResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/bookings": {
            "get": {
                "tags": [
                    "Employee",
                    "Bookings"
                ],
                "summary": "List user bookings per place via Employee",
                "description": "Lists user bookings with optional filtering for past and upcoming bookings.",
                "operationId": "listPlaceBookingsEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "next",
                        "in": "query",
                        "description": "Get the next upcoming booking",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "past",
                        "in": "query",
                        "description": "Get past bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Filter by bookable type (morph type code, e.g. personal_course, wellness_course, group_course, service, event, place)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User bookings retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CustomerBookingResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/bookings/{booking}": {
            "get": {
                "tags": [
                    "Employee",
                    "Bookings"
                ],
                "summary": "Show booking details",
                "description": "Shows details of a specific booking for a user.",
                "operationId": "showBookingEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "booking",
                        "in": "path",
                        "description": "Booking public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Booking details retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CustomerBookingResource"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "You are not authorized to perform this action."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Booking not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/dashboard": {
            "get": {
                "tags": [
                    "Employee",
                    "Dashboard"
                ],
                "summary": "Daily dashboard for coordinators",
                "operationId": "coordinatorDashboard",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dashboard data for the requested day"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/guests": {
            "get": {
                "tags": [
                    "Employee",
                    "Guest"
                ],
                "summary": "List a customer's guests on behalf of a coordinator",
                "description": "Returns the guest list for a specific customer at the given place.",
                "operationId": "employeeListCustomerGuests",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer guests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/GuestResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Customer not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Employee",
                    "Guest"
                ],
                "summary": "Create or update a guest for a customer on behalf of a coordinator",
                "description": "Creates or updates a guest linked to the specified customer at the given place.",
                "operationId": "employeeCreateCustomerGuest",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email"
                                ],
                                "properties": {
                                    "firstname": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "type": "string",
                                        "example": "Best Padel player"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Guest created/updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Guest created/updated successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Customer not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/guest-invitations/{invitation}": {
            "patch": {
                "tags": [
                    "Employee",
                    "Guest Invitations"
                ],
                "summary": "Cancel a guest invitation",
                "operationId": "employeeCancelGuestInvitation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "invitation",
                        "in": "path",
                        "description": "Guest invitation public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invitation cancelled"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/guest-invitations": {
            "get": {
                "tags": [
                    "Employee",
                    "Guest Invitations"
                ],
                "summary": "List guest invitations created by the employee for a place",
                "operationId": "employeeListGuestInvitations",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of guest invitations",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/GuestInvitationResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Employee",
                    "Guest Invitations"
                ],
                "summary": "Create and send a guest invitation",
                "operationId": "employeeCreateGuestInvitation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "type",
                                    "firstname",
                                    "lastname",
                                    "email",
                                    "start_at",
                                    "end_at"
                                ],
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "prospect",
                                            "member",
                                            "third_party",
                                            "other"
                                        ],
                                        "example": "prospect"
                                    },
                                    "company": {
                                        "type": "string",
                                        "example": "Acme Corp"
                                    },
                                    "reason": {
                                        "type": "string",
                                        "example": "Business meeting"
                                    },
                                    "scheduled_arrival_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2026-01-07T10:00:00Z"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "type": "string",
                                        "example": "VIP guest"
                                    },
                                    "start_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2026-01-07T09:00:00Z"
                                    },
                                    "end_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2026-01-08T23:00:00Z"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Guest invitation created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/GuestInvitationResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/extras": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Extras"
                ],
                "summary": "Add an extra charge to a reservation",
                "operationId": "hotelManagerAddReservationExtra",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "extra_id",
                                    "quantity"
                                ],
                                "properties": {
                                    "extra_id": {
                                        "type": "string"
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "room_id": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "notes": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Extra charge added"
                    },
                    "422": {
                        "description": "Reservation not checked in or validation error"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/rooms": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Reservations"
                ],
                "summary": "Assign rooms to reservation",
                "operationId": "hotelManagerAssignRooms",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "room_ids"
                                ],
                                "properties": {
                                    "room_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Rooms assigned"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/pay/cash": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Payments"
                ],
                "summary": "Pay reservation folio via cash",
                "description": "Processes a cash payment for the reservation folio. Requires amounts and a cash photo.",
                "operationId": "hotelManagerCashPayReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "amount_received",
                                    "amount_returned",
                                    "currency",
                                    "cash_photo"
                                ],
                                "properties": {
                                    "amount_received": {
                                        "type": "number"
                                    },
                                    "amount_returned": {
                                        "type": "number"
                                    },
                                    "currency": {
                                        "type": "string",
                                        "maxLength": 3
                                    },
                                    "cash_photo": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaymentDetailsResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No pending order found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/availability": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Availability"
                ],
                "summary": "Check room availability for date range",
                "operationId": "hotelManagerCheckAvailability",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "check_in",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "check_out",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "adults",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "children",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Availability per room type"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/checkout": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Check-in/out"
                ],
                "summary": "Check out a guest and generate folio",
                "description": "Checks out the guest, updates room statuses, generates housekeeping logs, and creates a folio Order with all charges.",
                "operationId": "hotelManagerCheckoutReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Checkout successful, folio generated"
                    },
                    "422": {
                        "description": "Reservation is not checked in"
                    },
                    "404": {
                        "description": "Reservation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Reservations"
                ],
                "summary": "List reservations with filters",
                "operationId": "hotelManagerListReservations",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "check_in_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "check_in_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "source",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservations list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Reservations"
                ],
                "summary": "Create reservation (walk-in / phone)",
                "operationId": "hotelManagerCreateReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "room_type_id",
                                    "check_in",
                                    "check_out",
                                    "adults"
                                ],
                                "properties": {
                                    "room_type_id": {
                                        "type": "string"
                                    },
                                    "check_in": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "check_out": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "adults": {
                                        "type": "integer"
                                    },
                                    "children": {
                                        "type": "integer"
                                    },
                                    "special_requests": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "customer_id": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "source": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Reservation created"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/pay/crypto": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Payments"
                ],
                "summary": "Pay reservation folio via crypto (NOWPayments)",
                "description": "Creates a NOWPayments invoice for the reservation folio.",
                "operationId": "hotelManagerCryptoPayReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Crypto payment created"
                    },
                    "404": {
                        "description": "No pending order found"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Payment provider error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/adr": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Average Daily Rate and RevPAR",
                "operationId": "hotelManagerDashboardADR",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "today",
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "ADR and RevPAR data"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/arrivals-departures": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Today's check-ins and check-outs list",
                "operationId": "hotelManagerArrivalsAndDepartures",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Arrivals and departures"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/channel-performance": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Revenue and bookings by source/channel",
                "operationId": "hotelManagerDashboardChannelPerformance",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "30d",
                            "enum": [
                                "today",
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Channel performance data"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/forecast": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Upcoming occupancy forecast",
                "operationId": "hotelManagerDashboardForecast",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 30
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Forecast data"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/live-occupancy": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Real-time room status overview by floor and type",
                "operationId": "hotelManagerLiveOccupancy",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Live occupancy data"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/occupancy": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Occupancy rate with trends",
                "operationId": "hotelManagerDashboardOccupancy",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "today",
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Occupancy data"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/revenue": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Revenue analytics with chart data",
                "operationId": "hotelManagerDashboardRevenue",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "today",
                                "7d",
                                "14d",
                                "30d",
                                "custom"
                            ]
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Revenue data"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/dashboard/today-summary": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Dashboard"
                ],
                "summary": "Today's occupancy, arrivals, departures, revenue",
                "operationId": "hotelManagerTodaySummary",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Today summary"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/invoice": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Invoices"
                ],
                "summary": "Get the invoice for a reservation order",
                "operationId": "hotelManagerGetReservationInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invoice details with PDF URL",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/InvoiceResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Invoice or paid order not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/housekeeping": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Housekeeping"
                ],
                "summary": "Housekeeping dashboard with room status summary",
                "operationId": "hotelManagerHousekeepingDashboard",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "floor",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "room_type_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "housekeeping_status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Housekeeping dashboard"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/channels/{channel}/logs": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Channel Manager"
                ],
                "summary": "Sync logs for a channel mapping",
                "operationId": "hotelManagerListChannelLogs",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "channel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 20
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Sync logs"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/channels": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Channel Manager"
                ],
                "summary": "List channel connections with sync status",
                "operationId": "hotelManagerListChannels",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of channel mappings"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/extras": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Extras"
                ],
                "summary": "List available extras for this hotel",
                "operationId": "hotelManagerListExtras",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of extras"
                    },
                    "404": {
                        "description": "Hotel not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/housekeeping/tasks": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Housekeeping"
                ],
                "summary": "Pending housekeeping tasks sorted by priority",
                "operationId": "hotelManagerListHousekeepingTasks",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Housekeeping tasks list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/rates": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Rates"
                ],
                "summary": "List all seasonal rates",
                "operationId": "hotelManagerListRates",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "room_type_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "season",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Seasonal rates list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/room-types/{roomType}/rates": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Rates"
                ],
                "summary": "List rates for a specific room type",
                "operationId": "hotelManagerListRoomTypeRates",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "roomType",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Room type rates list"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Room type not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/room-types": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Room Types"
                ],
                "summary": "List room types with availability summary",
                "operationId": "hotelManagerListRoomTypes",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Room types list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/rooms": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Rooms"
                ],
                "summary": "List all rooms with status and housekeeping",
                "operationId": "hotelManagerListRooms",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filter by room status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "housekeeping_status",
                        "in": "query",
                        "description": "Filter by housekeeping status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "room_type_id",
                        "in": "query",
                        "description": "Filter by room type public_id",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "floor",
                        "in": "query",
                        "description": "Filter by floor",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Rooms list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/pay/pos": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Payments"
                ],
                "summary": "Pay reservation folio via POS terminal",
                "description": "Processes a POS payment for the reservation folio. Requires a receipt photo.",
                "operationId": "hotelManagerPosPayReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "receipt_photo"
                                ],
                                "properties": {
                                    "receipt_photo": {
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "terminal_id": {
                                        "type": "string",
                                        "maxLength": 50
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaymentDetailsResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No pending order found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/extras/{reservationExtra}": {
            "delete": {
                "tags": [
                    "Hotel Manager",
                    "Extras"
                ],
                "summary": "Remove an extra charge from a reservation",
                "description": "Only unbilled extras (not yet included in an order) can be removed.",
                "operationId": "hotelManagerRemoveReservationExtra",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservationExtra",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Extra charge removed"
                    },
                    "422": {
                        "description": "Extra already billed"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/invoice/send": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Invoices"
                ],
                "summary": "Send the reservation invoice to the customer email (or an alternate email)",
                "operationId": "hotelManagerSendReservationInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Invoice sent"
                    },
                    "404": {
                        "description": "Paid order not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/cancellation-policy": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Reservations"
                ],
                "summary": "Get cancellation policy info for a reservation",
                "description": "Returns penalty amount, free cancellation deadline, and whether penalty can be waived.",
                "operationId": "hotelManagerShowCancellationPolicy",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Cancellation policy info"
                    },
                    "404": {
                        "description": "Reservation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/folio": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Reservations"
                ],
                "summary": "Get full folio (room charges + extras)",
                "operationId": "hotelManagerShowFolio",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Folio detail"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Reservation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Reservations"
                ],
                "summary": "Reservation detail with folio",
                "operationId": "hotelManagerShowReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservation detail"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Reservation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/rooms/{room}": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Rooms"
                ],
                "summary": "Get room detail with current occupant and history",
                "operationId": "hotelManagerShowRoom",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "room",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Room detail"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/room-types/{roomType}": {
            "get": {
                "tags": [
                    "Hotel Manager",
                    "Room Types"
                ],
                "summary": "Get room type detail with rooms and current rates",
                "operationId": "hotelManagerShowRoomType",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "roomType",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Room type detail"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/pay/stripe": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Payments"
                ],
                "summary": "Pay reservation folio via Stripe",
                "description": "Creates a Stripe Checkout session for the reservation folio.",
                "operationId": "hotelManagerStripePayReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Stripe session created"
                    },
                    "404": {
                        "description": "No pending order found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/channels/sync": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Channel Manager"
                ],
                "summary": "Trigger manual channel sync",
                "description": "Dispatches sync jobs for availability, rates, and reservation import.",
                "operationId": "hotelManagerTriggerChannelSync",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Sync jobs dispatched"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/rooms/{room}/housekeeping": {
            "patch": {
                "tags": [
                    "Hotel Manager",
                    "Housekeeping"
                ],
                "summary": "Update room housekeeping status",
                "operationId": "hotelManagerUpdateHousekeepingStatus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "room",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "type": "string"
                                    },
                                    "notes": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status updated"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Invalid transition"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/status": {
            "patch": {
                "tags": [
                    "Hotel Manager",
                    "Reservations"
                ],
                "summary": "Update reservation status",
                "operationId": "hotelManagerUpdateReservationStatus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "type": "string"
                                    },
                                    "reason": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status updated"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Invalid transition"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/rooms/{room}/status": {
            "patch": {
                "tags": [
                    "Hotel Manager",
                    "Rooms"
                ],
                "summary": "Update room status (maintenance, out-of-order, etc.)",
                "operationId": "hotelManagerUpdateRoomStatus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "room",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "type": "string",
                                        "example": "maintenance"
                                    },
                                    "notes": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Updated room"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/manage/reservations/{reservation}/pay/wallet": {
            "post": {
                "tags": [
                    "Hotel Manager",
                    "Payments"
                ],
                "summary": "Pay reservation folio via customer wallet",
                "operationId": "hotelManagerWalletPayReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payment successful"
                    },
                    "400": {
                        "description": "Insufficient wallet balance"
                    },
                    "404": {
                        "description": "No pending order found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/access-logs": {
            "get": {
                "tags": [
                    "Employee",
                    "Access"
                ],
                "summary": "List access logs for a place",
                "operationId": "employeeListAccessLogs",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "Start date (place timezone)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "End date (place timezone)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "arrived | left",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "user_public_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "guest_public_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "access_granted",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "is_guest_pass",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of access logs"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Employee",
                    "Access"
                ],
                "summary": "Tag arrival/leave in access logs",
                "operationId": "employeeTagAccessLog",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "arrived",
                                            "left"
                                        ]
                                    },
                                    "user_public_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "guest_public_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "firstname": {
                                        "type": "string"
                                    },
                                    "lastname": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "phone": {
                                        "type": "string"
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "id_number": {
                                        "type": "string"
                                    },
                                    "comments": {
                                        "type": "string"
                                    },
                                    "attachments": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Access log tagged",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "format": "uuid"
                                        },
                                        "status": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/current-members": {
            "get": {
                "tags": [
                    "Employee",
                    "Access"
                ],
                "summary": "List people currently present in the club",
                "description": "Returns all people whose latest access log for today has status 'arrived'. Intended for the security profile.",
                "operationId": "listCurrentMembers",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of people currently in the club",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PlaceAccessLogResource"
                                            }
                                        },
                                        "count": {
                                            "type": "integer",
                                            "example": 12
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customers": {
            "get": {
                "tags": [
                    "Employee",
                    "Customer"
                ],
                "summary": "List customers for a place (single string filter across firstname, lastname, email)",
                "operationId": "employeeListCustomers",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "str",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type[]",
                        "in": "query",
                        "description": "Filter by multiple types (member, non-member, guest, employee, coach)",
                        "required": false,
                        "style": "form",
                        "explode": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "enum": [
                                    "member",
                                    "non-member",
                                    "guest",
                                    "employee",
                                    "coach"
                                ]
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of people",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PersonListItemResource"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/bookings/daily": {
            "get": {
                "tags": [
                    "Employee",
                    "Booking"
                ],
                "summary": "List bookings for a given day (optionally filtered by type)",
                "operationId": "employeeListDailyBookings",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "YYYY-MM-DD (place timezone)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "2025-09-01"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "One of personal_course, group_course, event, activity, service, wellness_course",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of bookings",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/CustomerBookingResource"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/bookings/aggregate-by-user": {
            "get": {
                "tags": [
                    "Employee",
                    "Booking"
                ],
                "summary": "List bookings for a given day, grouped by user",
                "operationId": "employeeListDailyBookingsPerUser",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "YYYY-MM-DD (place timezone)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "2025-09-01"
                        }
                    },
                    {
                        "name": "user_id",
                        "in": "query",
                        "description": "Filter by attendee public UUID",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Array of { user, bookings[] }",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/UserBookingsGroupResource"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/services/usage/daily": {
            "get": {
                "tags": [
                    "Employee",
                    "Service"
                ],
                "summary": "List service usage for a given day (name + time slot only)",
                "operationId": "employeeListDailyServiceUsages",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "YYYY-MM-DD (place timezone)",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of service usage slots (no PII)",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ServiceUsageResource"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/employees": {
            "get": {
                "tags": [
                    "Employee",
                    "Employee"
                ],
                "summary": "List employees for a place (optional employee_type + name/email filters)",
                "operationId": "employeeListEmployees",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "employee_type",
                        "in": "query",
                        "description": "maintenance | coordinator | place_admin (alias of hospitality) | security | hospitality",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "str",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of employees (basic public fields)",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "properties": {
                                            "public_id": {
                                                "type": "string",
                                                "format": "uuid"
                                            },
                                            "firstname": {
                                                "type": "string"
                                            },
                                            "lastname": {
                                                "type": "string"
                                            },
                                            "email": {
                                                "type": "string"
                                            },
                                            "employee_type": {
                                                "type": "string"
                                            }
                                        },
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders/{order}/invoice": {
            "get": {
                "tags": [
                    "Employee",
                    "Invoices"
                ],
                "summary": "Get the invoice details and PDF URL for a customer order",
                "operationId": "employeeGetOrderInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invoice details with PDF URL",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/InvoiceResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Customer or order not found"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders/manual-billing-context": {
            "get": {
                "tags": [
                    "Employee",
                    "Orders"
                ],
                "summary": "Get manual billing context",
                "description": "Returns available departments for the place and the orderable payload to bill custom amounts.",
                "operationId": "getManualBillingContextEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Manual billing context retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "orderable_type": {
                                            "type": "string",
                                            "example": "manual_invoice_item"
                                        },
                                        "orderable_id": {
                                            "type": "string",
                                            "format": "uuid"
                                        },
                                        "departments": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "format": "uuid"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "HIGH ENERGY"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders": {
            "get": {
                "tags": [
                    "Employee",
                    "Orders"
                ],
                "summary": "List user orders by an Employee",
                "description": "Lists user orders with optional filtering for paid and pending bookings.",
                "operationId": "listOrdersEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "paid",
                        "in": "query",
                        "description": "Get the paid orders",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "pending",
                        "in": "query",
                        "description": "Get pending orders",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User orders retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/OrderResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders/{order}/nowpayments-payment": {
            "post": {
                "tags": [
                    "Employee",
                    "Orders"
                ],
                "summary": "Create a NOWPayments payment session for an order via Employee",
                "description": "Creates a NOWPayments payment request for a given order and returns the payment URL.",
                "operationId": "employeeCreateNowpaymentsPayment",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Order details for payment",
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Payment link created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "url": {
                                            "description": "NOWPayments payment URL",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/otp": {
            "post": {
                "tags": [
                    "Employee",
                    "Orders"
                ],
                "summary": "OTP Request Employee",
                "description": "Sends an OTP to an email.",
                "operationId": "otpRequestEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "User Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "OTP sent successfully. When the employee has bypass_otp=true, no notification is sent, otp is '000000', and bypass=true.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "otp": {
                                            "type": "string",
                                            "example": "843902"
                                        },
                                        "bypass": {
                                            "description": "True when OTP validation is bypassed for this employee",
                                            "type": "boolean",
                                            "example": false
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders/{order}/invoice/send": {
            "post": {
                "tags": [
                    "Employee",
                    "Invoices"
                ],
                "summary": "Send the invoice to the customer email (or an alternate email)",
                "operationId": "employeeSendOrderInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Invoice sent"
                    },
                    "404": {
                        "description": "Customer or order not found"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders/{order}/stripe-payment": {
            "post": {
                "tags": [
                    "Employee",
                    "Orders"
                ],
                "summary": "Create a Stripe payment session for an order via Employee",
                "description": "Creates a Stripe Checkout session for a given order and returns the URL for payment.",
                "operationId": "employeeCreateStripePayment",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Order details for payment",
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Payment session created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "url": {
                                            "description": "Stripe Checkout URL",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders/{order?}": {
            "put": {
                "tags": [
                    "Employee",
                    "Orders"
                ],
                "summary": "Create or update an order on behalf of a customer",
                "description": "Creates a new order or updates an existing one on behalf of a customer.",
                "operationId": "upsertOrderEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID (optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpsertOrderRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successfully created or updated order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OrderResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/orders/{order}/wallet-payment": {
            "post": {
                "tags": [
                    "Employee",
                    "Orders"
                ],
                "summary": "Pay an order using the user's wallet",
                "description": "Pays an order using the user's wallet.",
                "operationId": "walletPayOrderEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Order details for payment",
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Successfully paid order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order successfully paid with wallet."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The order cannot be paid with the wallet."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/products": {
            "get": {
                "tags": [
                    "Employee",
                    "Products"
                ],
                "summary": "List products for a place and a customer (paginated)",
                "description": "List products for a given place and user (paginated).",
                "operationId": "listPlaceProductsEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "description": "Category public UUID",
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "can_buy",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "can_rent",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search by name / description",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated includes. Allowed: variations",
                        "schema": {
                            "type": "string",
                            "example": "variations"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort by public_id,name,updated_at. Prefix with '-' for DESC.",
                        "schema": {
                            "type": "string",
                            "example": "-updated_at"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "example": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "maximum": 100,
                            "minimum": 1,
                            "example": 15
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated products list",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ProductResource"
                                            }
                                        },
                                        "links": {
                                            "properties": {
                                                "first": {
                                                    "type": "string",
                                                    "format": "uri"
                                                },
                                                "last": {
                                                    "type": "string",
                                                    "format": "uri"
                                                },
                                                "prev": {
                                                    "type": "string",
                                                    "format": "uri",
                                                    "nullable": true
                                                },
                                                "next": {
                                                    "type": "string",
                                                    "format": "uri",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "meta": {
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customer/{customer}/products/{public_id}": {
            "get": {
                "tags": [
                    "Employee",
                    "Products"
                ],
                "summary": "Get product by public_id for a specific customer",
                "description": "Get a single product by public_id.",
                "operationId": "getProductEmployee",
                "parameters": [
                    {
                        "name": "place_id",
                        "in": "path",
                        "description": "Place public id",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "prd_9QxA7K"
                        }
                    },
                    {
                        "name": "user_id",
                        "in": "path",
                        "description": "Customer public id",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "prd_9QxA7K"
                        }
                    },
                    {
                        "name": "public_id",
                        "in": "path",
                        "description": "Product public id",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "prd_9QxA7K"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated includes. Allowed: variations",
                        "schema": {
                            "type": "string",
                            "example": "variations"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/bookings/attendance": {
            "post": {
                "tags": [
                    "Employee",
                    "Booking"
                ],
                "summary": "Bulk report attendance for group course bookings",
                "description": "A coach submits attendance (has_attended + optional comment) for multiple bookings identified by their public UUIDs.",
                "operationId": "reportAttendanceEmployee",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "items"
                                ],
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "booking_id",
                                                "has_attended"
                                            ],
                                            "properties": {
                                                "booking_id": {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "example": "f7f2f9e0-5d02-4a1a-8756-1b0c9d0b9cbe"
                                                },
                                                "has_attended": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "comment": {
                                                    "type": "string",
                                                    "example": "Late arrival, stayed 45 minutes",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Attendance report saved"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/items": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Add a menu item to cart",
                "operationId": "restaurantManagerAddCartItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "menu_item_id"
                                ],
                                "properties": {
                                    "menu_item_id": {
                                        "type": "string"
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "default": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Item added, cart returned"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/tip": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Payments"
                ],
                "summary": "Add or update tip on a cart/order",
                "operationId": "restaurantManagerAddTip",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "currency"
                                ],
                                "properties": {
                                    "amount": {
                                        "type": "number"
                                    },
                                    "currency": {
                                        "type": "string",
                                        "maxLength": 3
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Tip added"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/tables": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Assign table(s) to a cart/order",
                "operationId": "restaurantManagerAssignCartTables",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "table_ids"
                                ],
                                "properties": {
                                    "table_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Tables assigned"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/reservations/{reservation}/tables": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Reservations"
                ],
                "summary": "Assign or replace table assignments for a reservation",
                "operationId": "restaurantManagerAssignReservationTables",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "table_ids"
                                ],
                                "properties": {
                                    "table_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Tables assigned"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/pay/cash": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via cash",
                "operationId": "restaurantManagerCashPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "amount_received",
                                    "amount_returned",
                                    "currency",
                                    "cash_photo"
                                ],
                                "properties": {
                                    "amount_received": {
                                        "type": "number"
                                    },
                                    "amount_returned": {
                                        "type": "number"
                                    },
                                    "currency": {
                                        "type": "string",
                                        "maxLength": 3
                                    },
                                    "cash_photo": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment successful"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/customer": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Change the customer on an existing cart",
                "operationId": "restaurantManagerChangeCartCustomer",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer_id"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Customer changed"
                    },
                    "422": {
                        "description": "Validation error or order already paid"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "List active carts for this restaurant manager",
                "operationId": "restaurantManagerListCarts",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of active carts"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Create a new cart for a customer (or walk-in)",
                "operationId": "restaurantManagerCreateCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "table_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Cart created"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/customers": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Customers"
                ],
                "summary": "Search customers by name, email, or phone",
                "operationId": "restaurantManagerSearchCustomers",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated customer list"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Customers"
                ],
                "summary": "Create a new customer on the spot",
                "operationId": "restaurantManagerCreateCustomer",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email"
                                ],
                                "properties": {
                                    "firstname": {
                                        "type": "string"
                                    },
                                    "lastname": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "phone": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Customer created"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/closures": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Closures"
                ],
                "summary": "List upcoming exceptional closures",
                "operationId": "restaurantManagerListClosures",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Closure list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Closures"
                ],
                "summary": "Create an exceptional closure",
                "operationId": "restaurantManagerCreateClosure",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "date"
                                ],
                                "properties": {
                                    "date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "reason": {
                                        "type": "string"
                                    },
                                    "full_day": {
                                        "type": "boolean"
                                    },
                                    "closed_from": {
                                        "type": "string"
                                    },
                                    "closed_to": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Closure created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menu-categories": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Categories"
                ],
                "summary": "List menu categories for a restaurant",
                "operationId": "restaurantManagerListMenuCategories",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Filter by type (food|drink)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "parent_id",
                        "in": "query",
                        "description": "Filter by parent category",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include_inactive",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated category list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Categories"
                ],
                "summary": "Create a menu category",
                "operationId": "restaurantManagerCreateMenuCategory",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "type"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "parent_id": {
                                        "type": "string"
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "food",
                                            "drink"
                                        ]
                                    },
                                    "sort_order": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Category created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menus": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Menus"
                ],
                "summary": "List menus with optional date and service period filter",
                "operationId": "restaurantManagerListMenus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "service_period",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include_inactive",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated menu list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Menus"
                ],
                "summary": "Create a menu with sections and items",
                "operationId": "restaurantManagerCreateMenu",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "date"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "service_periods": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "sections": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "name": {
                                                    "type": "string"
                                                },
                                                "items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "string"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Menu created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menu-items": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Items"
                ],
                "summary": "List menu items with search and filters",
                "operationId": "restaurantManagerListMenuItems",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "food|drink via category type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "allergen",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "dietary_label",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include_inactive",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "name|price|sort_order",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated item list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Items"
                ],
                "summary": "Create a menu item",
                "operationId": "restaurantManagerCreateMenuItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "name",
                                    "category_id",
                                    "money_price",
                                    "money_price_currency"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "category_id": {
                                        "type": "string"
                                    },
                                    "money_price": {
                                        "type": "number"
                                    },
                                    "money_price_currency": {
                                        "type": "string"
                                    },
                                    "allergens": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "dietary_labels": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "image": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Item created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/create-reservation": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Reservations"
                ],
                "summary": "Create a reservation (walk-in or manager)",
                "operationId": "restaurantManagerCreateReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer_id",
                                    "date",
                                    "start_at",
                                    "party_size"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "string"
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "start_at": {
                                        "type": "string"
                                    },
                                    "party_size": {
                                        "type": "integer"
                                    },
                                    "special_requests": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "table_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Reservation created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/tables": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Tables"
                ],
                "summary": "List tables with optional filters",
                "operationId": "restaurantManagerListTables",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "zone",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include_inactive",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Table list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Tables"
                ],
                "summary": "Create a table",
                "operationId": "restaurantManagerCreateTable",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "number",
                                    "seats",
                                    "zone"
                                ],
                                "properties": {
                                    "number": {
                                        "type": "integer"
                                    },
                                    "label": {
                                        "type": "string"
                                    },
                                    "seats": {
                                        "type": "integer"
                                    },
                                    "zone": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Table created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/pay/crypto": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via crypto (NOWPayments)",
                "operationId": "restaurantManagerCryptoPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Crypto payment created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "500": {
                        "description": "Payment provider error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/affluence": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get covers grouped by hour of day",
                "operationId": "restaurantDashboardAffluence",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Affluence data by hour"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/average-ticket": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get average ticket analytics with trends",
                "operationId": "restaurantDashboardAverageTicket",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Average ticket data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/covers": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get covers analytics per day with trends",
                "operationId": "restaurantDashboardCovers",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Covers data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/live-status": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get real-time table and operational status",
                "operationId": "restaurantDashboardLiveStatus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Live status data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/popular-items": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get best-selling menu items for the period",
                "operationId": "restaurantDashboardPopularItems",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "all",
                            "enum": [
                                "food",
                                "drink",
                                "all"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Popular items data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/reservation-stats": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get reservation statistics with rates",
                "operationId": "restaurantDashboardReservationStats",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservation stats data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/revenue": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get revenue analytics with chart data",
                "operationId": "restaurantDashboardRevenue",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "today",
                                "7d",
                                "14d",
                                "30d",
                                "custom"
                            ]
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Revenue data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/service-snapshot": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get metrics for current or specified service period",
                "operationId": "restaurantDashboardServiceSnapshot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "service_period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "breakfast",
                                "brunch",
                                "lunch",
                                "afternoon_tea",
                                "dinner",
                                "late_night"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Service snapshot data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/today-summary": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get today's revenue, covers, and reservation summary",
                "operationId": "restaurantDashboardTodaySummary",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Today summary data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/dashboard/upcoming-reservations": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Dashboard"
                ],
                "summary": "Get next N upcoming reservations for today",
                "operationId": "restaurantDashboardUpcomingReservations",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Upcoming reservations"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Get cart detail with all items",
                "operationId": "restaurantManagerShowCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Cart detail"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Replace all cart items",
                "operationId": "restaurantManagerUpdateCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "items"
                                ],
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Cart updated"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Delete a cart and free assigned tables",
                "operationId": "restaurantManagerDeleteCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Cart deleted"
                    },
                    "422": {
                        "description": "Cannot delete paid order"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/closures/{closure}": {
            "delete": {
                "tags": [
                    "Restaurant Manager",
                    "Closures"
                ],
                "summary": "Delete an exceptional closure",
                "operationId": "restaurantManagerDeleteClosure",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "closure",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Closure deleted"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menu-categories/{category}": {
            "put": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Categories"
                ],
                "summary": "Update a menu category",
                "operationId": "restaurantManagerUpdateMenuCategory",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "parent_id": {
                                        "type": "string"
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "food",
                                            "drink"
                                        ]
                                    },
                                    "sort_order": {
                                        "type": "integer"
                                    },
                                    "is_active": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Category updated"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Categories"
                ],
                "summary": "Delete a menu category",
                "operationId": "restaurantManagerDeleteMenuCategory",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Category deleted"
                    },
                    "409": {
                        "description": "Category has active items"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menus/{menu}": {
            "put": {
                "tags": [
                    "Restaurant Manager",
                    "Menus"
                ],
                "summary": "Update a menu (replaces sections entirely)",
                "operationId": "restaurantManagerUpdateMenu",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "menu",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "service_periods": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "sections": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Menu updated"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Restaurant Manager",
                    "Menus"
                ],
                "summary": "Delete a menu (soft delete)",
                "operationId": "restaurantManagerDeleteMenu",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "menu",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Menu deleted"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menu-items/{item}": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Items"
                ],
                "summary": "Show a menu item detail",
                "operationId": "restaurantManagerShowMenuItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Menu item detail"
                    },
                    "404": {
                        "description": "Not found"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Items"
                ],
                "summary": "Update a menu item",
                "operationId": "restaurantManagerUpdateMenuItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "category_id": {
                                        "type": "string"
                                    },
                                    "money_price": {
                                        "type": "number"
                                    },
                                    "image": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Item updated"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Items"
                ],
                "summary": "Delete a menu item (soft delete)",
                "operationId": "restaurantManagerDeleteMenuItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Item deleted"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/tables/{table}": {
            "put": {
                "tags": [
                    "Restaurant Manager",
                    "Tables"
                ],
                "summary": "Update a table",
                "operationId": "restaurantManagerUpdateTable",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "table",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "number": {
                                        "type": "integer"
                                    },
                                    "label": {
                                        "type": "string"
                                    },
                                    "seats": {
                                        "type": "integer"
                                    },
                                    "zone": {
                                        "type": "string"
                                    },
                                    "status": {
                                        "type": "string"
                                    },
                                    "is_active": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Table updated"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Restaurant Manager",
                    "Tables"
                ],
                "summary": "Delete a table",
                "operationId": "restaurantManagerDeleteTable",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "table",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Table deleted"
                    },
                    "409": {
                        "description": "Table has future reservations"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/orders/{order}/invoice": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Invoices"
                ],
                "summary": "Get the invoice details and PDF URL for an order",
                "operationId": "restaurantManagerGetInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invoice details with PDF URL"
                    },
                    "404": {
                        "description": "Invoice not found"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menus/{menu}/duplicate": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Menus"
                ],
                "summary": "Duplicate a menu with all sections and items to a new date",
                "operationId": "restaurantManagerDuplicateMenu",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "menu",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "date"
                                ],
                                "properties": {
                                    "date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "service_periods": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Menu duplicated"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/hours": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Hours"
                ],
                "summary": "Get restaurant opening hours, service periods, and exceptional closures",
                "operationId": "restaurantManagerGetHours",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Restaurant hours"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Restaurant Manager",
                    "Hours"
                ],
                "summary": "Update restaurant opening hours and service periods",
                "operationId": "restaurantManagerUpdateHours",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "opening_hours": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        }
                                    },
                                    "service_periods": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Hours updated"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/orders": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Orders"
                ],
                "summary": "List restaurant orders with filters",
                "operationId": "restaurantManagerListOrders",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated order list"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/reservations": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Reservations"
                ],
                "summary": "List reservations with filters",
                "operationId": "restaurantManagerListReservations",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "from_date",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to_date",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservation list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Customer",
                    "Reservations"
                ],
                "summary": "Create a reservation as a customer",
                "operationId": "customerCreateRestaurantReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "date",
                                    "start_at",
                                    "party_size"
                                ],
                                "properties": {
                                    "date": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "start_at": {
                                        "type": "string"
                                    },
                                    "party_size": {
                                        "type": "integer"
                                    },
                                    "special_requests": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Reservation created"
                    },
                    "422": {
                        "description": "Validation error or fully booked"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/pay/pos": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via POS terminal",
                "operationId": "restaurantManagerPosPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "receipt_photo"
                                ],
                                "properties": {
                                    "receipt_photo": {
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "terminal_id": {
                                        "type": "string",
                                        "maxLength": 50
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment successful"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/items/{item}": {
            "delete": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Remove an item from the cart",
                "operationId": "restaurantManagerRemoveCartItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Item removed, updated cart returned"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "Restaurant Manager",
                    "Carts"
                ],
                "summary": "Update item quantity in the cart",
                "operationId": "restaurantManagerUpdateCartItemQuantity",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "quantity"
                                ],
                                "properties": {
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 0
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Item updated, cart returned"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/orders/{order}/invoice/send": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Invoices"
                ],
                "summary": "Send the invoice to the customer email (or an alternate email)",
                "operationId": "restaurantManagerSendInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Invoice sent"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/orders/{order}": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Orders"
                ],
                "summary": "Get full order detail",
                "operationId": "restaurantManagerShowOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Order detail"
                    },
                    "404": {
                        "description": "Order not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/reservations/{reservation}": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Reservations"
                ],
                "summary": "Show reservation detail",
                "operationId": "restaurantManagerShowReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservation detail"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Customer",
                    "Reservations"
                ],
                "summary": "Cancel a reservation",
                "operationId": "customerCancelRestaurantReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Reservation cancelled"
                    },
                    "403": {
                        "description": "Forbidden — not own reservation or cannot cancel"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/pay/stripe": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via Stripe",
                "operationId": "restaurantManagerStripePayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Stripe session created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/tables/status": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Tables"
                ],
                "summary": "Get all tables with live status and current reservation info",
                "operationId": "restaurantManagerTablesStatus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tables with live status"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/today-menu": {
            "get": {
                "tags": [
                    "Restaurant Manager",
                    "Menus"
                ],
                "summary": "Get today's active menu (optionally for a specific service period)",
                "operationId": "restaurantManagerTodayMenu",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "service_period",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Today's menu"
                    },
                    "404": {
                        "description": "No menu found for today"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menu-items/{item}/toggle": {
            "patch": {
                "tags": [
                    "Restaurant Manager",
                    "Menu Items"
                ],
                "summary": "Toggle menu item active/inactive",
                "operationId": "restaurantManagerToggleMenuItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Item toggled"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/reservations/{reservation}/status": {
            "patch": {
                "tags": [
                    "Restaurant Manager",
                    "Reservations"
                ],
                "summary": "Update reservation status",
                "operationId": "restaurantManagerUpdateReservationStatus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "type": "string"
                                    },
                                    "cancellation_reason": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status updated"
                    },
                    "422": {
                        "description": "Invalid transition"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/tables/{table}/status": {
            "patch": {
                "tags": [
                    "Restaurant Manager",
                    "Tables"
                ],
                "summary": "Update table status",
                "operationId": "restaurantManagerUpdateTableStatus",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "table",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "available",
                                            "occupied",
                                            "reserved",
                                            "maintenance"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status updated"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/carts/{order}/pay/wallet": {
            "post": {
                "tags": [
                    "Restaurant Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via customer wallet",
                "operationId": "restaurantManagerWalletPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payment successful"
                    },
                    "400": {
                        "description": "Insufficient wallet balance"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/items": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Add a product to cart (by ID or barcode)",
                "operationId": "shopManagerAddCartItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "product_id": {
                                        "type": "string"
                                    },
                                    "variation_id": {
                                        "type": "integer"
                                    },
                                    "barcode": {
                                        "type": "string"
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "default": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Item added, cart returned"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/products/{product}/stock": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Products",
                    "Inventory"
                ],
                "summary": "Adjust stock for a product variation (refill, correction, return, damaged)",
                "operationId": "shopManagerAdjustStock",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "product",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "variation_id",
                                    "type",
                                    "quantity"
                                ],
                                "properties": {
                                    "variation_id": {
                                        "type": "integer"
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "refill",
                                            "correction",
                                            "return",
                                            "damaged"
                                        ]
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "note": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Stock adjusted successfully"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Product not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/pay/cash": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via cash",
                "description": "Processes a cash payment for a vendor cart. Requires amounts and a cash photo.",
                "operationId": "shopManagerCashPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "amount_received",
                                    "amount_returned",
                                    "currency",
                                    "cash_photo"
                                ],
                                "properties": {
                                    "amount_received": {
                                        "type": "number"
                                    },
                                    "amount_returned": {
                                        "type": "number"
                                    },
                                    "currency": {
                                        "type": "string",
                                        "maxLength": 3
                                    },
                                    "cash_photo": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaymentDetailsResource"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/customer": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Change the customer on an existing cart",
                "operationId": "shopManagerChangeCartCustomer",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer_id"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Customer changed"
                    },
                    "422": {
                        "description": "Validation error or order already paid"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "List active carts for this employee at this place",
                "operationId": "shopManagerListCarts",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of active carts"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Create a new cart for a customer",
                "operationId": "shopManagerCreateCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer_id"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Cart created"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/customers": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Customers"
                ],
                "summary": "Search customers by name, email, or phone",
                "operationId": "shopManagerSearchCustomers",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated customer list"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Shop Manager",
                    "Customers"
                ],
                "summary": "Create a new customer on the spot",
                "operationId": "shopManagerCreateCustomer",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email"
                                ],
                                "properties": {
                                    "firstname": {
                                        "type": "string"
                                    },
                                    "lastname": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "phone": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Customer created"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/pay/crypto": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via crypto (NOWPayments)",
                "description": "Creates a NOWPayments invoice for the cart and returns the payment URL.",
                "operationId": "shopManagerCryptoPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Crypto payment created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "url": {
                                            "description": "NOWPayments payment URL",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "500": {
                        "description": "Payment provider error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/dashboard/best-sellers": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Dashboard"
                ],
                "summary": "Get best-selling products for the period",
                "operationId": "shopManagerDashboardBestSellers",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Best-seller data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/dashboard/checkout-snapshot": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Dashboard"
                ],
                "summary": "Get checkout, basket, and risk snapshot",
                "operationId": "shopManagerDashboardCheckoutSnapshot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Checkout snapshot data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/dashboard/inventory-alerts": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Dashboard"
                ],
                "summary": "Get low-stock and out-of-stock product alerts",
                "operationId": "shopManagerInventoryAlerts",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Inventory alerts"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/dashboard/recent-activity": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Dashboard"
                ],
                "summary": "Get recent activity feed (sales, stock changes)",
                "operationId": "shopManagerDashboardRecentActivity",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Recent activity feed"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/dashboard/revenue": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Dashboard"
                ],
                "summary": "Get revenue analytics with chart data",
                "operationId": "shopManagerDashboardRevenue",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "today",
                                "7d",
                                "30d",
                                "custom"
                            ]
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Revenue data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/dashboard/sales-performance": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Dashboard"
                ],
                "summary": "Get sales performance grouped by day of week",
                "operationId": "shopManagerDashboardSalesPerformance",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "7d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    },
                    {
                        "name": "metric",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "revenue",
                            "enum": [
                                "revenue",
                                "orders",
                                "basket"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Sales performance data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/dashboard/top-categories": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Dashboard"
                ],
                "summary": "Get top product categories by sales percentage",
                "operationId": "shopManagerDashboardTopCategories",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "30d",
                            "enum": [
                                "7d",
                                "14d",
                                "30d"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Top categories data"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Get cart detail with all items",
                "operationId": "shopManagerShowCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Cart detail"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Replace all cart items",
                "operationId": "shopManagerUpdateCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "items"
                                ],
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Cart updated"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Delete a cart (only WAITING_PAYMENT)",
                "operationId": "shopManagerDeleteCart",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Cart deleted"
                    },
                    "422": {
                        "description": "Cannot delete paid order"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/orders/{order}/invoice": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Invoices"
                ],
                "summary": "Get the invoice details and PDF URL for an order",
                "operationId": "shopManagerGetInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invoice details with PDF URL",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/InvoiceResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Invoice not found"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/products/{product}/variations/{variation}/barcode": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Products"
                ],
                "summary": "Generate or retrieve the barcode image for a product variation",
                "operationId": "shopManagerGenerateVariationBarcode",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "product",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "variation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Barcode details",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "barcode": {
                                            "type": "string"
                                        },
                                        "barcode_image_url": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Variation not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/orders": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Orders"
                ],
                "summary": "List vendor orders with filters (date, customer, type, status)",
                "operationId": "shopManagerListOrders",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "description": "all|today|7d|30d",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer_id",
                        "in": "query",
                        "description": "Customer public_id",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Order type filter (product, service, etc.)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "all|paid|pending",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated order list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/products": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Products"
                ],
                "summary": "List products for a place (vendor context)",
                "operationId": "shopManagerListProducts",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search by name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "description": "Filter by category public_id",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include_inactive",
                        "in": "query",
                        "description": "Include inactive products",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort: name, -name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated product list"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/products/barcode/{code}": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Products"
                ],
                "summary": "Lookup a product by barcode within a place",
                "operationId": "shopManagerLookupBarcode",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "code",
                        "in": "path",
                        "description": "Barcode string",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/VendorProductResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Barcode not found"
                    },
                    "422": {
                        "description": "Invalid barcode"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/ping": {
            "get": {
                "tags": [
                    "Shop Manager"
                ],
                "summary": "Shop Manager health check",
                "operationId": "d46276cd0dedffe25ac3ff492b9d231c",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Authenticated shop manager"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Place not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/pay/pos": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via POS terminal",
                "description": "Processes a POS payment for a vendor cart. Requires a receipt photo.",
                "operationId": "shopManagerPosPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "receipt_photo"
                                ],
                                "properties": {
                                    "receipt_photo": {
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "terminal_id": {
                                        "type": "string",
                                        "maxLength": 50
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaymentDetailsResource"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/items/{item}": {
            "delete": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Remove an item from the cart",
                "operationId": "shopManagerRemoveCartItem",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Item removed, updated cart returned"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "Shop Manager",
                    "Carts"
                ],
                "summary": "Update item quantity in the cart",
                "operationId": "shopManagerUpdateCartItemQuantity",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "item",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "quantity"
                                ],
                                "properties": {
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 0
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Item updated, cart returned"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/orders/{order}/invoice/send": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Invoices"
                ],
                "summary": "Send the invoice to the customer email (or an alternate email)",
                "operationId": "shopManagerSendInvoice",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Invoice sent"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/orders/{order}": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Orders"
                ],
                "summary": "Get full order detail for a vendor order",
                "operationId": "shopManagerShowOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Order detail"
                    },
                    "403": {
                        "description": "Forbidden — not your order"
                    },
                    "404": {
                        "description": "Order not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/products/{product}": {
            "get": {
                "tags": [
                    "Shop Manager",
                    "Products"
                ],
                "summary": "Get product detail with sales stats (vendor context)",
                "operationId": "shopManagerShowProduct",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "product",
                        "in": "path",
                        "description": "Product public_id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product detail",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/VendorProductDetailResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/pay/stripe": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via Stripe",
                "description": "Creates a Stripe Checkout session for the cart and returns the payment URL.",
                "operationId": "shopManagerStripePayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Stripe session created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "url": {
                                            "description": "Stripe Checkout URL",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/products/{product}/toggle": {
            "patch": {
                "tags": [
                    "Shop Manager",
                    "Products"
                ],
                "summary": "Toggle product active/inactive status",
                "operationId": "shopManagerToggleProductActive",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "product",
                        "in": "path",
                        "description": "Product public_id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated product",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/VendorProductResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Product not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/shop/carts/{order}/pay/wallet": {
            "post": {
                "tags": [
                    "Shop Manager",
                    "Payments"
                ],
                "summary": "Pay a cart via customer wallet",
                "description": "Deducts from the customer's wallet to pay for the cart.",
                "operationId": "shopManagerWalletPayOrder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payment successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order successfully paid with wallet."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Insufficient wallet balance"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/customers/{user}": {
            "get": {
                "tags": [
                    "Employee",
                    "Customer"
                ],
                "summary": "Show details of a user",
                "operationId": "employeeShowCustomer",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "user",
                        "in": "path",
                        "description": "User public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User details retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "You are not authorized to perform this action."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/tasks": {
            "get": {
                "tags": [
                    "Employee",
                    "Task"
                ],
                "summary": "List tasks (filters: creator user, assignee user, service, text in comments)",
                "operationId": "employeeListTasks",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "user_id",
                        "in": "query",
                        "description": "Creator user public UUID",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "assignee_id",
                        "in": "query",
                        "description": "Assignee user public UUID",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "service_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search term in comments",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "maximum": 100,
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated tasks",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/TaskResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Employee",
                    "Task"
                ],
                "summary": "Create a maintenance task (by coordinator or place admin)",
                "operationId": "employeeCreateTask",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "service_id",
                                    "start_at",
                                    "assignee_user_ids[]"
                                ],
                                "properties": {
                                    "service_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "start_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2025-09-01T09:00:00"
                                    },
                                    "comment": {
                                        "type": "string"
                                    },
                                    "status": {
                                        "type": "string"
                                    },
                                    "assignee_user_ids[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "uuid"
                                        }
                                    },
                                    "media[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Task created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TaskResource"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/tasks/{task}": {
            "patch": {
                "tags": [
                    "Employee",
                    "Task"
                ],
                "summary": "Update a maintenance task (by coordinator or place admin)",
                "operationId": "employeeUpdateTask",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "task",
                        "in": "path",
                        "description": "Task public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "service_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "start_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2025-09-01T10:30:00"
                                    },
                                    "status": {
                                        "type": "string"
                                    },
                                    "comment": {
                                        "type": "string"
                                    },
                                    "assignee_user_ids[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "uuid"
                                        }
                                    },
                                    "media[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    },
                                    "remove_media_ids[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "uuid"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TaskResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Task not found"
                    },
                    "422": {
                        "description": "Validation / resolution error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/access-logs/{accessLog}": {
            "post": {
                "tags": [
                    "Employee",
                    "Access"
                ],
                "summary": "Update an access log (comments and attachments)",
                "operationId": "employeeUpdateAccessLog",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "accessLog",
                        "in": "path",
                        "description": "Access log UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "comments": {
                                        "type": "string",
                                        "maxLength": 500
                                    },
                                    "attachments[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Access log updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PlaceAccessLogResource"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/guests": {
            "get": {
                "tags": [
                    "Guest"
                ],
                "summary": "List user guests",
                "description": "Lists user guests",
                "operationId": "listGuests",
                "responses": {
                    "200": {
                        "description": "User guests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/GuestResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Guest"
                ],
                "summary": "Create or update a user guest",
                "description": "Create or update user guest",
                "operationId": "createUpdateGuest",
                "requestBody": {
                    "description": "Message payload : Firstname, Lastname, Email, Phone (optional), Comments (optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email"
                                ],
                                "properties": {
                                    "firstname": {
                                        "description": "Guest Firstname",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "description": "Guest Lastname",
                                        "type": "string",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "description": "Guest Email",
                                        "type": "string",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "description": "Guest Phone",
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "description": "Guest comments",
                                        "type": "string",
                                        "example": "Best Padel player"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Guest Created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Guest Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/guests/{guest}": {
            "delete": {
                "tags": [
                    "Guest"
                ],
                "summary": "Delete user guest",
                "description": "Delete user guest",
                "operationId": "deleteGuest",
                "responses": {
                    "200": {
                        "description": "Guest Deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Guest Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/reservations/{reservation}": {
            "get": {
                "tags": [
                    "Hotel",
                    "Reservations"
                ],
                "summary": "Show my reservation detail",
                "operationId": "customerShowMyReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservation detail"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Hotel",
                    "Reservations"
                ],
                "summary": "Cancel my reservation",
                "operationId": "customerCancelHotelReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservation cancelled"
                    },
                    "403": {
                        "description": "Cannot cancel"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/availability": {
            "get": {
                "tags": [
                    "Hotel",
                    "Availability"
                ],
                "summary": "Check room availability for dates and guests",
                "operationId": "customerCheckHotelAvailability",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "check_in",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "check_out",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "adults",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "children",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Available room types with pricing"
                    },
                    "404": {
                        "description": "Hotel not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/reservations": {
            "post": {
                "tags": [
                    "Hotel",
                    "Reservations"
                ],
                "summary": "Create reservation as customer",
                "operationId": "customerCreateHotelReservation",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "room_type_id",
                                    "check_in",
                                    "check_out",
                                    "adults"
                                ],
                                "properties": {
                                    "room_type_id": {
                                        "type": "string"
                                    },
                                    "check_in": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "check_out": {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    "adults": {
                                        "type": "integer"
                                    },
                                    "children": {
                                        "type": "integer"
                                    },
                                    "special_requests": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Reservation created"
                    },
                    "422": {
                        "description": "Validation error or no availability"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/extras": {
            "get": {
                "tags": [
                    "Hotel",
                    "Customer"
                ],
                "summary": "List available extras for a hotel (customer)",
                "operationId": "customerListHotelExtras",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of active extras"
                    },
                    "404": {
                        "description": "Hotel not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}/room-types": {
            "get": {
                "tags": [
                    "Customer",
                    "Hotels"
                ],
                "summary": "List active room types with photos, amenities, and pricing",
                "operationId": "customerListHotelRoomTypes",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Room types list"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels": {
            "get": {
                "tags": [
                    "Customer",
                    "Hotels"
                ],
                "summary": "List active hotels for a place",
                "operationId": "customerListHotels",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Hotel list"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/reservations": {
            "get": {
                "tags": [
                    "Hotel",
                    "Reservations"
                ],
                "summary": "List my hotel reservations",
                "operationId": "customerListMyHotelReservations",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "upcoming",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "My reservations"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/hotels/{hotel}": {
            "get": {
                "tags": [
                    "Customer",
                    "Hotels"
                ],
                "summary": "Show hotel detail",
                "operationId": "customerShowHotel",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "hotel",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Hotel detail"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/kids": {
            "get": {
                "tags": [
                    "Kid"
                ],
                "summary": "List user kids",
                "description": "Lists user kids",
                "operationId": "listKids",
                "responses": {
                    "200": {
                        "description": "User kids retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/KidResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Kid"
                ],
                "summary": "Create a user kid",
                "description": "Create user kid",
                "operationId": "createKid",
                "requestBody": {
                    "description": "Message payload : Name, Date of Birth, Email (optional), Phone (optional), Comments (optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "dob"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Name",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "dob": {
                                        "description": "Date of birth",
                                        "type": "string",
                                        "format": "date",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "description": "Email",
                                        "type": "string",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "description": "Phone",
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "description": "comments",
                                        "type": "string",
                                        "example": "Allergic to aspirin"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Kid Created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Kid Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/kids/{kid_id}": {
            "delete": {
                "tags": [
                    "Kid"
                ],
                "summary": "Delete user kid",
                "description": "Delete user kid",
                "operationId": "deleteKid",
                "parameters": [
                    {
                        "name": "kid_id",
                        "in": "path",
                        "description": "Kid ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Kid Deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Kid Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "Kid"
                ],
                "summary": "Update a user kid",
                "description": "Update user kid",
                "operationId": "updateKid",
                "parameters": [
                    {
                        "name": "kid_id",
                        "in": "path",
                        "description": "Kid ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Message payload : Kid ID, Name, Date of Birth, Email (optional), Phone (optional), Comments (optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "dob"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Name",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "dob": {
                                        "description": "Date of birth",
                                        "type": "string",
                                        "format": "date",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "description": "Email",
                                        "type": "string",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "description": "Phone",
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "description": "comments",
                                        "type": "string",
                                        "example": "Allergic to aspirin"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Kid Updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Kid Updated successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/language/{lang}": {
            "post": {
                "tags": [
                    "Language"
                ],
                "summary": "Show Language Strings",
                "description": "Returns the Language key Value pairs.",
                "operationId": "showLangStrings",
                "responses": {
                    "200": {
                        "description": "Language key Value pairs",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "publishable_key": {
                                            "type": "string",
                                            "example": "your-publishable-key"
                                        },
                                        "merchant_identifier": {
                                            "type": "string",
                                            "example": "your-merchant-identifier"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/packs": {
            "get": {
                "tags": [
                    "Packs"
                ],
                "summary": "List packs",
                "description": "Retrieves a list of packs.",
                "operationId": "listPacks",
                "responses": {
                    "200": {
                        "description": "List of packs",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PackResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/nowpayments-webhook": {
            "post": {
                "tags": [
                    "Webhooks"
                ],
                "summary": "Handle NOWPayments webhook events",
                "description": "Processes NOWPayments webhook events (e.g., when a payment is finished) and updates the order accordingly.",
                "operationId": "nowPaymentsWebhook",
                "requestBody": {
                    "description": "NOWPayments webhook payload",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "payment_id": "np_test_123456",
                                "payment_status": "finished",
                                "order_id": "376",
                                "price_amount": 20,
                                "price_currency": "usd"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Webhook event processed successfully"
                    },
                    "400": {
                        "description": "Bad Request - Webhook event processing failed"
                    }
                }
            }
        },
        "/v1/orders": {
            "get": {
                "tags": [
                    "Orders"
                ],
                "summary": "List user orders",
                "description": "Lists user orders with optional filtering for paid and pending bookings.",
                "operationId": "listOrders",
                "parameters": [
                    {
                        "name": "paid",
                        "in": "query",
                        "description": "Get the paid orders",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "pending",
                        "in": "query",
                        "description": "Get pending orders",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User orders retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/OrderResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/orders/{order}/pay/crypto": {
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Create a NOWPayments payment session for an order",
                "description": "Creates a NOWPayments payment request for a given order and returns the payment URL.",
                "operationId": "cryptoPayOrder",
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Order details for payment; assistant_id is required",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "assistant_id"
                                ],
                                "properties": {
                                    "assistant_id": {
                                        "type": "string",
                                        "example": "abc123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment link created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "url": {
                                            "description": "NOWPayments payment URL",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/orders/{order}/pay/stripe": {
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Initiate payment for an order using Stripe",
                "description": "Initiates the payment process for an order using the Stripe payment provider.",
                "operationId": "stripePayOrder",
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payment information for the order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "publishable_key": {
                                            "type": "string",
                                            "example": "your-publishable-key"
                                        },
                                        "merchant_identifier": {
                                            "type": "string",
                                            "example": "your-merchant-identifier"
                                        },
                                        "merchant_country_code": {
                                            "type": "string",
                                            "example": "US"
                                        },
                                        "merchant_display_name": {
                                            "type": "string",
                                            "example": "Your Merchant"
                                        },
                                        "customer_id": {
                                            "type": "string",
                                            "example": "stripe-customer-id"
                                        },
                                        "customer_ephemeral_key": {
                                            "type": "string",
                                            "example": "ephemeral-key"
                                        },
                                        "payment_intent_client_secret": {
                                            "type": "string",
                                            "example": "payment-intent-client-secret"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/orders/{order}": {
            "put": {
                "tags": [
                    "Orders"
                ],
                "summary": "Create or update an order",
                "description": "Creates a new order or updates an existing one. The user's permissions are checked.",
                "operationId": "upsertOrderBis",
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID (optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpsertOrderRequest"
                            },
                            "example": {
                                "items": [
                                    {
                                        "orderable_type": "product",
                                        "orderable_id": "2f3b44e4-2a71-4d1d-9b57-2fa7a3c2a9e1",
                                        "metadata": {
                                            "variation_id": 101,
                                            "quantity": 2,
                                            "mode": "sale"
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successfully created or updated order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OrderResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/orders/{order}/pay/wallet": {
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Pay an order using the user's wallet",
                "description": "Pays an order using the user's wallet. The user's permissions are checked.",
                "operationId": "walletPayOrder",
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully paid order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order successfully paid with wallet."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The order cannot be paid with the wallet."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/activities": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List activities for a place",
                "description": "Lists activities for a specific place. Includes information about the activity and its availability.",
                "operationId": "listActivities",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the activities are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the activities are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of activities",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ActivityResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/banners": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List banners for a place",
                "description": "Lists banners for a specific place. Includes information about the category, parent category, coach, and booking count.",
                "operationId": "listBanners",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of banners",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BannerResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/events": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List events for a place",
                "description": "Lists events for a specific place. Includes information about the category, parent category, coach, and booking count.",
                "operationId": "listEvents",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the events are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the events are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of events",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/EventResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/facilities": {
            "get": {
                "tags": [
                    "Facility"
                ],
                "summary": "Get the list of facilities",
                "description": "Retrieves the list of facilities.",
                "operationId": "getFacilities",
                "responses": {
                    "200": {
                        "description": "List of facilities",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/FacilityResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Facility not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/places/{place}/flex-memberships": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List active flex memberships for a place",
                "description": "Lists active flex memberships for a specific place when flex memberships are enabled.",
                "operationId": "listFlexMemberships",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of flex memberships",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/FlexMembershipResource"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/group-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List group courses for a place",
                "description": "Lists group courses for a specific place. Includes information about the category, parent category, coach, and booking count.",
                "operationId": "listGroupCourses",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the services are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the services are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of group courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/GroupCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/personal-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List personal courses for a place",
                "description": "Lists personal courses for a specific place. Includes information about the coach, user, and booking count.",
                "operationId": "listPersonalCourses",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the courses are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the courses are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of personal courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PersonalCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/categories": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List place categories",
                "description": "Lists top-level categories with their children for a selected place.",
                "operationId": "listPlaceCategories",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Place categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CategoryResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "Get the list of places",
                "description": "Retrieves the list of places.",
                "operationId": "getPlaces",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page to retrieve - default 1",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "integer"
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "description": "Number of records to retrieve - default 10",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "format": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of places",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PlaceResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/places/{place}/protocols": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List protocols for a place",
                "description": "Returns all active protocols for a specific place, including their items.",
                "operationId": "listProtocols",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of protocols",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ProtocolResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/schedule": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "Get the gym schedule for a specific date",
                "description": "Returns the full schedule for a place on a given date, aggregating all bookable types (personal training, wellness, group courses, services, activities, events). Can be grouped by course type or by department.",
                "operationId": "listPlaceSchedule",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "The date to get the schedule for (Y-m-d format)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2026-03-23"
                        }
                    },
                    {
                        "name": "group_by",
                        "in": "query",
                        "description": "How to group the schedule: by course_type (default) or by department",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "course_type",
                            "enum": [
                                "course_type",
                                "department"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Schedule data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The date field is required."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/services": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List services for a place",
                "description": "Lists services for a specific place. Includes information about the service and its availability.",
                "operationId": "listServices",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the services are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the services are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Filter services by type",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "gym",
                                "co_working"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of services",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ServiceResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/wellness-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "List wellness courses for a place",
                "description": "Lists wellness courses for a specific place. Includes information about the coach, user, and booking count.",
                "operationId": "listWellnessCourses",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "isGuest",
                        "in": "query",
                        "description": "True if the availabilities are for guest bookings",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isKid",
                        "in": "query",
                        "description": "True if the services are for kids",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "isRecreationalArea",
                        "in": "query",
                        "description": "True if the services are in the recreational area",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of wellness courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/WellnessCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "Show details of a place",
                "description": "Retrieves detailed information about a specific place, including its coaches and their details.",
                "operationId": "showPlace",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Details of the place",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PlaceResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/protocols/{protocol}": {
            "get": {
                "tags": [
                    "Place"
                ],
                "summary": "Show a protocol",
                "description": "Returns the details of a single protocol including all its items.",
                "operationId": "showProtocol",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "protocol",
                        "in": "path",
                        "description": "Protocol Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Protocol details",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProtocolResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Protocol not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/products": {
            "get": {
                "tags": [
                    "Products"
                ],
                "summary": "List products for a place (paginated)",
                "description": "List products for a given place (paginated).",
                "operationId": "listPlaceProducts",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "description": "Category public UUID",
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "can_buy",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "can_rent",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search by name / description",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated includes. Allowed: variations",
                        "schema": {
                            "type": "string",
                            "example": "variations"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort by public_id,name,updated_at. Prefix with '-' for DESC.",
                        "schema": {
                            "type": "string",
                            "example": "-updated_at"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "example": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "maximum": 100,
                            "minimum": 1,
                            "example": 15
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated products list",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ProductResource"
                                            }
                                        },
                                        "links": {
                                            "properties": {
                                                "first": {
                                                    "type": "string",
                                                    "format": "uri"
                                                },
                                                "last": {
                                                    "type": "string",
                                                    "format": "uri"
                                                },
                                                "prev": {
                                                    "type": "string",
                                                    "format": "uri",
                                                    "nullable": true
                                                },
                                                "next": {
                                                    "type": "string",
                                                    "format": "uri",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "meta": {
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/products/{public_id}": {
            "get": {
                "tags": [
                    "Products"
                ],
                "summary": "Get product by public_id",
                "description": "Get a single product by public_id.",
                "operationId": "getProduct",
                "parameters": [
                    {
                        "name": "public_id",
                        "in": "path",
                        "description": "Product public id",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "prd_9QxA7K"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Comma-separated includes. Allowed: variations",
                        "schema": {
                            "type": "string",
                            "example": "variations"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/reports": {
            "get": {
                "tags": [
                    "Report"
                ],
                "summary": "List reports (filters: owner user, service, text in comments)",
                "operationId": "listReports",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "user_id",
                        "in": "query",
                        "description": "Owner user public UUID",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "service_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search term in comments",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "maximum": 100,
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated reports",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ReportResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Report"
                ],
                "summary": "Create a report (any authenticated user)",
                "operationId": "createReport",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "service_id",
                                    "origin"
                                ],
                                "properties": {
                                    "service_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "task_id": {
                                        "type": "string",
                                        "format": "uuid",
                                        "nullable": true
                                    },
                                    "origin": {
                                        "type": "string",
                                        "enum": [
                                            "customer",
                                            "coach",
                                            "employee"
                                        ]
                                    },
                                    "comment": {
                                        "type": "string"
                                    },
                                    "media[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Report created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ReportResource"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/reports/{report}": {
            "patch": {
                "tags": [
                    "Report"
                ],
                "summary": "Update a report (any authenticated user with access)",
                "operationId": "updateReport",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "report",
                        "in": "path",
                        "description": "Report public UUID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "service_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "task_id": {
                                        "type": "string",
                                        "format": "uuid",
                                        "nullable": true
                                    },
                                    "origin": {
                                        "type": "string",
                                        "enum": [
                                            "customer",
                                            "coach",
                                            "employee"
                                        ]
                                    },
                                    "comment": {
                                        "type": "string"
                                    },
                                    "media[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        }
                                    },
                                    "remove_media_ids[]": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "uuid"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Report updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ReportResource"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Report not found"
                    },
                    "422": {
                        "description": "Validation / resolution error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/availability": {
            "get": {
                "tags": [
                    "Customer",
                    "Reservations"
                ],
                "summary": "Get available reservation time slots",
                "operationId": "customerGetAvailableSlots",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "party_size",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Available slots"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/reservations/{reservation}/preorder": {
            "get": {
                "tags": [
                    "Restaurant Customer",
                    "Pre-order"
                ],
                "summary": "View pre-order for a reservation",
                "operationId": "customerShowPreorder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-order details"
                    },
                    "404": {
                        "description": "No pre-order found"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Restaurant Customer",
                    "Pre-order"
                ],
                "summary": "Create a pre-order for a reservation",
                "operationId": "customerCreatePreorder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "items"
                                ],
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "menu_item_id": {
                                                    "type": "string"
                                                },
                                                "quantity": {
                                                    "type": "integer"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Pre-order created"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/reservations": {
            "get": {
                "tags": [
                    "Customer",
                    "Reservations"
                ],
                "summary": "List my reservations across all restaurants for a place",
                "operationId": "customerListMyReservations",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "from_date",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Reservation list"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants": {
            "get": {
                "tags": [
                    "Customer",
                    "Restaurants"
                ],
                "summary": "List active restaurants for a place",
                "operationId": "customerListRestaurants",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Restaurant list"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/reservations/{reservation}/preorder/pay": {
            "post": {
                "tags": [
                    "Restaurant Customer",
                    "Pre-order"
                ],
                "summary": "Pay a pre-order (wallet or Stripe)",
                "operationId": "customerPayPreorder",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "reservation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "payment_method"
                                ],
                                "properties": {
                                    "payment_method": {
                                        "type": "string",
                                        "enum": [
                                            "wallet",
                                            "stripe"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment processed"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}/menu": {
            "get": {
                "tags": [
                    "Customer",
                    "Restaurants"
                ],
                "summary": "Get today's menu for a restaurant (customer view)",
                "operationId": "customerRestaurantMenu",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "Date (default: today)",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "service_period",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Menu with sections and items"
                    },
                    "404": {
                        "description": "No menu found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/places/{place}/restaurants/{restaurant}": {
            "get": {
                "tags": [
                    "Customer",
                    "Restaurants"
                ],
                "summary": "Show restaurant detail",
                "operationId": "customerShowRestaurant",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "restaurant",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Restaurant detail"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/search": {
            "get": {
                "tags": [
                    "Search"
                ],
                "summary": "Search places",
                "description": "Searches for places based on location and categories.",
                "operationId": "search",
                "parameters": [
                    {
                        "name": "north",
                        "in": "query",
                        "description": "North boundary of the bounding box",
                        "required": true,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "south",
                        "in": "query",
                        "description": "South boundary of the bounding box",
                        "required": true,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "west",
                        "in": "query",
                        "description": "West boundary of the bounding box",
                        "required": true,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "east",
                        "in": "query",
                        "description": "East boundary of the bounding box",
                        "required": true,
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "categories",
                        "in": "query",
                        "description": "Array of category IDs",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    {
                        "name": "facilities",
                        "in": "query",
                        "description": "Array of facility IDs",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of places",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/SearchResource"
                                            }
                                        },
                                        "links": {
                                            "$ref": ""
                                        },
                                        "meta": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/global-search": {
            "get": {
                "tags": [
                    "Global Search"
                ],
                "summary": "Search across multiple models",
                "description": "Performs a search across places, personal courses, group courses, wellness courses, services, and categories.",
                "operationId": "globalSearch",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search query string",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of search results",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/SearchGlobalResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object"
                                        },
                                        "meta": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/pkpass": {
            "get": {
                "tags": [
                    "PKPass"
                ],
                "summary": "Show PKPass for user",
                "description": "Generates a PKPass for the authenticated user's door access card.",
                "operationId": "showPkPass",
                "responses": {
                    "200": {
                        "description": "PKPass data",
                        "content": {
                            "application/vnd.apple.pkpass": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User door pass not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/stripe-config": {
            "get": {
                "tags": [
                    "Stripe"
                ],
                "summary": "Show Stripe configuration",
                "description": "Returns the Stripe configuration information.",
                "operationId": "showStripeConfig",
                "responses": {
                    "200": {
                        "description": "Stripe configuration data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "publishable_key": {
                                            "type": "string",
                                            "example": "your-publishable-key"
                                        },
                                        "merchant_identifier": {
                                            "type": "string",
                                            "example": "your-merchant-identifier"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/wallet": {
            "get": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Show user's wallet",
                "description": "Returns information about the user's wallet.",
                "operationId": "showWallet",
                "responses": {
                    "200": {
                        "description": "User's wallet information",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/WalletResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/wallet/transactions": {
            "get": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Show user's wallet",
                "description": "Returns information about the user's wallet.",
                "operationId": "showWalletTransactions",
                "responses": {
                    "200": {
                        "description": "User's wallet information",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/WalletTransactionResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/orders/{order}/check": {
            "get": {
                "tags": [
                    "Orders"
                ],
                "summary": "Check the payment status of an order using Stripe",
                "description": "Checks the payment status of an order using the Stripe payment provider.",
                "operationId": "stripeCheckOrder",
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Order payment status checked successfully"
                    },
                    "400": {
                        "description": "Bad Request - Payment status check failed"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/stripe-connect-webhook": {
            "post": {
                "tags": [
                    "Webhooks"
                ],
                "summary": "Handle Stripe Connect Webhook events",
                "description": "Handles Stripe Connect Webhook events, such as payment_intent.succeeded.",
                "operationId": "stripeConnectWebhook",
                "requestBody": {
                    "description": "Stripe Connect Webhook payload",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "id": "evt_12345",
                                "type": "payment_intent.succeeded",
                                "data": {
                                    "object": {
                                        "metadata": {
                                            "order_id": 1
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Webhook event processed successfully"
                    },
                    "400": {
                        "description": "Bad Request - Webhook event processing failed"
                    }
                }
            }
        },
        "/stripe-webhook": {
            "post": {
                "tags": [
                    "Webhooks"
                ],
                "summary": "Handle Stripe Webhook events",
                "description": "Handles Stripe Webhook events, such as payment_intent.succeeded.",
                "operationId": "stripeWebhook",
                "requestBody": {
                    "description": "Stripe Webhook payload",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "id": "evt_12345",
                                "type": "payment_intent.succeeded",
                                "data": {
                                    "object": {
                                        "metadata": {
                                            "order_id": 1
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Webhook event processed successfully"
                    },
                    "400": {
                        "description": "Bad Request - Webhook event processing failed"
                    }
                }
            }
        },
        "/v1/tracking-entries": {
            "get": {
                "tags": [
                    "Tracking"
                ],
                "summary": "List tracking entries",
                "description": "Retrieves a list of tracking entries for the authenticated user.",
                "operationId": "listTrackingEntries",
                "responses": {
                    "200": {
                        "description": "List of tracking entries",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/TrackingEntryResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/tracking-entries/{entry}": {
            "get": {
                "tags": [
                    "Tracking"
                ],
                "summary": "Show tracking entry",
                "description": "Retrieves details of a specific tracking entry for the authenticated user.",
                "operationId": "showTrackingEntry",
                "parameters": [
                    {
                        "name": "entry",
                        "in": "path",
                        "description": "Tracking Entry ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Tracking entry details",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TrackingEntryResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Tracking entry not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/v1/chatbot/coach/{coach}/availabilities": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List coach availabilities",
                "description": "Lists future availabilities of the selected coach.",
                "operationId": "listAvailabilitiesChatbot",
                "parameters": [
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Coach availabilities retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "date-time",
                                                "example": "2023-11-30T14:30:00Z"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Sync coach availabilities",
                "description": "Syncs coach availabilities by adding and deleting selected availabilities.",
                "operationId": "syncAvailabilitiesChatbot",
                "parameters": [
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Availabilities to add and delete",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "to_add",
                                    "to_delete"
                                ],
                                "properties": {
                                    "to_add": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-11-30T14:30:00Z"
                                        }
                                    },
                                    "to_delete": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "date-time",
                                            "example": "2023-11-30T14:30:00Z"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Coach availabilities synced successfully"
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/coach/{coach}/planning": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List coach planning entries",
                "description": "Lists planning entries for a coach including group courses and personal courses.",
                "operationId": "listCoachPlanningChatbot",
                "parameters": [
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Coach planning entries retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CoachPlanningEntryResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/bookings/{booking}/cancel": {
            "delete": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Cancel attendee booking via Chatbot",
                "description": "Cancels the booking for the selected user as an attendee.",
                "operationId": "cancelAttendeeBookingChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "booking",
                        "in": "path",
                        "description": "Booking ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Attendee booking canceled successfully"
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "You are not authorized to perform this action."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Booking not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/guests": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List guests via Chatabot",
                "description": "Lists user guests",
                "operationId": "listGuestsChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User guests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/GuestResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Create or update a user guest via chatbot",
                "description": "Create or update user guest via chatbot",
                "operationId": "createUpdateGuestChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Message payload : Firstname, Lastname, Email, Phone (optional), Comments (optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email"
                                ],
                                "properties": {
                                    "firstname": {
                                        "description": "Guest Firstname",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "description": "Guest Lastname",
                                        "type": "string",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "description": "Guest Email",
                                        "type": "string",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "description": "Guest Phone",
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "description": "Guest comments",
                                        "type": "string",
                                        "example": "Best Padel player"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Guest Created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Guest Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/kids": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List user kids via chatbot",
                "description": "Lists user kids via chatbot",
                "operationId": "listKidsChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User kids retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/KidResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Create a user kid via chatbot",
                "description": "Create user kid via chatbot",
                "operationId": "createKidChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Message payload : Name, Date of Birth, Email (optional), Phone (optional), Comments (optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "dob"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Name",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "dob": {
                                        "description": "Date of birth",
                                        "type": "string",
                                        "format": "date",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "description": "Email",
                                        "type": "string",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "description": "Phone",
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "description": "comments",
                                        "type": "string",
                                        "example": "Allergic to aspirin"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Kid Created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Kid Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/guests/{guest}": {
            "delete": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Delete user guest via chatbot",
                "description": "Delete user guest via chatbot",
                "operationId": "deleteGuestChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Guest Deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Guest Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/kids/{kid_id}": {
            "delete": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Delete user kid via chatbot",
                "description": "Delete user kid via chatbot",
                "operationId": "deleteKidChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "kid_id",
                        "in": "path",
                        "description": "Kid ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Kid Deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Kid Created successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Update a user kid via chatbot",
                "description": "Update user kid via chatbot",
                "operationId": "updateKidChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "kid_id",
                        "in": "path",
                        "description": "Kid ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Message payload : Kid ID, Name, Date of Birth, Email (optional), Phone (optional), Comments (optional)",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "dob"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Name",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "dob": {
                                        "description": "Date of birth",
                                        "type": "string",
                                        "format": "date",
                                        "example": "Smith"
                                    },
                                    "email": {
                                        "description": "Email",
                                        "type": "string",
                                        "example": "john@smith.com"
                                    },
                                    "phone": {
                                        "description": "Phone",
                                        "type": "string",
                                        "example": "+33655667788"
                                    },
                                    "comments": {
                                        "description": "comments",
                                        "type": "string",
                                        "example": "Allergic to aspirin"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Kid Updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Kid Updated successfully."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/bookings": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List user bookings via Chatabot",
                "description": "Lists user bookings with optional filtering for past and upcoming bookings.",
                "operationId": "listBookingsChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "next",
                        "in": "query",
                        "description": "Get the next upcoming booking",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    },
                    {
                        "name": "past",
                        "in": "query",
                        "description": "Get past bookings",
                        "schema": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "User bookings retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CustomerBookingResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/orders": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List customer orders via chatbot",
                "description": "Returns paginated customer orders with optional status/date filters.",
                "operationId": "chatbotListCustomerOrders",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "all | paid | pending",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "Start date (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "End date (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200,
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated customer orders"
                    },
                    "404": {
                        "description": "Customer not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/orders/{order}/nowpayments-payment": {
            "post": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Create a NOWPayments payment session for an order via Chatbot",
                "description": "Creates a NOWPayments payment request for a given order and returns the payment URL.",
                "operationId": "chatbotCreateNowpaymentsPayment",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Order details for payment; assistant_id is required",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "assistant_id"
                                ],
                                "properties": {
                                    "assistant_id": {
                                        "type": "string",
                                        "example": "abc123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment link created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "url": {
                                            "description": "NOWPayments payment URL",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/otp": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "OTP Request",
                "description": "Sends an OTP to an email.",
                "operationId": "otpRequestChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "User Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "OTP sent successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "otp": {
                                            "type": "string",
                                            "example": "8439023"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/register": {
            "post": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "User registration",
                "description": "Registers a new user with the application.",
                "operationId": "registerChatbot",
                "requestBody": {
                    "description": "User registration details",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "firstname",
                                    "lastname",
                                    "email",
                                    "phone",
                                    "password"
                                ],
                                "properties": {
                                    "firstname": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "lang": {
                                        "type": "string",
                                        "example": "en"
                                    },
                                    "place_id": {
                                        "type": "string",
                                        "example": "995edf32-64f1-4b59-addf-8684d8464d17"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "1234567890"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "User registered successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "user_id": {
                                            "type": "string",
                                            "example": "9e091031-9a6a-48ac-94eb-70cacf9d7a94"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "$ref": ""
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "409": {
                        "description": "Conflict",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User already exists."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/v1/chatbot/customer/{customer}/bookings/{booking}": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Show booking details",
                "description": "Shows details of a specific booking for the authenticated user.",
                "operationId": "showBookingChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "booking",
                        "in": "path",
                        "description": "Booking ID",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Booking details retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CustomerBookingResource"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "You are not authorized to perform this action."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Booking not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/orders/{order}/stripe-payment": {
            "post": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Create a Stripe payment session for an order via Chatbot",
                "description": "Creates a Stripe Checkout session for a given order and returns the URL for payment.",
                "operationId": "chatbotCreateStripePayment",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Order details for payment",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "assistant_id"
                                ],
                                "properties": {
                                    "assistant_id": {
                                        "type": "string",
                                        "example": "abc123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment session created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "url": {
                                            "description": "Stripe Checkout URL",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation Error"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/orders/{order?}": {
            "put": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Create or update an order",
                "description": "Creates a new order or updates an existing one.",
                "operationId": "upsertOrderChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "User Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID (optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpsertOrderChatbotRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successfully created or updated order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OrderResource"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "User not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Unprocessable Entity",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The given data was invalid."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/customer/{customer}/orders/{order}/wallet-payment": {
            "post": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Pay an order using the user's wallet",
                "description": "Pays an order using the user's wallet.",
                "operationId": "walletPayOrderChatbot",
                "parameters": [
                    {
                        "name": "customer",
                        "in": "path",
                        "description": "Customer Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "path",
                        "description": "Order ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Order details for payment",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "assistant_id"
                                ],
                                "properties": {
                                    "assistant_id": {
                                        "type": "string",
                                        "example": "abc123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successfully paid order",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order successfully paid with wallet."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "The order cannot be paid with the wallet."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "This action is unauthorized."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Order not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/docs/OPENCLAW_CHATBOT_API.md": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Get OpenClaw chatbot integration guide",
                "description": "Returns the markdown integration guide consumed by OpenClaw.",
                "operationId": "chatbotGetOpenclawChatbotApiDoc",
                "responses": {
                    "200": {
                        "description": "OpenClaw chatbot API markdown guide"
                    },
                    "404": {
                        "description": "Document not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/docs/OPENCLAW_TOOL_CONTRACT.json": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Get OpenClaw machine-readable tool contract",
                "description": "Returns the JSON tool contract consumed by OpenClaw.",
                "operationId": "chatbotGetOpenclawToolContract",
                "responses": {
                    "200": {
                        "description": "OpenClaw tool contract JSON"
                    },
                    "404": {
                        "description": "Document not found"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/analytics/access-logs": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List place access logs for AI analysis",
                "description": "Returns paginated place access logs with optional date and status filters.",
                "operationId": "chatbotListPlaceAccessLogs",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "Start date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "End date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "arrived | left | not_arrived",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "user_public_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "guest_public_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "access_granted",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "is_guest_pass",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200,
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated place access logs"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/activities": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List activities for a place",
                "description": "Lists activities for a specific place. Includes information about the activity and its availability.",
                "operationId": "listActivitiesChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of activities",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ActivityResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/analytics/bookings": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List place bookings for AI analysis",
                "description": "Returns paginated place bookings with filtering by status, type, date range, attendee, and coach.",
                "operationId": "chatbotListPlaceBookings",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "all | upcoming | past | today | canceled",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Bookable type",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "Start date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "End date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "attendee_public_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "coach_public_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200,
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated place bookings"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/categories": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List place categories",
                "description": "Lists top-level categories with their children for a selected place.",
                "operationId": "listPlaceCategoriesChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Place categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CategoryResource"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/events": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List events for a place",
                "description": "Lists events for a specific place. Includes information about the category, parent category, coach, and booking count.",
                "operationId": "listEventsChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of events",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/EventResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/group-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List group courses for a place",
                "description": "Lists group courses for a specific place. Includes information about the category, parent category, coach, and booking count.",
                "operationId": "listGroupCoursesChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of group courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/GroupCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/analytics/orders": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List place orders for AI analysis",
                "description": "Returns paginated place orders with filtering by status, customer, and date range.",
                "operationId": "chatbotListPlaceOrders",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "all | paid | pending",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "Start date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "End date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "customer_public_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1,
                            "minimum": 1
                        }
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200,
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Paginated place orders"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/personal-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List personal courses for a place",
                "description": "Lists personal courses for a specific place. Includes information about the coach, user, and booking count.",
                "operationId": "listPersonalCoursesChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of personal courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PersonalCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/schedule": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Get place schedule for booking orchestration",
                "description": "Returns the full place schedule for a date, grouped by course type or department. Optionally provide a customer to personalize slot pricing/availability.",
                "operationId": "chatbotListPlaceSchedule",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "description": "Schedule date (Y-m-d)",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "group_by",
                        "in": "query",
                        "description": "course_type | department",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "course_type"
                        }
                    },
                    {
                        "name": "customer_public_id",
                        "in": "query",
                        "description": "Optional customer public UUID",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Place schedule"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/services": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List services for a place",
                "description": "Lists services for a specific place. Includes information about the service and its availability.",
                "operationId": "listServicesChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Filter services by type",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "gym",
                                "co_working"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of services",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ServiceResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/wellness-courses/{coach}/{category}": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "List wellness courses for a place",
                "description": "Lists wellness courses for a specific place. Includes information about the coach, user, and booking count.",
                "operationId": "listWellnessCoursesChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "coach",
                        "in": "path",
                        "description": "Coach Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "path",
                        "description": "Category Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of wellness courses",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/WellnessCourseResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Get the list of places",
                "description": "Retrieves the list of places. Requires an API key in the 'X-API-KEY' header.",
                "operationId": "getPlacesChatbot",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID (Optional)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of places",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/PlaceChatbotResource"
                                    }
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Place not found."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/places/{place}/analytics": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Get analytics overview for a place",
                "description": "Returns key aggregate metrics (access logs, bookings, orders) for an optional date range.",
                "operationId": "chatbotPlaceAnalyticsOverview",
                "parameters": [
                    {
                        "name": "place",
                        "in": "path",
                        "description": "Place Public ID",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "description": "Start date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "description": "End date in place timezone (Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Analytics overview"
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        },
        "/v1/chatbot/search": {
            "get": {
                "tags": [
                    "Chatbot"
                ],
                "summary": "Search across multiple models",
                "description": "Performs a search across places, personal courses, group courses, wellness courses, services, activities and categories.",
                "operationId": "searchChatbot",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search query string",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "Type of the object to search : all, coach, user, place, personal_course, group_course, wellness_course, service, category, activity",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of search results",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/SearchGlobalResource"
                                            }
                                        },
                                        "links": {
                                            "type": "object"
                                        },
                                        "meta": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Unauthenticated"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "api_key": []
                    }
                ]
            }
        }
    },
    "components": {
        "schemas": {
            "OrderItemData": {
                "title": "OrderItemData",
                "description": "Data structure for an order item",
                "required": [
                    "orderable_type",
                    "orderable_id"
                ],
                "properties": {
                    "orderable_type": {
                        "description": "The type of the orderable entity (personal_course, group_course, wellness_course, service, event, place, ...)",
                        "type": "string"
                    },
                    "orderable_id": {
                        "description": "The public ID of the orderable entity",
                        "type": "string",
                        "format": "uuid"
                    },
                    "isGuest": {
                        "description": "If the item is a guest order",
                        "type": "boolean"
                    },
                    "kid_id": {
                        "description": "The Public ID of the kid if any",
                        "type": "string",
                        "format": "uuid"
                    },
                    "isGift": {
                        "description": "If the item is a gift (no charge to the customer)",
                        "type": "boolean"
                    },
                    "metadata": {
                        "description": "Optional metadata for the order item. For personal_course / wellness_course: start_at (required), end_at (required, determines duration and price). custom_amount overrides calculated price. custom_currency defaults to place currency.",
                        "properties": {
                            "start_at": {
                                "description": "Session start (required for personal/wellness/service bookings)",
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "description": "Session end — determines billing duration for personal/wellness courses",
                                "type": "string",
                                "format": "date-time"
                            },
                            "place_id": {
                                "description": "Place public ID (required for personal/wellness courses)",
                                "type": "string",
                                "format": "uuid"
                            },
                            "custom_amount": {
                                "description": "Override the calculated price in major currency units (e.g. 50.00). Bypasses hourly-rate calculation.",
                                "type": "number"
                            },
                            "custom_currency": {
                                "description": "ISO-4217 currency code for custom_amount. Defaults to place currency when omitted.",
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "PersonalCourseData": {
                "title": "PersonalCourseData",
                "description": "Personal course data"
            },
            "PlanningEntryAttendeeData": {
                "title": "PlanningEntryAttendeeData",
                "description": "Data for planning entry attendee"
            },
            "SearchResultData": {
                "title": "SearchResultData",
                "description": "Data for search result"
            },
            "WellnessCourseData": {
                "title": "WellnessCourseData",
                "description": "Wellness course data"
            },
            "Gender": {
                "title": "Genders",
                "description": "Enumeration of genders",
                "properties": {
                    "label": {
                        "description": "Label for the gender",
                        "type": "string",
                        "example": "Female"
                    },
                    "MALE": {
                        "description": "Male",
                        "type": "object",
                        "example": "male",
                        "enum": [
                            "male"
                        ]
                    },
                    "FEMALE": {
                        "description": "Female",
                        "type": "object",
                        "example": "female",
                        "enum": [
                            "female"
                        ]
                    }
                },
                "type": "string",
                "enum": [
                    "male",
                    "female"
                ],
                "example": "female"
            },
            "MemberType": {
                "title": "MemberType",
                "description": "Enumeration of member types",
                "properties": {
                    "label": {
                        "description": "Label for the user type",
                        "type": "string",
                        "example": "Founding member"
                    },
                    "allocation": {
                        "description": "Allocation for the member type",
                        "type": "integer",
                        "example": "10"
                    },
                    "FOUNDING": {
                        "description": "Founding member type",
                        "type": "object",
                        "example": "founding",
                        "enum": [
                            "founding"
                        ]
                    },
                    "EARLY": {
                        "description": "Early member type",
                        "type": "object",
                        "example": "early",
                        "enum": [
                            "early"
                        ]
                    },
                    "PREMIER": {
                        "description": "Premier member type",
                        "type": "object",
                        "example": "premier",
                        "enum": [
                            "premier"
                        ]
                    },
                    "SHELL_CORPORATE": {
                        "description": "Shell Corporate member type",
                        "type": "object",
                        "example": "shell_corporate",
                        "enum": [
                            "shell_corporate"
                        ]
                    },
                    "KC_CORPORATE": {
                        "description": "King's College member type",
                        "type": "object",
                        "example": "kc_corporate",
                        "enum": [
                            "kc_corporate"
                        ]
                    },
                    "CUB_CORPORATE": {
                        "description": "Cub Corporate member type",
                        "type": "object",
                        "example": "cub_corporate",
                        "enum": [
                            "cub_corporate"
                        ]
                    },
                    "ADMIN": {
                        "description": "Admin member type",
                        "type": "object",
                        "example": "admin",
                        "enum": [
                            "admin"
                        ]
                    }
                },
                "type": "string",
                "enum": [
                    "founding",
                    "early",
                    "premier",
                    "shell_corporate",
                    "kc_corporate",
                    "cub_corporate",
                    "admin"
                ],
                "example": "founding"
            },
            "PackType": {
                "title": "PackType",
                "description": "Enumeration of pack types",
                "properties": {
                    "MEMBERSHIP": {
                        "description": "Membership pack type",
                        "type": "object",
                        "example": "membership",
                        "enum": [
                            "membership"
                        ]
                    },
                    "CREDIT": {
                        "description": "Credit pack type",
                        "type": "object",
                        "example": "credit",
                        "enum": [
                            "credit"
                        ]
                    },
                    "DAYPASS": {
                        "description": "Daypass pack type",
                        "type": "object",
                        "example": "daypass",
                        "enum": [
                            "daypass"
                        ]
                    },
                    "GUEST_PASS": {
                        "description": "Guest Pass pack type",
                        "type": "object",
                        "example": "guest_pass",
                        "enum": [
                            "guest_pass"
                        ]
                    }
                },
                "type": "string",
                "enum": [
                    "membership",
                    "credit",
                    "daypass",
                    "guest_pass"
                ],
                "example": "stripe"
            },
            "ServiceType": {
                "title": "ServiceType",
                "description": "Enumeration of service types",
                "properties": {
                    "GYM": {
                        "description": "Gym service type",
                        "type": "object",
                        "example": "gym",
                        "enum": [
                            "gym"
                        ]
                    },
                    "CO_WORKING": {
                        "description": "Co-Working service type",
                        "type": "object",
                        "example": "co_working",
                        "enum": [
                            "co_working"
                        ]
                    }
                },
                "type": "string",
                "enum": [
                    "gym",
                    "co_working"
                ],
                "example": "gym"
            },
            "TranslationType": {
                "title": "TranslationType",
                "description": "Enumeration for translation type",
                "properties": {
                    "label": {
                        "description": "Label for the translation type",
                        "type": "string",
                        "example": "Web"
                    },
                    "APP": {
                        "description": "App translation type",
                        "type": "object",
                        "example": 0,
                        "enum": [
                            0
                        ]
                    },
                    "WEB": {
                        "description": "Web translation type",
                        "type": "object",
                        "example": 1,
                        "enum": [
                            1
                        ]
                    }
                },
                "type": "integer",
                "enum": [
                    0,
                    1
                ],
                "example": 1
            },
            "UserType": {
                "title": "UserType",
                "description": "Enumeration of user types",
                "properties": {
                    "label": {
                        "description": "Label for the user type",
                        "type": "string",
                        "example": "Customer"
                    },
                    "CUSTOMER": {
                        "description": "Customer user type",
                        "type": "object",
                        "example": "customer",
                        "enum": [
                            "customer"
                        ]
                    },
                    "COACH": {
                        "description": "Coach user type",
                        "type": "object",
                        "example": "coach",
                        "enum": [
                            "coach"
                        ]
                    },
                    "EMPLOYEE": {
                        "description": "Employee user type",
                        "type": "object",
                        "example": "employee",
                        "enum": [
                            "employee"
                        ]
                    }
                },
                "type": "string",
                "enum": [
                    "customer",
                    "coach",
                    "employee"
                ],
                "example": "customer"
            },
            "WalletPaymentType": {
                "title": "WalletPaymentType",
                "description": "Enumeration of wallet payment types",
                "properties": {
                    "label": {
                        "description": "Label for the wallet payment type",
                        "type": "string",
                        "example": "Stripe"
                    },
                    "STRIPE": {
                        "description": "Stripe payment type",
                        "type": "object",
                        "example": "stripe",
                        "enum": [
                            "stripe"
                        ]
                    },
                    "REFUND": {
                        "description": "Refund payment type",
                        "type": "object",
                        "example": "refund",
                        "enum": [
                            "refund"
                        ]
                    },
                    "CASH": {
                        "description": "Cash payment type",
                        "type": "object",
                        "example": "cash",
                        "enum": [
                            "cash"
                        ]
                    },
                    "CHECK": {
                        "description": "Check payment type",
                        "type": "object",
                        "example": "check",
                        "enum": [
                            "check"
                        ]
                    },
                    "CREDIT_CARD": {
                        "description": "Credit card payment type",
                        "type": "object",
                        "example": "credit_card",
                        "enum": [
                            "credit_card"
                        ]
                    },
                    "BANK_TRANSFER": {
                        "description": "Bank transfer payment type",
                        "type": "object",
                        "example": "bank_transfer",
                        "enum": [
                            "bank_transfer"
                        ]
                    }
                },
                "type": "string",
                "enum": [
                    "stripe",
                    "refund",
                    "cash",
                    "check",
                    "credit_card",
                    "bank_transfer"
                ],
                "example": "stripe"
            },
            "WalletTransactionType": {
                "title": "WalletTransactionType",
                "description": "Enumeration of wallet transaction types",
                "properties": {
                    "label": {
                        "description": "Label for the wallet transaction type",
                        "type": "string",
                        "example": "Credit"
                    },
                    "CREDIT": {
                        "description": "Credit transaction",
                        "type": "object",
                        "example": 1,
                        "enum": [
                            1
                        ]
                    },
                    "DEBIT": {
                        "description": "Debit transaction",
                        "type": "object",
                        "example": 0,
                        "enum": [
                            0
                        ]
                    },
                    "CREDIT_ADJUSTMENT": {
                        "description": "Credit adjustment transaction",
                        "type": "object",
                        "example": 2,
                        "enum": [
                            2
                        ]
                    },
                    "DEBIT_ADJUSTMENT": {
                        "description": "Debit adjustment transaction",
                        "type": "object",
                        "example": 3,
                        "enum": [
                            3
                        ]
                    }
                },
                "type": "integer",
                "enum": [
                    1,
                    0,
                    2,
                    3
                ],
                "example": 1
            },
            "StoreConversationPayload": {
                "required": [
                    "participant_type",
                    "participant_public_id"
                ],
                "properties": {
                    "participant_type": {
                        "type": "string",
                        "enum": [
                            "user",
                            "coach",
                            "place",
                            "employee"
                        ]
                    },
                    "participant_public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "enable_ai": {
                        "type": "boolean"
                    },
                    "as_place": {
                        "type": "string",
                        "enum": [
                            "true",
                            "false",
                            "1",
                            "0",
                            "yes",
                            "no",
                            "on",
                            "off"
                        ]
                    },
                    "place_public_id": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "type": "object"
            },
            "StoreMessagePayload": {
                "required": [
                    "type"
                ],
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "text",
                            "gps",
                            "voice",
                            "attachment"
                        ]
                    },
                    "body": {
                        "type": "string",
                        "maxLength": 10000
                    },
                    "lat": {
                        "type": "number",
                        "format": "float"
                    },
                    "lng": {
                        "type": "number",
                        "format": "float"
                    },
                    "accuracy": {
                        "type": "number",
                        "format": "float"
                    },
                    "attachments": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "format": "binary"
                        }
                    },
                    "as_place": {
                        "type": "string",
                        "enum": [
                            "true",
                            "false",
                            "1",
                            "0",
                            "yes",
                            "no",
                            "on",
                            "off"
                        ]
                    },
                    "place_public_id": {
                        "type": "string",
                        "format": "uuid"
                    }
                },
                "type": "object"
            },
            "UpsertOrderChatbotRequest": {
                "title": "UpsertOrderChatbotRequest",
                "description": "Request for upserting order items with a Chatbot",
                "required": [
                    "items, assistant_id"
                ],
                "properties": {
                    "assistant_id": {
                        "description": "The ID of the assistant handling the order",
                        "type": "string"
                    },
                    "items": {
                        "description": "Collection of validated order items",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/OrderItemData"
                        }
                    }
                },
                "type": "object"
            },
            "UpsertOrderRequest": {
                "title": "UpsertOrderRequest",
                "description": "Request for upserting order items",
                "required": [
                    "items"
                ],
                "properties": {
                    "items": {
                        "description": "Collection of validated order items",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/OrderItemData"
                        }
                    }
                },
                "type": "object"
            },
            "AccessValidationResource": {
                "title": "AccessValidationResource",
                "description": "Access validation payload",
                "required": [
                    "valid",
                    "reason",
                    "place",
                    "firstname",
                    "lastname",
                    "idnumber",
                    "email",
                    "date",
                    "member"
                ],
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "valid": {
                                "type": "boolean",
                                "example": true
                            },
                            "reason": {
                                "type": "string",
                                "example": "",
                                "nullable": true
                            },
                            "place": {
                                "type": "string",
                                "example": "Champion Spirit Paris",
                                "nullable": true
                            },
                            "place_id": {
                                "type": "string",
                                "format": "uuid",
                                "nullable": true
                            },
                            "member": {
                                "type": "string",
                                "example": "John Doe",
                                "nullable": true
                            },
                            "firstname": {
                                "type": "string",
                                "example": "Jane",
                                "nullable": true
                            },
                            "lastname": {
                                "type": "string",
                                "example": "Smith",
                                "nullable": true
                            },
                            "idnumber": {
                                "type": "string",
                                "example": "AB123456",
                                "nullable": true
                            },
                            "email": {
                                "type": "string",
                                "format": "email",
                                "example": "jane@example.com",
                                "nullable": true
                            },
                            "date": {
                                "type": "string",
                                "example": "26 August 2025",
                                "nullable": true
                            },
                            "invitation_type": {
                                "type": "string",
                                "enum": [
                                    "prospect",
                                    "member",
                                    "third_party",
                                    "other"
                                ],
                                "nullable": true
                            },
                            "company": {
                                "type": "string",
                                "example": "Acme Corp",
                                "nullable": true
                            },
                            "visit_reason": {
                                "type": "string",
                                "example": "Business meeting",
                                "nullable": true
                            },
                            "scheduled_arrival_at": {
                                "type": "string",
                                "format": "date-time",
                                "nullable": true
                            },
                            "access_log_id": {
                                "type": "string",
                                "format": "uuid",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ActivityResource": {
                "title": "ActivityResource",
                "description": "Activity resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the activity",
                                "type": "integer"
                            },
                            "name": {
                                "description": "Name of the activity",
                                "type": "string"
                            },
                            "description": {
                                "description": "Description of the activity",
                                "type": "string"
                            },
                            "location": {
                                "description": "Location of the activity if off site",
                                "type": "string"
                            },
                            "free_access": {
                                "description": "If the activity gives free access to the gym",
                                "type": "boolean"
                            },
                            "offsite_activity": {
                                "description": "If the activity is off site",
                                "type": "boolean"
                            },
                            "has_attendees": {
                                "description": "If the activity requires to register attendees",
                                "type": "boolean"
                            },
                            "capacity": {
                                "description": "Maximum number of attendees for the activity",
                                "type": "integer"
                            },
                            "duration": {
                                "description": "Duration of the activity in minutes",
                                "type": "integer"
                            },
                            "icon": {
                                "description": "URL for the activity icon",
                                "type": "string",
                                "format": "url"
                            },
                            "slots": {
                                "description": "Array of slots",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "start_at": {
                                            "description": "Start time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "end_at": {
                                            "description": "End time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "places_left": {
                                            "description": "Places left for the slot",
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "money_price": {
                                "$ref": ""
                            },
                            "credit_price": {
                                "description": "Credits price of the activity",
                                "type": "number",
                                "format": "float"
                            },
                            "credit_taxes": {
                                "description": "Credits taxes of the activity",
                                "type": "number",
                                "format": "float"
                            },
                            "is_kids_zone": {
                                "description": "If the activity is for kids",
                                "type": "boolean",
                                "example": true
                            },
                            "min_age": {
                                "description": "If the category is for kids, the minimum age",
                                "type": "integer",
                                "example": true
                            },
                            "max_age": {
                                "description": "If the category is for kids, the maximum age",
                                "type": "integer",
                                "example": true
                            },
                            "is_recreational_area": {
                                "description": "If the activity is in the recreational area",
                                "type": "boolean",
                                "example": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "AddressResource": {
                "title": "AddressResource",
                "description": "Address resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "line1": {
                                "description": "The first line of the address",
                                "type": "string"
                            },
                            "city": {
                                "description": "The city of the address",
                                "type": "string"
                            },
                            "postcode": {
                                "description": "The postcode of the address",
                                "type": "string"
                            },
                            "country": {
                                "description": "The country of the address",
                                "type": "string"
                            },
                            "phone": {
                                "description": "The phone of the address",
                                "type": "string"
                            },
                            "email": {
                                "description": "The email of the address",
                                "type": "string"
                            },
                            "latitude": {
                                "description": "The latitude of the address",
                                "type": "number",
                                "format": "float"
                            },
                            "longitude": {
                                "description": "The longitude of the address",
                                "type": "number",
                                "format": "float"
                            },
                            "place_id": {
                                "description": "The place ID of the address",
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ApiResource": {
                "title": "ApiResource",
                "description": "Base API resource",
                "properties": {
                    "statusCode": {
                        "description": "HTTP status code of the API response",
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "AttachmentResource": {
                "title": "AttachmentResource",
                "description": "Spatie Media Library attachment",
                "properties": {
                    "uuid": {
                        "type": "string",
                        "nullable": true
                    },
                    "url": {
                        "type": "string"
                    },
                    "mime": {
                        "type": "string"
                    },
                    "size": {
                        "type": "integer"
                    },
                    "file_name": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "AvailabilityResource": {
                "title": "AvailabilityResource",
                "description": "Availability resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "start_at": {
                                "description": "Start date and time of availability",
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "description": "End date and time of availability (calculated by adding one hour to start_at)",
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "BannerResource": {
                "title": "BannerResource",
                "description": "Banner resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the banner",
                                "type": "integer"
                            },
                            "title": {
                                "description": "Title of the banner",
                                "type": "string"
                            },
                            "url": {
                                "description": "External URL of the banner",
                                "type": "string"
                            },
                            "position": {
                                "description": "Position of the banner",
                                "type": "integer"
                            },
                            "category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "has_linked_object": {
                                "description": "If the banner is linked to an object",
                                "type": "boolean"
                            },
                            "object_type": {
                                "description": "Objet type of the banner",
                                "type": "string"
                            },
                            "object_public_id": {
                                "description": "Public ID of the object linked to the banner",
                                "type": "string"
                            },
                            "object_category_id": {
                                "description": "Public ID of the category of the object linked to the banner",
                                "type": "string"
                            },
                            "object_category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "picture": {
                                "description": "URL for the banner picture",
                                "type": "string",
                                "format": "url"
                            },
                            "start_at": {
                                "description": "Start date and time of the banner",
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "description": "End date and time of the banner",
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CategoryResource": {
                "title": "CategoryResource",
                "description": "Category resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the category",
                                "type": "string"
                            },
                            "name": {
                                "description": "Localized name of the category based on the user's language",
                                "type": "string"
                            },
                            "description": {
                                "description": "Localized description of the category based on the user's language",
                                "type": "string"
                            },
                            "icon": {
                                "description": "Full URL of the category icon, available when the icon is filled",
                                "type": "string"
                            },
                            "availability_stats": {
                                "description": "Total availabilities for the category and its children",
                                "type": "integer"
                            },
                            "availability_stats_per_course_type": {
                                "description": "Total availabilities for the category and its children by course type",
                                "type": "integer"
                            },
                            "group_course": {
                                "description": "True if the category can be a group course",
                                "type": "boolean"
                            },
                            "personal_course": {
                                "description": "True if the category can be a personal course",
                                "type": "boolean"
                            },
                            "wellness_course": {
                                "description": "True if the category can be a wellness course",
                                "type": "boolean"
                            },
                            "service": {
                                "description": "True if the category can be an other service",
                                "type": "boolean"
                            },
                            "activity": {
                                "description": "True if the category can an activity",
                                "type": "boolean"
                            },
                            "product": {
                                "description": "True if the category can be a product",
                                "type": "boolean"
                            },
                            "is_kids_zone": {
                                "description": "If the category is for kids",
                                "type": "boolean",
                                "example": true
                            },
                            "min_age": {
                                "description": "If the category is for kids, the minimum age",
                                "type": "integer",
                                "example": true
                            },
                            "max_age": {
                                "description": "If the category is for kids, the maximum age",
                                "type": "integer",
                                "example": true
                            },
                            "is_recreational_area": {
                                "description": "If the category is in the recreational area",
                                "type": "boolean",
                                "example": true
                            },
                            "place_id": {
                                "description": "Public ID of the place associated to the category",
                                "type": "integer"
                            },
                            "parent": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "children": {
                                "description": "Child categories",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CategoryResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "AiSession": {
                "properties": {
                    "public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "conversation_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "driver": {
                        "type": "string"
                    },
                    "driver_session_id": {
                        "type": "string"
                    },
                    "config": {
                        "type": "object"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Conversation": {
                "properties": {
                    "public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "participant_type": {
                        "type": "string",
                        "enum": [
                            "user",
                            "coach",
                            "place",
                            "employee"
                        ],
                        "nullable": true
                    },
                    "participant_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "participant_name": {
                        "type": "string"
                    },
                    "participant_picture": {
                        "type": "string"
                    },
                    "last_message": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/Message"
                            }
                        ],
                        "nullable": true
                    },
                    "is_muted": {
                        "type": "boolean"
                    },
                    "ai_enabled": {
                        "type": "boolean"
                    },
                    "owner_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Participant": {
                "properties": {
                    "type": {
                        "type": "string",
                        "enum": [
                            "user",
                            "coach",
                            "place"
                        ]
                    },
                    "public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "name": {
                        "type": "string"
                    },
                    "avatar_url": {
                        "type": "string",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "Message": {
                "properties": {
                    "public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "conversation": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "sender": {
                        "$ref": "#/components/schemas/Participant"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "text",
                            "voice",
                            "attachment",
                            "gps"
                        ]
                    },
                    "body": {
                        "type": "string",
                        "nullable": true
                    },
                    "acting_as": {
                        "description": "Employee who authored the message on behalf of the sender (if any)",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "employee"
                                ]
                            },
                            "public_id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "employee_public_id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "name": {
                                "type": "string"
                            },
                            "avatar_url": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object",
                        "nullable": true
                    },
                    "acting_id": {
                        "description": "Public ID of the acting user when present",
                        "type": "string",
                        "format": "uuid",
                        "nullable": true
                    },
                    "attachments": {
                        "type": "array",
                        "items": {
                            "properties": {
                                "mime_type": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                }
                            },
                            "type": "object"
                        }
                    },
                    "gps": {
                        "properties": {
                            "lat": {
                                "type": "number"
                            },
                            "lng": {
                                "type": "number"
                            },
                            "accuracy": {
                                "type": "number",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    },
                    "map_url": {
                        "description": "Static map preview URL",
                        "type": "string",
                        "nullable": true
                    },
                    "my_receipt": {
                        "type": "string",
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "CoachPlanningEntryResource": {
                "title": "CoachPlanningEntryResource",
                "description": "Coach planning entry resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "ID of the planning entry",
                                "type": "integer"
                            },
                            "type": {
                                "description": "Type of the planning entry",
                                "type": "string"
                            },
                            "category": {
                                "description": "Name of the category associated with the planning entry",
                                "type": "string"
                            },
                            "place": {
                                "description": "Name of the place associated with the planning entry",
                                "type": "string"
                            },
                            "attendees": {
                                "description": "List of attendees",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/PlanningEntryAttendeeData"
                                }
                            },
                            "start_at": {
                                "description": "Start date and time of the planning entry",
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "description": "End date and time of the planning entry",
                                "type": "string",
                                "format": "date-time"
                            },
                            "seen_at": {
                                "description": "Date and time when the planning entry was seen",
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CoachResource": {
                "title": "CoachResource",
                "description": "Coach resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the coach",
                                "type": "integer"
                            },
                            "firstname": {
                                "description": "First name of the coach",
                                "type": "string"
                            },
                            "lastname": {
                                "description": "Last name of the coach",
                                "type": "string"
                            },
                            "fullname": {
                                "description": "Full name of the coach",
                                "type": "string"
                            },
                            "gender": {
                                "$ref": "#/components/schemas/Gender"
                            },
                            "description": {
                                "description": "Description of the coach",
                                "type": "string"
                            },
                            "display_in_app": {
                                "description": "Display the coach on the homepage",
                                "type": "boolean"
                            },
                            "chat_activated": {
                                "description": "Activate the chat for the coach",
                                "type": "boolean"
                            },
                            "ai_user_id": {
                                "description": "AI user Id for the Coach",
                                "type": "string"
                            },
                            "ai_assistants": {
                                "description": "List of Coach Assistants",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "ai_assistant_id": {
                                            "description": "Unique ID of the Assistant",
                                            "type": "string"
                                        },
                                        "assistant_name": {
                                            "description": "Name of the Assistant",
                                            "type": "string"
                                        },
                                        "workspace": {
                                            "description": "Workspace details",
                                            "properties": {
                                                "id": {
                                                    "description": "Workspace ID",
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "description": "Workspace Name",
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "bold_ai_user_id": {
                                "description": "Legacy Field for Bold AI Chatbot",
                                "type": "string"
                            },
                            "bold_ai_assistants": {
                                "description": "Legacy Field for Bold AI Chatbot",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "bold_ai_assistant_id": {
                                            "description": "Unique ID of the Assistant",
                                            "type": "string"
                                        },
                                        "assistant_name": {
                                            "description": "Name of the Assistant",
                                            "type": "string"
                                        },
                                        "workspace": {
                                            "description": "Workspace details",
                                            "properties": {
                                                "id": {
                                                    "description": "Workspace ID",
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "description": "Workspace Name",
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "hourly_price": {
                                "description": "Coach Hourly Price",
                                "properties": {
                                    "amount": {
                                        "description": "Total amount in minor units",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "description": "Currency code",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "member_hourly_price": {
                                "description": "Coach Hourly Price for Members",
                                "properties": {
                                    "amount": {
                                        "description": "Total amount in minor units",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "description": "Currency code",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "avatar": {
                                "description": "Avatar details",
                                "properties": {
                                    "large": {
                                        "description": "Large size avatar URL",
                                        "type": "string"
                                    },
                                    "medium": {
                                        "description": "Medium size avatar URL",
                                        "type": "string"
                                    },
                                    "small": {
                                        "description": "Small size avatar URL",
                                        "type": "string"
                                    },
                                    "blurhash": {
                                        "description": "Blurhash value for the avatar",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "categories": {
                                "description": "List of categories associated with the coach",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CategoryResource"
                                }
                            },
                            "places": {
                                "description": "List of places associated with the coach",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/PlaceResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ContactResource": {
                "title": "ContactResource",
                "description": "Contact resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the contact",
                                "type": "string"
                            },
                            "type": {
                                "description": "Type of the contact : coach or place",
                                "type": "string"
                            },
                            "name": {
                                "description": "Name of the Contact",
                                "type": "string"
                            },
                            "ai_user_id": {
                                "description": "AI user Id for the Contact",
                                "type": "string"
                            },
                            "ai_assistants": {
                                "description": "List of Contact Assistants",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "ai_assistant_id": {
                                            "description": "Unique ID of the Assistant",
                                            "type": "string"
                                        },
                                        "assistant_name": {
                                            "description": "Name of the Assistant",
                                            "type": "string"
                                        },
                                        "workspace": {
                                            "description": "Workspace details",
                                            "properties": {
                                                "id": {
                                                    "description": "Workspace ID",
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "description": "Workspace Name",
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "bold_ai_user_id": {
                                "description": "Legacy Field for Bold AI Chatbot",
                                "type": "string"
                            },
                            "bold_ai_assistants": {
                                "description": "Legacy Field for Bold AI Chatbot",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "bold_ai_assistant_id": {
                                            "description": "Unique ID of the Assistant",
                                            "type": "string"
                                        },
                                        "assistant_name": {
                                            "description": "Name of the Assistant",
                                            "type": "string"
                                        },
                                        "workspace": {
                                            "description": "Workspace details",
                                            "properties": {
                                                "id": {
                                                    "description": "Workspace ID",
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "description": "Workspace Name",
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "picture": {
                                "description": "Avatar details",
                                "properties": {
                                    "large": {
                                        "description": "Large size avatar URL",
                                        "type": "string"
                                    },
                                    "medium": {
                                        "description": "Medium size avatar URL",
                                        "type": "string"
                                    },
                                    "small": {
                                        "description": "Small size avatar URL",
                                        "type": "string"
                                    },
                                    "blurhash": {
                                        "description": "Blurhash value for the avatar",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CustomerBookingResource": {
                "title": "CustomerBookingResource",
                "description": "Customer booking resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the booking",
                                "type": "integer"
                            },
                            "type": {
                                "description": "Type of the bookable item",
                                "type": "string"
                            },
                            "name": {
                                "description": "Name of the bookable item",
                                "type": "string"
                            },
                            "category": {
                                "description": "Category of the bookable item",
                                "type": "string"
                            },
                            "can_be_refund": {
                                "description": "Flag indicating whether the booking can be refunded",
                                "type": "boolean"
                            },
                            "is_guest_pass": {
                                "description": "Flag indicating whether the booking is a guest pass",
                                "type": "boolean"
                            },
                            "has_attended": {
                                "description": "Whether the attendee actually participated",
                                "type": "boolean"
                            },
                            "coach_report_sent": {
                                "description": "Whether the coach submitted the attendance report for this booking",
                                "type": "boolean"
                            },
                            "coordinator_report_sent": {
                                "description": "Whether the coordinator submitted the attendance report for this booking",
                                "type": "boolean"
                            },
                            "comments": {
                                "description": "Optional coach comments tied to attendance",
                                "type": "string",
                                "nullable": true
                            },
                            "place": {
                                "description": "Details of the associated place",
                                "properties": {
                                    "id": {
                                        "description": "Public ID of the place",
                                        "type": "integer"
                                    },
                                    "name": {
                                        "description": "Name of the place",
                                        "type": "string"
                                    },
                                    "address": {
                                        "description": "Address of the place",
                                        "type": "string"
                                    },
                                    "picture": {
                                        "description": "Picture details of the place",
                                        "properties": {
                                            "large": {
                                                "description": "Large size picture URL",
                                                "type": "string"
                                            },
                                            "medium": {
                                                "description": "Medium size picture URL",
                                                "type": "string"
                                            },
                                            "blurhash": {
                                                "description": "Blurhash value for the picture",
                                                "type": "string"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            },
                            "coach": {
                                "description": "Details of the associated coach",
                                "properties": {
                                    "id": {
                                        "description": "Public ID of the coach",
                                        "type": "integer"
                                    },
                                    "firstname": {
                                        "description": "First name of the coach",
                                        "type": "string"
                                    },
                                    "lastname": {
                                        "description": "Last name of the coach",
                                        "type": "string"
                                    },
                                    "fullname": {
                                        "description": "Full name of the coach",
                                        "type": "string"
                                    },
                                    "avatar": {
                                        "description": "Avatar details of the coach",
                                        "properties": {
                                            "large": {
                                                "description": "Large size avatar URL",
                                                "type": "string"
                                            },
                                            "medium": {
                                                "description": "Medium size avatar URL",
                                                "type": "string"
                                            },
                                            "small": {
                                                "description": "Small size avatar URL",
                                                "type": "string"
                                            },
                                            "blurhash": {
                                                "description": "Blurhash value for the avatar",
                                                "type": "string"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            },
                            "attendee": {
                                "$ref": "#/components/schemas/UserResource"
                            },
                            "guest": {
                                "$ref": "#/components/schemas/GuestResource"
                            },
                            "service_id": {
                                "description": "Service id",
                                "type": "uuid"
                            },
                            "start_at": {
                                "description": "Start date and time of the booking",
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "description": "End date and time of the booking",
                                "type": "string",
                                "format": "date-time"
                            },
                            "cancelled_at": {
                                "description": "Cancellation date and time if the booking is cancelled",
                                "type": "string",
                                "format": "date-time"
                            },
                            "door_access_code": {
                                "description": "Door access code for the booking if applicable",
                                "type": "string"
                            },
                            "guest_pass_validation_link": {
                                "description": "Guest Pass validation link for QR code generation",
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "DaypassValidationResource": {
                "title": "DaypassValidationResource",
                "description": "Daypass validation payload",
                "required": [
                    "valid",
                    "reason",
                    "place",
                    "firstname",
                    "lastname",
                    "email",
                    "date"
                ],
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/AccessValidationResource"
                    },
                    {
                        "properties": {
                            "valid": {
                                "type": "boolean",
                                "example": true
                            },
                            "reason": {
                                "type": "string",
                                "example": "",
                                "nullable": true
                            },
                            "place": {
                                "type": "string",
                                "example": "Champion Spirit Nassau",
                                "nullable": true
                            },
                            "firstname": {
                                "type": "string",
                                "example": "Jane",
                                "nullable": true
                            },
                            "lastname": {
                                "type": "string",
                                "example": "Smith",
                                "nullable": true
                            },
                            "email": {
                                "type": "string",
                                "format": "email",
                                "example": "jane@example.com",
                                "nullable": true
                            },
                            "date": {
                                "type": "string",
                                "example": "26 August 2025",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "EmployeeListItemResource": {
                "title": "EmployeeListItemResource",
                "description": "Public employee fields for listing",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "firstname": {
                                "type": "string"
                            },
                            "lastname": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            },
                            "employee_type": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "EmployeeResource": {
                "title": "EmployeeListItemResource",
                "description": "Public employee fields for listing",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "firstname": {
                                "type": "string"
                            },
                            "lastname": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            },
                            "employee_type": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "EventResource": {
                "title": "EventResource",
                "description": "Event resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the event",
                                "type": "integer"
                            },
                            "name": {
                                "description": "Name of the event",
                                "type": "string"
                            },
                            "description": {
                                "description": "Description of the event",
                                "type": "string"
                            },
                            "icon": {
                                "description": "URL for the event icon",
                                "type": "string",
                                "format": "url"
                            },
                            "start_at": {
                                "description": "Start date and time of the event",
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "description": "End date and time of the event",
                                "type": "string",
                                "format": "date-time"
                            },
                            "places_left": {
                                "description": "Places left for the event",
                                "type": "integer"
                            },
                            "money_price": {
                                "$ref": ""
                            },
                            "credit_price": {
                                "description": "Credits price of the event",
                                "type": "integer"
                            },
                            "credit_taxes": {
                                "description": "Credits taxes of the event",
                                "type": "number",
                                "format": "float"
                            },
                            "is_kids_zone": {
                                "description": "If the event is for kids",
                                "type": "boolean",
                                "example": true
                            },
                            "min_age": {
                                "description": "If the category is for kids, the minimum age",
                                "type": "integer",
                                "example": true
                            },
                            "max_age": {
                                "description": "If the category is for kids, the maximum age",
                                "type": "integer",
                                "example": true
                            },
                            "is_recreational_area": {
                                "description": "If the event is in the recreational area",
                                "type": "boolean",
                                "example": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "FacilityResource": {
                "title": "FacilityResource",
                "description": "Facility resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the facility",
                                "type": "string"
                            },
                            "name": {
                                "description": "Localized name of the facility based on the user's language",
                                "type": "string"
                            },
                            "icon": {
                                "description": "Full URL of the facility icon, available when the icon is filled",
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "FeaturedCategoryResource": {
                "title": "FeaturedCategoryResource",
                "description": "FeaturedCategory resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the featured category",
                                "type": "integer"
                            },
                            "title": {
                                "description": "Title of the featured category",
                                "type": "string"
                            },
                            "url": {
                                "description": "External URL of the featured category",
                                "type": "string"
                            },
                            "position": {
                                "description": "Position of the featured category",
                                "type": "integer"
                            },
                            "category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "has_linked_object": {
                                "description": "If the featured category is linked to an object",
                                "type": "boolean"
                            },
                            "object_type": {
                                "description": "Objet type of the featured category",
                                "type": "string"
                            },
                            "object_public_id": {
                                "description": "Public ID of the object linked to the featured category",
                                "type": "string"
                            },
                            "object_category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "icon": {
                                "description": "URL for the featured category icon",
                                "type": "string",
                                "format": "url"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "FlexMembershipResource": {
                "title": "FlexMembershipResource",
                "description": "Flex membership resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the flex membership",
                                "type": "string"
                            },
                            "name": {
                                "description": "Translated name",
                                "type": "string"
                            },
                            "description": {
                                "description": "Translated description",
                                "type": "string"
                            },
                            "place_id": {
                                "description": "Public ID of the place",
                                "type": "string"
                            },
                            "membership_pack_id": {
                                "description": "Public ID of the membership pack",
                                "type": "string"
                            },
                            "min_spend": {
                                "description": "Minimum spend information",
                                "properties": {
                                    "amount": {
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "type": "string"
                                    },
                                    "credits": {
                                        "type": "number"
                                    }
                                },
                                "type": "object"
                            },
                            "price": {
                                "description": "Total price (pack + min spend)",
                                "properties": {
                                    "amount": {
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "is_active": {
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "GroupCourseResource": {
                "title": "GroupCourseResource",
                "description": "Group course resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the group course",
                                "type": "integer"
                            },
                            "category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "description": {
                                "description": "Description of the group course",
                                "type": "string"
                            },
                            "start_at": {
                                "description": "Start date and time of the group course",
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "description": "End date and time of the group course",
                                "type": "string",
                                "format": "date-time"
                            },
                            "coaches": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CoachResource"
                                }
                            },
                            "free_access": {
                                "description": "If the course gives free access to the gym",
                                "type": "boolean"
                            },
                            "money_price": {
                                "$ref": ""
                            },
                            "credit_price": {
                                "description": "Credits price of the course",
                                "type": "number",
                                "format": "float"
                            },
                            "credit_taxes": {
                                "description": "Credits taxes of the group course",
                                "type": "number",
                                "format": "float"
                            },
                            "is_kids_zone": {
                                "description": "If the course is for kids",
                                "type": "boolean",
                                "example": true
                            },
                            "min_age": {
                                "description": "If the category is for kids, the minimum age",
                                "type": "integer",
                                "example": true
                            },
                            "max_age": {
                                "description": "If the category is for kids, the maximum age",
                                "type": "integer",
                                "example": true
                            },
                            "is_recreational_area": {
                                "description": "If the course is in the recreational area",
                                "type": "boolean",
                                "example": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "GuestInvitationResource": {
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "inviter_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "inviter_name": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "prospect",
                            "member",
                            "third_party",
                            "other"
                        ]
                    },
                    "company": {
                        "type": "string",
                        "nullable": true
                    },
                    "reason": {
                        "type": "string",
                        "nullable": true
                    },
                    "scheduled_arrival_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "start_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "sent_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "guest": {
                        "properties": {
                            "email": {
                                "type": "string",
                                "format": "email"
                            },
                            "firstname": {
                                "type": "string"
                            },
                            "lastname": {
                                "type": "string"
                            },
                            "phone": {
                                "type": "string",
                                "nullable": true
                            },
                            "comments": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    },
                    "place": {
                        "properties": {
                            "public_id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "name": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "access_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "access_logs_count": {
                        "type": "integer",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "GuestPassValidationResource": {
                "title": "GuestPassValidationResource",
                "description": "Guest pass validation payload",
                "required": [
                    "valid",
                    "reason",
                    "place",
                    "firstname",
                    "lastname",
                    "idnumber",
                    "email",
                    "date",
                    "member"
                ],
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/AccessValidationResource"
                    },
                    {
                        "properties": {
                            "valid": {
                                "type": "boolean",
                                "example": true
                            },
                            "reason": {
                                "type": "string",
                                "example": "",
                                "nullable": true
                            },
                            "place": {
                                "type": "string",
                                "example": "Champion Spirit Paris",
                                "nullable": true
                            },
                            "member": {
                                "type": "string",
                                "example": "John Doe",
                                "nullable": true
                            },
                            "firstname": {
                                "type": "string",
                                "example": "Jane",
                                "nullable": true
                            },
                            "lastname": {
                                "type": "string",
                                "example": "Smith",
                                "nullable": true
                            },
                            "idnumber": {
                                "type": "string",
                                "example": "AB123456",
                                "nullable": true
                            },
                            "email": {
                                "type": "string",
                                "format": "email",
                                "example": "jane@example.com",
                                "nullable": true
                            },
                            "date": {
                                "type": "string",
                                "example": "26 August 2025",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "GuestResource": {
                "title": "GuestResource",
                "description": "Guest resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the Guest",
                                "type": "integer"
                            },
                            "email": {
                                "description": "Email of the Guest",
                                "type": "string"
                            },
                            "firstname": {
                                "description": "Firstname of the Guest",
                                "type": "string"
                            },
                            "Lastname": {
                                "description": "Lastname of the Guest",
                                "type": "string"
                            },
                            "phone": {
                                "description": "Phone of the Guest",
                                "type": "string"
                            },
                            "comments": {
                                "description": "Comments on the guest",
                                "type": "string"
                            },
                            "is_member": {
                                "description": "If this guest is also a member",
                                "type": "boolean"
                            },
                            "bookings": {
                                "description": "Array of booking details",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CustomerBookingResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CustomerHotelReservationResource": {
                "title": "CustomerHotelReservationResource",
                "description": "Customer-facing reservation detail",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "hotel_name": {
                                "type": "string"
                            },
                            "room_type": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "check_in": {
                                "type": "string",
                                "format": "date"
                            },
                            "check_out": {
                                "type": "string",
                                "format": "date"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelAvailabilityResource": {
                "title": "HotelAvailabilityResource",
                "description": "Room type availability with pricing",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "room_type_id": {
                                "type": "string"
                            },
                            "room_type_name": {
                                "type": "string"
                            },
                            "total_rooms": {
                                "type": "integer"
                            },
                            "available_rooms": {
                                "type": "integer"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelChannelLogResource": {
                "title": "HotelChannelLogResource",
                "description": "Channel sync log entry",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "action": {
                                "type": "string"
                            },
                            "success": {
                                "type": "boolean"
                            },
                            "error": {
                                "type": "string",
                                "nullable": true
                            },
                            "channel": {
                                "type": "string"
                            },
                            "created_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelChannelMappingResource": {
                "title": "HotelChannelMappingResource",
                "description": "Channel mapping with sync status",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "channel": {
                                "type": "string"
                            },
                            "room_type": {
                                "type": "object"
                            },
                            "sync_rates": {
                                "type": "boolean"
                            },
                            "sync_availability": {
                                "type": "boolean"
                            },
                            "sync_reservations": {
                                "type": "boolean"
                            },
                            "last_synced_at": {
                                "type": "string",
                                "format": "date-time",
                                "nullable": true
                            },
                            "is_active": {
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelExtraResource": {
                "title": "HotelExtraResource",
                "description": "Hotel extra service resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "type": {
                                "type": "string"
                            },
                            "price": {
                                "type": "object"
                            },
                            "member_price": {
                                "type": "object",
                                "nullable": true
                            },
                            "is_active": {
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelFolioResource": {
                "title": "HotelFolioResource",
                "description": "Folio breakdown with room charges and extras",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "reservation_id": {
                                "type": "string"
                            },
                            "room_charges": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "extras_charges": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelHousekeepingDashboardResource": {
                "title": "HotelHousekeepingDashboardResource",
                "description": "Housekeeping dashboard with summary and rooms",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "summary": {
                                "type": "object"
                            },
                            "rooms": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelHousekeepingTaskResource": {
                "title": "HotelHousekeepingTaskResource",
                "description": "Housekeeping task with priority info",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "room_id": {
                                "type": "string"
                            },
                            "room_number": {
                                "type": "string"
                            },
                            "floor": {
                                "type": "string",
                                "nullable": true
                            },
                            "room_type": {
                                "type": "string"
                            },
                            "housekeeping_status": {
                                "type": "string"
                            },
                            "priority": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelReservationExtraResource": {
                "title": "HotelReservationExtraResource",
                "description": "Extra charge on a hotel reservation",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "extra": {
                                "type": "object"
                            },
                            "quantity": {
                                "type": "integer"
                            },
                            "unit_price": {
                                "type": "object"
                            },
                            "total_price": {
                                "type": "object"
                            },
                            "billed_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelReservationResource": {
                "title": "HotelReservationResource",
                "description": "Full reservation detail for hotel manager",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "check_in": {
                                "type": "string",
                                "format": "date"
                            },
                            "check_out": {
                                "type": "string",
                                "format": "date"
                            },
                            "nights": {
                                "type": "integer"
                            },
                            "adults": {
                                "type": "integer"
                            },
                            "children": {
                                "type": "integer"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelReservationSummaryResource": {
                "title": "HotelReservationSummaryResource",
                "description": "Compact reservation for lists",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "guest_name": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "check_in": {
                                "type": "string",
                                "format": "date"
                            },
                            "check_out": {
                                "type": "string",
                                "format": "date"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelManagerHotelResource": {
                "title": "HotelManagerHotelResource",
                "description": "Hotel resource for hotel manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "slug": {
                                "type": "string"
                            },
                            "stars": {
                                "type": "integer",
                                "nullable": true
                            },
                            "check_in_time": {
                                "type": "string"
                            },
                            "check_out_time": {
                                "type": "string"
                            },
                            "contact_email": {
                                "type": "string",
                                "nullable": true
                            },
                            "contact_phone": {
                                "type": "string",
                                "nullable": true
                            },
                            "policies": {
                                "type": "object",
                                "nullable": true
                            },
                            "free_cancellation_hours": {
                                "type": "integer"
                            },
                            "cancellation_penalty_percentage": {
                                "type": "integer"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "logo_url": {
                                "type": "string",
                                "nullable": true
                            },
                            "photos": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelManagerRoomResource": {
                "title": "HotelManagerRoomResource",
                "description": "Room resource for hotel manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "number": {
                                "type": "string"
                            },
                            "floor": {
                                "type": "string",
                                "nullable": true
                            },
                            "status": {
                                "type": "string"
                            },
                            "housekeeping_status": {
                                "type": "string"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "notes": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelManagerRoomTypeResource": {
                "title": "HotelManagerRoomTypeResource",
                "description": "Room type resource for hotel manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "slug": {
                                "type": "string"
                            },
                            "bed_type": {
                                "type": "string"
                            },
                            "max_occupancy": {
                                "type": "integer"
                            },
                            "max_adults": {
                                "type": "integer"
                            },
                            "max_children": {
                                "type": "integer"
                            },
                            "amenities": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "surface_sqm": {
                                "type": "integer",
                                "nullable": true
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "sort_order": {
                                "type": "integer"
                            },
                            "total_rooms": {
                                "type": "integer"
                            },
                            "available_rooms": {
                                "type": "integer"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelRoomTypeSummaryResource": {
                "title": "HotelRoomTypeSummaryResource",
                "description": "Compact room type resource for customer view",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "bed_type": {
                                "type": "string"
                            },
                            "max_occupancy": {
                                "type": "integer"
                            },
                            "amenities": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "surface_sqm": {
                                "type": "integer",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HotelSeasonalRateResource": {
                "title": "HotelSeasonalRateResource",
                "description": "Seasonal rate resource for hotel manager",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "room_type_id": {
                                "type": "string"
                            },
                            "room_type_name": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "season": {
                                "type": "string"
                            },
                            "start_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "end_date": {
                                "type": "string",
                                "format": "date"
                            },
                            "min_stay": {
                                "type": "integer"
                            },
                            "max_stay": {
                                "type": "integer",
                                "nullable": true
                            },
                            "is_active": {
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "KidResource": {
                "title": "KidResource",
                "description": "Kid resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the Kid",
                                "type": "integer"
                            },
                            "parent": {
                                "$ref": "#/components/schemas/UserResource"
                            },
                            "family": {
                                "description": "Family associated with the kid, if any",
                                "type": "string"
                            },
                            "name": {
                                "description": "Name of the Kid",
                                "type": "string"
                            },
                            "dob": {
                                "description": "Date of Birth of the Kid",
                                "type": "string",
                                "format": "date"
                            },
                            "email": {
                                "description": "Email of the Kid",
                                "type": "string"
                            },
                            "phone": {
                                "description": "Phone of the Kid",
                                "type": "string"
                            },
                            "comments": {
                                "description": "Comments on the Kid",
                                "type": "string"
                            },
                            "is_member": {
                                "description": "If this kid parent or family are members",
                                "type": "boolean"
                            },
                            "bookings": {
                                "description": "Array of booking details",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CustomerBookingResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "NotificationResource": {
                "title": "NotificationResource",
                "description": "Notification resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the Notification",
                                "type": "integer"
                            },
                            "title": {
                                "description": "Title of the Notification",
                                "type": "string"
                            },
                            "message": {
                                "description": "Message of the Notification",
                                "type": "string"
                            },
                            "type": {
                                "description": "Type of the Notification",
                                "type": "string"
                            },
                            "is_read": {
                                "description": "If the Notification is read",
                                "type": "boolean"
                            },
                            "timestamp": {
                                "description": "Time of the notification",
                                "type": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "OrderItemResource": {
                "title": "OrderItemResource",
                "description": "Order Item resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the order item",
                                "type": "integer"
                            },
                            "orderable_id": {
                                "description": "Public ID of the orderable item",
                                "type": "integer"
                            },
                            "money_price": {
                                "description": "Money details of the item",
                                "properties": {
                                    "amount": {
                                        "description": "Amount in minor units",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "description": "Currency code",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "credits_price": {
                                "description": "Credits price of the order item",
                                "type": "number",
                                "format": "float"
                            },
                            "credits_taxes": {
                                "description": "Credits taxes of the order item",
                                "type": "number",
                                "format": "float"
                            },
                            "type": {
                                "description": "Type of the item: place, pack, personal_course, wellness_course, group_course, activity, event, service",
                                "type": "string"
                            },
                            "type_label": {
                                "description": "Label of the type of the item",
                                "type": "string"
                            },
                            "name": {
                                "description": "Name of the item",
                                "type": "string"
                            },
                            "booking": {
                                "$ref": "#/components/schemas/CustomerBookingResource"
                            },
                            "guest": {
                                "$ref": "#/components/schemas/GuestResource"
                            },
                            "is_gift": {
                                "description": "Indicates if the order item is a gift (e.g. not paid for)",
                                "type": "boolean"
                            },
                            "is_guest": {
                                "description": "Indicates if the order item is for a guest",
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "OrderResource": {
                "title": "OrderResource",
                "description": "Order resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the order",
                                "type": "integer"
                            },
                            "created_at": {
                                "description": "Creation date and time of the order",
                                "type": "string",
                                "format": "date-time"
                            },
                            "can_be_paid": {
                                "description": "If the order can still be paid from the mobile app",
                                "type": "boolean"
                            },
                            "money_total": {
                                "description": "Total money details of the order",
                                "properties": {
                                    "amount": {
                                        "description": "Total amount in minor units",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "description": "Currency code",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "credits_total": {
                                "description": "Total credits of the order",
                                "type": "number",
                                "format": "float"
                            },
                            "taxes_total": {
                                "description": "Total taxes (in credits) of the order",
                                "type": "number",
                                "format": "float"
                            },
                            "payment_provider": {
                                "description": "Payment Provider Code : stripe, wallet, nowpayments",
                                "type": "string"
                            },
                            "payment_intent": {
                                "description": "Payment Intent reference : url, payment ID",
                                "type": "string"
                            },
                            "status": {
                                "description": "Order Status : 10 = Pending ; 20 = Paid",
                                "type": "string"
                            },
                            "status_label": {
                                "description": "Order Status Label",
                                "type": "string"
                            },
                            "place_id": {
                                "description": "ID of the Place linked to the Order",
                                "type": "string"
                            },
                            "items": {
                                "description": "List of items associated with the order",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/OrderItemResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "PackResource": {
                "title": "PackResource",
                "description": "Pack resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the pack",
                                "type": "integer"
                            },
                            "name": {
                                "description": "Translated name of the pack",
                                "type": "string"
                            },
                            "credits": {
                                "description": "Number of credits in the pack",
                                "type": "integer"
                            },
                            "places": {
                                "description": "Public ID of the places where the pack is available",
                                "type": "array",
                                "items": {}
                            },
                            "price": {
                                "description": "Price details of the pack",
                                "properties": {
                                    "amount": {
                                        "description": "Price amount",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "description": "Currency code",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "PersonListItemResource": {
                "title": "PersonListItemResource",
                "description": "Unified list item for people (customers, staff, guests)",
                "required": [
                    "id",
                    "firstname",
                    "lastname",
                    "is_member",
                    "email",
                    "avatar",
                    "type"
                ],
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string",
                                "format": "uuid",
                                "example": "11111111-2222-3333-4444-555555555555"
                            },
                            "firstname": {
                                "type": "string",
                                "example": "John"
                            },
                            "lastname": {
                                "type": "string",
                                "example": "Doe"
                            },
                            "is_member": {
                                "type": "boolean",
                                "example": true
                            },
                            "email": {
                                "type": "string",
                                "format": "email",
                                "example": "john@example.com",
                                "nullable": true
                            },
                            "phone": {
                                "type": "string",
                                "example": "+33612345678",
                                "nullable": true
                            },
                            "credits_balance": {
                                "description": "Only present for users.",
                                "type": "number",
                                "format": "float",
                                "example": 120.5,
                                "nullable": true
                            },
                            "daypass_balance": {
                                "description": "Only present for users.",
                                "type": "integer",
                                "example": 3,
                                "nullable": true
                            },
                            "guest_pass_balance": {
                                "description": "Only present for users.",
                                "type": "integer",
                                "example": 1,
                                "nullable": true
                            },
                            "avatar": {
                                "required": [
                                    "large",
                                    "medium",
                                    "small",
                                    "blurhash"
                                ],
                                "properties": {
                                    "large": {
                                        "type": "string",
                                        "format": "uri",
                                        "example": "https://api.championspirit.com/storage/media/large.jpg"
                                    },
                                    "medium": {
                                        "type": "string",
                                        "format": "uri",
                                        "example": "https://api.championspirit.com/storage/media/medium.jpg"
                                    },
                                    "small": {
                                        "type": "string",
                                        "format": "uri",
                                        "example": "https://api.championspirit.com/storage/media/small.jpg"
                                    },
                                    "blurhash": {
                                        "type": "string",
                                        "example": "",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            },
                            "type": {
                                "type": "string",
                                "enum": [
                                    "guest",
                                    "member",
                                    "non-member",
                                    "employee",
                                    "coach"
                                ],
                                "example": "member"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "PersonalCourseResource": {
                "title": "PersonalCourseResource",
                "description": "Personal course resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the personal course",
                                "type": "integer"
                            },
                            "category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "description": {
                                "description": "Description of the personal course",
                                "type": "string"
                            },
                            "capacity": {
                                "description": "Capacity of the personal course",
                                "type": "integer"
                            },
                            "duration": {
                                "description": "Duration of the personal course",
                                "type": "integer"
                            },
                            "slots": {
                                "description": "Array of slots",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "start_at": {
                                            "description": "Start date and time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "end_at": {
                                            "description": "End date and time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "places_left": {
                                            "description": "Places left for the slot",
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "coach": {
                                "$ref": "#/components/schemas/CoachResource"
                            },
                            "money_price": {
                                "$ref": ""
                            },
                            "credit_price": {
                                "description": "Credits price of the personal course",
                                "type": "number",
                                "format": "float"
                            },
                            "credit_taxes": {
                                "description": "Credits taxes of the personal course",
                                "type": "number",
                                "format": "float"
                            },
                            "free_access": {
                                "description": "If the course gives free access to the gym",
                                "type": "boolean"
                            },
                            "is_kids_zone": {
                                "description": "If the course is for kids",
                                "type": "boolean",
                                "example": true
                            },
                            "min_age": {
                                "description": "If the category is for kids, the minimum age",
                                "type": "integer",
                                "example": true
                            },
                            "max_age": {
                                "description": "If the category is for kids, the maximum age",
                                "type": "integer",
                                "example": true
                            },
                            "is_recreational_area": {
                                "description": "If the course is in the recreational area",
                                "type": "boolean",
                                "example": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "PlaceAccessLogResource": {
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "date": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "arrived",
                            "left",
                            "not_arrived"
                        ]
                    },
                    "firstname": {
                        "type": "string",
                        "nullable": true
                    },
                    "lastname": {
                        "type": "string",
                        "nullable": true
                    },
                    "email": {
                        "type": "string",
                        "nullable": true
                    },
                    "id_number": {
                        "type": "string",
                        "nullable": true
                    },
                    "comments": {
                        "type": "string",
                        "nullable": true
                    },
                    "reason": {
                        "type": "string",
                        "nullable": true
                    },
                    "access_granted": {
                        "type": "boolean"
                    },
                    "is_guest_pass": {
                        "type": "boolean"
                    },
                    "user_type": {
                        "description": "Resolved user type for this access log",
                        "type": "string",
                        "enum": [
                            "coach",
                            "employee",
                            "member",
                            "non_member",
                            "guest"
                        ]
                    },
                    "invitation_type": {
                        "description": "restaurant when linked to a pre-arrival form, invitee when linked to a guest invitation",
                        "type": "string",
                        "enum": [
                            "restaurant",
                            "invitee"
                        ],
                        "nullable": true
                    },
                    "user": {
                        "properties": {
                            "id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "firstname": {
                                "type": "string"
                            },
                            "lastname": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            }
                        },
                        "type": "object",
                        "nullable": true
                    },
                    "guest": {
                        "properties": {
                            "id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "firstname": {
                                "type": "string"
                            },
                            "lastname": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            }
                        },
                        "type": "object",
                        "nullable": true
                    },
                    "booking_id": {
                        "type": "string",
                        "format": "uuid",
                        "nullable": true
                    },
                    "attachments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AttachmentResource"
                        }
                    }
                },
                "type": "object"
            },
            "PlaceChatbotResource": {
                "title": "PlaceChatbotResource",
                "description": "Place resource for chatbot",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasOpeningHours"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the place",
                                "type": "integer"
                            },
                            "name": {
                                "description": "Name of the place",
                                "type": "string"
                            },
                            "description": {
                                "description": "Description of the place",
                                "type": "string"
                            },
                            "address": {
                                "$ref": "#/components/schemas/AddressResource"
                            },
                            "picture": {
                                "description": "Picture details",
                                "properties": {
                                    "large": {
                                        "description": "URL for the large-sized picture",
                                        "type": "string"
                                    },
                                    "medium": {
                                        "description": "URL for the medium-sized picture",
                                        "type": "string"
                                    },
                                    "blurhash": {
                                        "description": "Blurhash for the picture",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "opening_hours": {
                                "description": "Array of opening hours",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "day": {
                                            "description": "Day of the week",
                                            "type": "string"
                                        },
                                        "start_time": {
                                            "description": "Start time",
                                            "type": "string",
                                            "format": "time"
                                        },
                                        "end_time": {
                                            "description": "End time",
                                            "type": "string",
                                            "format": "time"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "timezone": {
                                "description": "Timezone of the place",
                                "type": "string"
                            },
                            "courses_type": {
                                "description": "Array of course types",
                                "type": "array",
                                "items": {}
                            },
                            "coaches": {
                                "description": "Array of coach details",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CoachResource"
                                }
                            },
                            "daypass_price": {
                                "description": "Daypass price details",
                                "type": "object"
                            },
                            "guest_daypass_price": {
                                "description": "Guest Daypass price details",
                                "type": "object"
                            },
                            "vat_inclusive": {
                                "description": "Price VAT Inclusive",
                                "type": "boolean"
                            },
                            "display_our_courses": {
                                "description": "Display the Our Courses title in the Mobile Application",
                                "type": "boolean"
                            },
                            "vat": {
                                "description": "VAT Amount",
                                "type": "number",
                                "format": "float"
                            },
                            "currency": {
                                "description": "Currency Code : eg. EUR or USD",
                                "type": "string"
                            },
                            "credit_to_currency": {
                                "description": "Conversion rate from credits to currency",
                                "type": "number",
                                "format": "float"
                            },
                            "enable_daypass": {
                                "description": "Activate daypass access",
                                "type": "boolean"
                            },
                            "guest_passes": {
                                "description": "Guest Passes ability for the place",
                                "type": "boolean"
                            },
                            "exceptional_closing_dates": {
                                "description": "Exceptional closing dates",
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "PlaceResource": {
                "title": "PlaceResource",
                "description": "Place resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasOpeningHours"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the place",
                                "type": "integer"
                            },
                            "name": {
                                "description": "Name of the place",
                                "type": "string"
                            },
                            "description": {
                                "description": "Description of the place",
                                "type": "string"
                            },
                            "address": {
                                "$ref": "#/components/schemas/AddressResource"
                            },
                            "ai_user_id": {
                                "description": "AI user Id for the Place",
                                "type": "string"
                            },
                            "ai_assistants": {
                                "description": "List of Coach Assistants",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "ai_assistant_id": {
                                            "description": "Unique ID of the Assistant",
                                            "type": "string"
                                        },
                                        "assistant_name": {
                                            "description": "Name of the Assistant",
                                            "type": "string"
                                        },
                                        "workspace": {
                                            "description": "Workspace details",
                                            "properties": {
                                                "id": {
                                                    "description": "Workspace ID",
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "description": "Workspace Name",
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "bold_ai_user_id": {
                                "description": "Legacy Field for Bold AI Chatbot",
                                "type": "string"
                            },
                            "bold_ai_assistants": {
                                "description": "Legacy Field for Bold AI Chatbot",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "bold_ai_assistant_id": {
                                            "description": "Unique ID of the Assistant",
                                            "type": "string"
                                        },
                                        "assistant_name": {
                                            "description": "Name of the Assistant",
                                            "type": "string"
                                        },
                                        "workspace": {
                                            "description": "Workspace details",
                                            "properties": {
                                                "id": {
                                                    "description": "Workspace ID",
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "description": "Workspace Name",
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "picture": {
                                "description": "Picture details",
                                "properties": {
                                    "large": {
                                        "description": "URL for the large-sized picture",
                                        "type": "string"
                                    },
                                    "medium": {
                                        "description": "URL for the medium-sized picture",
                                        "type": "string"
                                    },
                                    "blurhash": {
                                        "description": "Blurhash for the picture",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "opening_hours": {
                                "description": "Array of opening hours",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "day": {
                                            "description": "Day of the week",
                                            "type": "string"
                                        },
                                        "start_time": {
                                            "description": "Start time",
                                            "type": "string",
                                            "format": "time"
                                        },
                                        "end_time": {
                                            "description": "End time",
                                            "type": "string",
                                            "format": "time"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "homepage_configuration": {
                                "description": "Array of homepage configuration",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "block": {
                                            "description": "Block",
                                            "type": "string"
                                        },
                                        "display": {
                                            "description": "Display this block or not",
                                            "type": "boolean"
                                        },
                                        "label": {
                                            "description": "Label to display in the app (French)",
                                            "type": "text"
                                        },
                                        "position": {
                                            "description": "Position of this block",
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "booking_configuration": {
                                "description": "Array of booking page configuration",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "block": {
                                            "description": "Block",
                                            "type": "string"
                                        },
                                        "display": {
                                            "description": "Display this block or not",
                                            "type": "boolean"
                                        },
                                        "label": {
                                            "description": "Label to display in the app (French)",
                                            "type": "text"
                                        },
                                        "description": {
                                            "description": "Description to display in the app (French)",
                                            "type": "text"
                                        },
                                        "icon": {
                                            "description": "URL of the icon to display",
                                            "type": "text"
                                        },
                                        "position": {
                                            "description": "Position of this block",
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "timezone": {
                                "description": "Timezone of the place",
                                "type": "string"
                            },
                            "chat_activated": {
                                "description": "If the chat services are activated for this Gym",
                                "type": "boolean"
                            },
                            "enable_recreational_area": {
                                "description": "If the recreational area is activated for this Gym",
                                "type": "boolean"
                            },
                            "homepage_background": {
                                "description": "URL to the background image for the homepage of the app",
                                "type": "string"
                            },
                            "homepage_section_first_font_color": {
                                "description": "Font Color for the first section of the mobile Homepage",
                                "type": "string"
                            },
                            "homepage_section_second_font_color": {
                                "description": "Font Color for the second section of the mobile Homepage",
                                "type": "string"
                            },
                            "homepage_book_button_color": {
                                "description": "Color for booking plus button the mobile Homepage",
                                "type": "string"
                            },
                            "courses_type": {
                                "description": "Array of course types",
                                "type": "array",
                                "items": {}
                            },
                            "coaches": {
                                "description": "Array of coach details",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CoachResource"
                                }
                            },
                            "daypass_price": {
                                "description": "Daypass price details",
                                "type": "object"
                            },
                            "guest_daypass_price": {
                                "description": "Guest Daypass price details",
                                "type": "object"
                            },
                            "vat_inclusive": {
                                "description": "Price VAT Inclusive",
                                "type": "boolean"
                            },
                            "display_our_courses": {
                                "description": "Display the Our Courses title in the Mobile Application",
                                "type": "boolean"
                            },
                            "vat": {
                                "description": "VAT Amount",
                                "type": "number",
                                "format": "float"
                            },
                            "currency": {
                                "description": "Currency Code : eg. EUR or USD",
                                "type": "string"
                            },
                            "credit_to_currency": {
                                "description": "Conversion rate from credits to currency",
                                "type": "number",
                                "format": "float"
                            },
                            "enable_daypass": {
                                "description": "Activate daypass access",
                                "type": "boolean"
                            },
                            "enable_flex_membership": {
                                "description": "Activate Flex Membership access",
                                "type": "boolean"
                            },
                            "guest_passes": {
                                "description": "Guest Passes ability for the place",
                                "type": "boolean"
                            },
                            "exceptional_closing_dates": {
                                "description": "Exceptional closing dates",
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "physical_assessment_category": {
                                "description": "Physical Assessment Category Id",
                                "type": "string"
                            },
                            "order_validity": {
                                "description": "Number of minutes the order shall be valid to process a payment",
                                "type": "integer"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ProductResource": {
                "title": "ProductResource",
                "description": "Product resource payload returned by the API",
                "required": [
                    "id",
                    "name",
                    "can_buy",
                    "can_rent"
                ],
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string",
                                "example": "prd_9QxA7K"
                            },
                            "category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "name": {
                                "type": "string",
                                "example": "Kettlebell 24 kg"
                            },
                            "can_buy": {
                                "type": "boolean",
                                "example": true
                            },
                            "can_rent": {
                                "type": "boolean",
                                "example": false
                            },
                            "picture": {
                                "description": "DEPRECATED: main product image (large conversion). Use 'pictures' instead.",
                                "type": "string",
                                "format": "uri",
                                "example": "https://api.example.com/storage/medialibrary/abcdef/large.jpg",
                                "nullable": true
                            },
                            "pictures": {
                                "description": "Ordered gallery of product images with conversions",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "large": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "medium": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "small": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "original": {
                                            "type": "string",
                                            "format": "uri"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "variations": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/ProductVariationResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ProductVariationResource": {
                "title": "ProductVariationResource",
                "description": "Product variation resource payload",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "integer",
                                "format": "int64",
                                "example": 501
                            },
                            "sale_money_price": {
                                "properties": {
                                    "amount": {
                                        "description": "Minor units",
                                        "type": "integer",
                                        "example": 3499
                                    },
                                    "currency": {
                                        "type": "string",
                                        "example": "EUR"
                                    }
                                },
                                "type": "object",
                                "nullable": true
                            },
                            "sale_credit_price": {
                                "description": "Credits price of the purchase",
                                "type": "number",
                                "format": "float"
                            },
                            "sale_credit_taxes": {
                                "description": "Credits taxes of purchase",
                                "type": "number",
                                "format": "float"
                            },
                            "rent_money_price": {
                                "properties": {
                                    "amount": {
                                        "type": "integer",
                                        "example": 999
                                    },
                                    "currency": {
                                        "type": "string",
                                        "example": "EUR"
                                    }
                                },
                                "type": "object",
                                "nullable": true
                            },
                            "rent_credit_price": {
                                "description": "Credits price of rental",
                                "type": "number",
                                "format": "float"
                            },
                            "rent_credit_taxes": {
                                "description": "Credits taxes of the rental",
                                "type": "number",
                                "format": "float"
                            },
                            "specifications": {
                                "description": "Free-form key/value specs for the variation",
                                "type": "object",
                                "example": {
                                    "color": "black",
                                    "size": "M"
                                },
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ProtocolResource": {
                "title": "ProtocolResource",
                "description": "Protocol resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID",
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "duration_days": {
                                "type": "integer"
                            },
                            "start_date": {
                                "type": "string",
                                "format": "date",
                                "nullable": true
                            },
                            "end_date": {
                                "type": "string",
                                "format": "date",
                                "nullable": true
                            },
                            "cover": {
                                "description": "URL of the cover image",
                                "type": "string",
                                "nullable": true
                            },
                            "free_access": {
                                "type": "boolean"
                            },
                            "money_price": {
                                "type": "object"
                            },
                            "credit_price": {
                                "type": "number",
                                "format": "float",
                                "nullable": true
                            },
                            "credit_taxes": {
                                "type": "number",
                                "format": "float",
                                "nullable": true
                            },
                            "items": {
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "day_offset": {
                                            "type": "integer"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "start_time": {
                                            "type": "string",
                                            "example": "09:00"
                                        },
                                        "end_time": {
                                            "type": "string",
                                            "example": "10:00"
                                        },
                                        "bookable_type": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "bookable_id": {
                                            "description": "Public ID of the bookable",
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "coach_id": {
                                            "description": "Public ID of the coach override",
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "custom_title": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "custom_description": {
                                            "type": "string",
                                            "nullable": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ReportResource": {
                "title": "ReportResource",
                "description": "Public Report representation",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Report"
                    },
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    }
                ]
            },
            "AvailableSlotResource": {
                "title": "AvailableSlotResource",
                "description": "Available time slot for reservation",
                "properties": {
                    "time": {
                        "type": "string"
                    },
                    "tables_available": {
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "CustomerMenuItemResource": {
                "title": "CustomerMenuItemResource",
                "description": "Customer-facing menu item with allergens and dietary info",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "price": {
                                "type": "object"
                            },
                            "allergens": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "dietary_labels": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "preparation_time": {
                                "type": "integer",
                                "nullable": true
                            },
                            "calories": {
                                "type": "integer",
                                "nullable": true
                            },
                            "image_url": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CustomerMenuResource": {
                "title": "CustomerMenuResource",
                "description": "Customer-facing menu resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "date": {
                                "type": "string",
                                "format": "date"
                            },
                            "service_periods": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "sections": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CustomerPreorderResource": {
                "title": "CustomerPreorderResource",
                "description": "Pre-order resource for customer context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "items": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "total": {
                                "type": "object"
                            },
                            "created_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CustomerReservationResource": {
                "title": "CustomerReservationResource",
                "description": "Customer-facing reservation resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "restaurant_name": {
                                "type": "string"
                            },
                            "date": {
                                "type": "string",
                                "format": "date"
                            },
                            "start_at": {
                                "type": "string"
                            },
                            "end_at": {
                                "type": "string"
                            },
                            "party_size": {
                                "type": "integer"
                            },
                            "status": {
                                "type": "string"
                            },
                            "special_requests": {
                                "type": "string",
                                "nullable": true
                            },
                            "can_cancel": {
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CustomerRestaurantResource": {
                "title": "CustomerRestaurantResource",
                "description": "Customer-facing restaurant resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "slug": {
                                "type": "string"
                            },
                            "opening_hours": {
                                "type": "object"
                            },
                            "service_periods": {
                                "type": "object"
                            },
                            "max_covers": {
                                "type": "integer"
                            },
                            "accepts_preorders": {
                                "type": "boolean"
                            },
                            "image_url": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantCartItemResource": {
                "title": "RestaurantCartItemResource",
                "description": "Cart item resource for restaurant manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "menu_item": {
                                "type": "object"
                            },
                            "quantity": {
                                "type": "integer"
                            },
                            "unit_price": {
                                "type": "object"
                            },
                            "total_price": {
                                "type": "object"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantCartResource": {
                "title": "RestaurantCartResource",
                "description": "Cart resource for restaurant manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "customer": {
                                "type": "object",
                                "nullable": true
                            },
                            "items_count": {
                                "type": "integer"
                            },
                            "table_ids": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "total": {
                                "type": "object"
                            },
                            "tip": {
                                "type": "object",
                                "nullable": true
                            },
                            "created_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ExceptionalClosureResource": {
                "title": "ExceptionalClosureResource",
                "description": "Restaurant exceptional closure resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "date": {
                                "type": "string",
                                "format": "date"
                            },
                            "reason": {
                                "type": "string",
                                "nullable": true
                            },
                            "full_day": {
                                "type": "boolean"
                            },
                            "closed_from": {
                                "type": "string",
                                "nullable": true
                            },
                            "closed_to": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "MenuCategoryResource": {
                "title": "MenuCategoryResource",
                "description": "Restaurant menu category resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "type": {
                                "type": "string"
                            },
                            "parent_id": {
                                "type": "string",
                                "nullable": true
                            },
                            "sort_order": {
                                "type": "integer"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "children_count": {
                                "type": "integer"
                            },
                            "items_count": {
                                "type": "integer"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "MenuItemResource": {
                "title": "MenuItemResource",
                "description": "Restaurant menu item resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "category": {
                                "type": "object"
                            },
                            "price": {
                                "type": "object"
                            },
                            "member_price": {
                                "type": "object",
                                "nullable": true
                            },
                            "resort_price": {
                                "type": "object",
                                "nullable": true
                            },
                            "allergens": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "dietary_labels": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "preparation_time": {
                                "type": "integer",
                                "nullable": true
                            },
                            "calories": {
                                "type": "integer",
                                "nullable": true
                            },
                            "sort_order": {
                                "type": "integer"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "image_url": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "MenuResource": {
                "title": "MenuResource",
                "description": "Restaurant menu resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string",
                                "nullable": true
                            },
                            "date": {
                                "type": "string",
                                "format": "date"
                            },
                            "service_periods": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "sections": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/MenuSectionResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "MenuSectionResource": {
                "title": "MenuSectionResource",
                "description": "Restaurant menu section resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "sort_order": {
                                "type": "integer"
                            },
                            "items": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/MenuItemResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantPaymentDetailsResource": {
                "title": "RestaurantPaymentDetailsResource",
                "description": "Payment confirmation resource for restaurant manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "order_id": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "payment_provider": {
                                "type": "string"
                            },
                            "payment_details": {
                                "type": "object"
                            },
                            "receipt_url": {
                                "type": "string",
                                "nullable": true
                            },
                            "total": {
                                "type": "object"
                            },
                            "tip": {
                                "type": "object",
                                "nullable": true
                            },
                            "paid_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ReservationDetailResource": {
                "title": "ReservationDetailResource",
                "description": "Restaurant reservation full detail",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "date": {
                                "type": "string",
                                "format": "date"
                            },
                            "start_at": {
                                "type": "string"
                            },
                            "end_at": {
                                "type": "string"
                            },
                            "party_size": {
                                "type": "integer"
                            },
                            "special_requests": {
                                "type": "string",
                                "nullable": true
                            },
                            "status": {
                                "type": "string"
                            },
                            "customer": {
                                "type": "object"
                            },
                            "tables": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "confirmed_at": {
                                "type": "string",
                                "nullable": true
                            },
                            "seated_at": {
                                "type": "string",
                                "nullable": true
                            },
                            "completed_at": {
                                "type": "string",
                                "nullable": true
                            },
                            "cancelled_at": {
                                "type": "string",
                                "nullable": true
                            },
                            "cancellation_reason": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ReservationResource": {
                "title": "ReservationResource",
                "description": "Restaurant reservation summary",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "date": {
                                "type": "string",
                                "format": "date"
                            },
                            "start_at": {
                                "type": "string"
                            },
                            "end_at": {
                                "type": "string"
                            },
                            "party_size": {
                                "type": "integer"
                            },
                            "status": {
                                "type": "string"
                            },
                            "customer_name": {
                                "type": "string"
                            },
                            "tables": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantManagerRestaurantDetailResource": {
                "title": "RestaurantDetailResource",
                "description": "Full restaurant detail resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string"
                            },
                            "slug": {
                                "type": "string"
                            },
                            "opening_hours": {
                                "type": "object"
                            },
                            "service_periods": {
                                "type": "object"
                            },
                            "max_covers": {
                                "type": "integer"
                            },
                            "reservation_duration": {
                                "type": "integer"
                            },
                            "reservation_delay": {
                                "type": "integer"
                            },
                            "auto_confirm_reservations": {
                                "type": "boolean"
                            },
                            "accepts_preorders": {
                                "type": "boolean"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "image_url": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantHoursResource": {
                "title": "RestaurantHoursResource",
                "description": "Restaurant opening hours, service periods, and closures",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "opening_hours": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "service_periods": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "exceptional_closures": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantOrderDetailResource": {
                "title": "RestaurantOrderDetailResource",
                "description": "Full order detail resource for restaurant manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "order_number": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "customer": {
                                "type": "object"
                            },
                            "items": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "total": {
                                "type": "object"
                            },
                            "tip": {
                                "type": "object",
                                "nullable": true
                            },
                            "table_ids": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "payment_provider": {
                                "type": "string"
                            },
                            "has_invoice": {
                                "type": "boolean"
                            },
                            "created_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantOrderResource": {
                "title": "RestaurantOrderResource",
                "description": "Order list resource for restaurant manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "order_number": {
                                "type": "string"
                            },
                            "date": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "customer": {
                                "type": "object"
                            },
                            "items_count": {
                                "type": "integer"
                            },
                            "total": {
                                "type": "object"
                            },
                            "tip": {
                                "type": "object",
                                "nullable": true
                            },
                            "table_ids": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "payment_provider": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantManagerRestaurantResource": {
                "title": "RestaurantResource",
                "description": "Restaurant summary resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "description": {
                                "type": "string"
                            },
                            "slug": {
                                "type": "string"
                            },
                            "max_covers": {
                                "type": "integer"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "image_url": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantTableResource": {
                "title": "RestaurantTableResource",
                "description": "Restaurant table resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "number": {
                                "type": "integer"
                            },
                            "label": {
                                "type": "string",
                                "nullable": true
                            },
                            "seats": {
                                "type": "integer"
                            },
                            "zone": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "is_active": {
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "RestaurantTableStatusResource": {
                "title": "RestaurantTableStatusResource",
                "description": "Restaurant table with live status info",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "number": {
                                "type": "integer"
                            },
                            "label": {
                                "type": "string",
                                "nullable": true
                            },
                            "seats": {
                                "type": "integer"
                            },
                            "zone": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "current_reservation": {
                                "type": "object",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "SearchGlobalResource": {
                "title": "SearchGlobalResource",
                "description": "Search result resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the result",
                                "type": "integer"
                            },
                            "placeId": {
                                "description": "Public Place ID of the result",
                                "type": "integer"
                            },
                            "name": {
                                "description": "Name of the result",
                                "type": "string"
                            },
                            "description": {
                                "description": "Description of the result",
                                "type": "string"
                            },
                            "type": {
                                "description": "Type of the result",
                                "type": "string"
                            },
                            "picture": {
                                "description": "Picture details",
                                "properties": {
                                    "large": {
                                        "description": "URL for the large-sized picture",
                                        "type": "string"
                                    },
                                    "medium": {
                                        "description": "URL for the medium-sized picture",
                                        "type": "string"
                                    },
                                    "blurhash": {
                                        "description": "Blurhash for the picture",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "SearchResource": {
                "title": "SearchResource",
                "description": "Search result resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasOpeningHours"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the place",
                                "type": "integer"
                            },
                            "name": {
                                "description": "Name of the place",
                                "type": "string"
                            },
                            "address": {
                                "$ref": "#/components/schemas/AddressResource"
                            },
                            "picture": {
                                "description": "Picture details",
                                "properties": {
                                    "large": {
                                        "description": "URL for the large-sized picture",
                                        "type": "string"
                                    },
                                    "medium": {
                                        "description": "URL for the medium-sized picture",
                                        "type": "string"
                                    },
                                    "blurhash": {
                                        "description": "Blurhash for the picture",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "opening_hours": {
                                "description": "Array of opening hours",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "day": {
                                            "description": "Day of the week",
                                            "type": "string"
                                        },
                                        "start_time": {
                                            "description": "Start time",
                                            "type": "string",
                                            "format": "time"
                                        },
                                        "end_time": {
                                            "description": "End time",
                                            "type": "string",
                                            "format": "time"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "courses_type": {
                                "description": "Array of course types",
                                "type": "array",
                                "items": {}
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ServiceResource": {
                "title": "ServiceResource",
                "description": "Service resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the service",
                                "type": "string"
                            },
                            "name": {
                                "description": "Name of the service",
                                "type": "string"
                            },
                            "description": {
                                "description": "Name of the description",
                                "type": "string"
                            },
                            "free_access": {
                                "description": "If the service gives free access to the gym",
                                "type": "boolean"
                            },
                            "member_only": {
                                "description": "If the service is limited to members",
                                "type": "boolean"
                            },
                            "type": {
                                "description": "Type of the service",
                                "type": "string",
                                "enum": [
                                    "gym",
                                    "co_working"
                                ]
                            },
                            "icon": {
                                "description": "URL for the service icon",
                                "type": "string",
                                "format": "url"
                            },
                            "slots": {
                                "description": "Array of slots",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "start_at": {
                                            "description": "Start time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "end_at": {
                                            "description": "End time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "places_left": {
                                            "description": "Places left for this slot",
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "money_price": {
                                "$ref": ""
                            },
                            "credit_price": {
                                "description": "Credits price of the service",
                                "type": "number",
                                "format": "float"
                            },
                            "credit_taxes": {
                                "description": "Credits taxes of the service",
                                "type": "number",
                                "format": "float"
                            },
                            "is_kids_zone": {
                                "description": "If the service is for kids",
                                "type": "boolean",
                                "example": true
                            },
                            "min_age": {
                                "description": "If the service is for kids, the minimum age",
                                "type": "integer",
                                "example": true
                            },
                            "max_age": {
                                "description": "If the service is for kids, the maximum age",
                                "type": "integer",
                                "example": true
                            },
                            "is_recreational_area": {
                                "description": "If the service is in the recreational area",
                                "type": "boolean",
                                "example": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "ServiceUsageResource": {
                "title": "ServiceUsageResource",
                "description": "Service usage slot for the day (no attendee info)",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "name": {
                                "type": "string"
                            },
                            "start_at": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "end_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CartItemResource": {
                "title": "CartItemResource",
                "description": "Cart item resource for shop manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "orderableType": {
                                "type": "string"
                            },
                            "_id": {
                                "type": "string"
                            },
                            "orderableId": {
                                "type": "string"
                            },
                            "isGuest": {
                                "type": "boolean"
                            },
                            "kid_id": {
                                "type": "string"
                            },
                            "customer_id": {
                                "type": "string"
                            },
                            "metadata": {
                                "type": "object"
                            },
                            "title": {
                                "type": "string"
                            },
                            "subtitles": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "image_url": {
                                "type": "string",
                                "format": "uri",
                                "nullable": true
                            },
                            "unitPrice": {
                                "properties": {
                                    "amount": {
                                        "description": "Unit price in minor units",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "lineTotal": {
                                "properties": {
                                    "amount": {
                                        "description": "Line total in minor units",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "variation": {
                                "properties": {
                                    "id": {
                                        "type": "integer"
                                    },
                                    "sku": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "barcode": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "specifications": {
                                        "type": "object",
                                        "nullable": true
                                    }
                                },
                                "type": "object",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "CartResource": {
                "title": "CartResource",
                "description": "Cart (vendor order) resource for shop manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "label": {
                                "type": "string"
                            },
                            "status": {
                                "description": "Order status: 10=WAITING_PAYMENT, 20=PAID",
                                "type": "integer"
                            },
                            "createdAt": {
                                "description": "Timestamp in milliseconds",
                                "type": "integer"
                            },
                            "updatedAt": {
                                "description": "Timestamp in milliseconds",
                                "type": "integer"
                            },
                            "selectedCustomer": {
                                "type": "object",
                                "nullable": true
                            },
                            "itemCount": {
                                "description": "Total quantity of all items",
                                "type": "integer"
                            },
                            "money_total": {
                                "properties": {
                                    "amount": {
                                        "description": "Total in minor units",
                                        "type": "integer"
                                    },
                                    "currency": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "credits_total": {
                                "type": "number",
                                "format": "float"
                            },
                            "items": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CartItemResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "InvoiceResource": {
                "title": "InvoiceResource",
                "description": "Invoice resource for shop manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "invoice_number": {
                                "type": "string"
                            },
                            "order_id": {
                                "type": "string"
                            },
                            "customer": {
                                "type": "object"
                            },
                            "total": {
                                "type": "object"
                            },
                            "issued_at": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "pdf_url": {
                                "type": "string",
                                "nullable": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "PaymentDetailsResource": {
                "title": "PaymentDetailsResource",
                "description": "Payment confirmation resource for shop manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "order_id": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "payment_provider": {
                                "type": "string"
                            },
                            "payment_details": {
                                "type": "object"
                            },
                            "receipt_url": {
                                "type": "string",
                                "nullable": true
                            },
                            "total": {
                                "type": "object"
                            },
                            "paid_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "VendorOrderDetailResource": {
                "title": "VendorOrderDetailResource",
                "description": "Full order detail resource for shop manager context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "order_number": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "customer": {
                                "type": "object"
                            },
                            "items": {
                                "type": "array",
                                "items": {
                                    "type": "object"
                                }
                            },
                            "total": {
                                "type": "object"
                            },
                            "payment_provider": {
                                "type": "string"
                            },
                            "payment_details": {
                                "type": "object"
                            },
                            "notes": {
                                "type": "string"
                            },
                            "has_invoice": {
                                "type": "boolean"
                            },
                            "created_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "VendorOrderResource": {
                "title": "VendorOrderResource",
                "description": "Order resource for shop manager / vendor order list",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "order_number": {
                                "type": "string"
                            },
                            "date": {
                                "type": "string"
                            },
                            "status": {
                                "type": "string"
                            },
                            "customer": {
                                "type": "object"
                            },
                            "first_item_name": {
                                "type": "string"
                            },
                            "items_count": {
                                "type": "integer"
                            },
                            "type_label": {
                                "type": "string"
                            },
                            "total": {
                                "type": "object"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "VendorProductDetailResource": {
                "title": "VendorProductDetailResource",
                "description": "Detailed product resource for shop manager product view",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "sku": {
                                "type": "string",
                                "nullable": true
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "badge": {
                                "type": "string",
                                "nullable": true
                            },
                            "stock": {
                                "type": "integer"
                            },
                            "total_sold": {
                                "type": "integer"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "VendorProductResource": {
                "title": "VendorProductResource",
                "description": "Product resource for shop manager / vendor context",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "is_active": {
                                "type": "boolean"
                            },
                            "total_sold": {
                                "type": "integer"
                            },
                            "stock_remaining": {
                                "type": "integer"
                            },
                            "image_url": {
                                "type": "string",
                                "format": "uri"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "TaskResource": {
                "title": "TaskResource",
                "description": "Public Task representation",
                "properties": {
                    "public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "todo",
                            "ongoing",
                            "finished"
                        ]
                    },
                    "start_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "end_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "deadline_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "comment": {
                        "type": "string",
                        "nullable": true
                    },
                    "place": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/PlaceResource"
                            }
                        ],
                        "nullable": true
                    },
                    "service": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/ServiceResource"
                            }
                        ],
                        "nullable": true
                    },
                    "user": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/UserResource"
                            }
                        ],
                        "nullable": true
                    },
                    "assignees": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/EmployeeListItemResource"
                        }
                    },
                    "attachments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AttachmentResource"
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "TrackingEntryResource": {
                "title": "TrackingEntryResource",
                "description": "Tracking entry resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the tracking entry",
                                "type": "integer"
                            },
                            "date": {
                                "description": "Date of the tracking entry",
                                "type": "string",
                                "format": "date-time"
                            },
                            "type": {
                                "description": "Type of the tracking entry",
                                "type": "string"
                            },
                            "coach": {
                                "description": "Coach details",
                                "properties": {
                                    "firstname": {
                                        "description": "First name of the coach",
                                        "type": "string"
                                    },
                                    "lastname": {
                                        "description": "Last name of the coach",
                                        "type": "string"
                                    },
                                    "fullname": {
                                        "description": "Full name of the coach",
                                        "type": "string"
                                    },
                                    "avatar": {
                                        "description": "Avatar details",
                                        "properties": {
                                            "large": {
                                                "description": "URL for the large-sized avatar",
                                                "type": "string"
                                            },
                                            "medium": {
                                                "description": "URL for the medium-sized avatar",
                                                "type": "string"
                                            },
                                            "small": {
                                                "description": "URL for the small-sized avatar",
                                                "type": "string"
                                            },
                                            "blurhash": {
                                                "description": "Blurhash for the avatar",
                                                "type": "string"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            },
                            "document": {
                                "description": "Document details",
                                "properties": {
                                    "url": {
                                        "description": "URL for the document",
                                        "type": "string",
                                        "format": "url"
                                    },
                                    "name": {
                                        "description": "Name of the document",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "seen_at": {
                                "description": "Date and time when the tracking entry was seen",
                                "type": "string",
                                "format": "date-time"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "HasMoney": {
                "title": "HasMoneyTrait",
                "description": "Trait for formatting money",
                "properties": {
                    "amount": {
                        "description": "Amount of money",
                        "type": "integer"
                    },
                    "currency": {
                        "description": "Currency code",
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "HasOpeningHours": {
                "title": "HasOpeningHoursTrait",
                "description": "Trait for formatting opening hours",
                "properties": {
                    "opening_hours": {
                        "description": "Formatted opening hours",
                        "properties": {
                            "monday": {
                                "properties": {
                                    "open_at": {
                                        "description": "Opening time on Monday",
                                        "type": "string",
                                        "format": "time"
                                    },
                                    "close_at": {
                                        "description": "Closing time on Monday",
                                        "type": "string",
                                        "format": "time"
                                    }
                                },
                                "type": "object"
                            },
                            "tuesday": {
                                "properties": {
                                    "open_at": {
                                        "description": "Opening time on Tuesday",
                                        "type": "string",
                                        "format": "time"
                                    },
                                    "close_at": {
                                        "description": "Closing time on Tuesday",
                                        "type": "string",
                                        "format": "time"
                                    }
                                },
                                "type": "object"
                            },
                            "wednesday": {
                                "properties": {
                                    "open_at": {
                                        "description": "Opening time on Wednesday",
                                        "type": "string",
                                        "format": "time"
                                    },
                                    "close_at": {
                                        "description": "Closing time on Wednesday",
                                        "type": "string",
                                        "format": "time"
                                    }
                                },
                                "type": "object"
                            },
                            "thursday": {
                                "properties": {
                                    "open_at": {
                                        "description": "Opening time on Thursday",
                                        "type": "string",
                                        "format": "time"
                                    },
                                    "close_at": {
                                        "description": "Closing time on Thursday",
                                        "type": "string",
                                        "format": "time"
                                    }
                                },
                                "type": "object"
                            },
                            "friday": {
                                "properties": {
                                    "open_at": {
                                        "description": "Opening time on Friday",
                                        "type": "string",
                                        "format": "time"
                                    },
                                    "close_at": {
                                        "description": "Closing time on Friday",
                                        "type": "string",
                                        "format": "time"
                                    }
                                },
                                "type": "object"
                            },
                            "saturday": {
                                "properties": {
                                    "open_at": {
                                        "description": "Opening time on Saturday",
                                        "type": "string",
                                        "format": "time"
                                    },
                                    "close_at": {
                                        "description": "Closing time on Saturday",
                                        "type": "string",
                                        "format": "time"
                                    }
                                },
                                "type": "object"
                            },
                            "sunday": {
                                "properties": {
                                    "open_at": {
                                        "description": "Opening time on Sunday",
                                        "type": "string",
                                        "format": "time"
                                    },
                                    "close_at": {
                                        "description": "Closing time on Sunday",
                                        "type": "string",
                                        "format": "time"
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "UserBookingsGroupResource": {
                "title": "UserBookingsGroupResource",
                "description": "User with all bookings for the given day",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "user": {
                                "$ref": "#/components/schemas/UserResource"
                            },
                            "bookings": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CustomerBookingResource"
                                }
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "UserResource": {
                "title": "UserResource",
                "description": "User resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the user or coach",
                                "type": "string"
                            },
                            "user_id": {
                                "description": "Public ID of the user",
                                "type": "string"
                            },
                            "type": {
                                "description": "Type of the user",
                                "type": "string"
                            },
                            "current_profile": {
                                "description": "Profile selected for the current access token",
                                "type": "string"
                            },
                            "is_employee": {
                                "description": "If the user is an employee",
                                "type": "boolean"
                            },
                            "lang": {
                                "description": "Language preference of the user",
                                "type": "string"
                            },
                            "firstname": {
                                "description": "First name of the user",
                                "type": "string"
                            },
                            "lastname": {
                                "description": "Last name of the user",
                                "type": "string"
                            },
                            "fullname": {
                                "description": "Full name of the user",
                                "type": "string"
                            },
                            "gender": {
                                "$ref": "#/components/schemas/Gender"
                            },
                            "email": {
                                "description": "Email address of the user",
                                "type": "string"
                            },
                            "phone": {
                                "description": "Phone number of the user",
                                "type": "string"
                            },
                            "is_member": {
                                "description": "Membership status of the user",
                                "type": "boolean"
                            },
                            "wallet_balance": {
                                "description": "Wallet balance of the user",
                                "type": "integer"
                            },
                            "daypass_balance": {
                                "description": "Daypass balance of the user",
                                "type": "integer"
                            },
                            "guest_pass_balance": {
                                "description": "Guest Pass balance of the user",
                                "type": "integer"
                            },
                            "member_token": {
                                "description": "Member token for door access",
                                "type": "string"
                            },
                            "place_id": {
                                "description": "Favorite place id of the user",
                                "type": "string"
                            },
                            "avatar": {
                                "description": "Avatar details",
                                "properties": {
                                    "large": {
                                        "description": "URL for the large-sized avatar",
                                        "type": "string"
                                    },
                                    "medium": {
                                        "description": "URL for the medium-sized avatar",
                                        "type": "string"
                                    },
                                    "small": {
                                        "description": "URL for the small-sized avatar",
                                        "type": "string"
                                    },
                                    "blurhash": {
                                        "description": "Blurhash for the avatar",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            },
                            "places": {
                                "description": "Array of public IDs for places associated with the user",
                                "type": "array",
                                "items": {
                                    "type": "integer"
                                }
                            },
                            "employee_places": {
                                "description": "Array of public IDs for places associated with the employee",
                                "type": "array",
                                "items": {
                                    "type": "integer"
                                }
                            },
                            "guests": {
                                "description": "Array of guests details",
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/GuestResource"
                                }
                            },
                            "email_notification": {
                                "description": "Email notification preference of the user",
                                "type": "boolean"
                            },
                            "push_notification": {
                                "description": "Push notification preference of the user",
                                "type": "boolean"
                            },
                            "chat_notification": {
                                "description": "Chat notification preference of the user",
                                "type": "boolean"
                            },
                            "kids_zone": {
                                "description": "If the app displays the Kids Zone or not",
                                "type": "boolean"
                            },
                            "registered": {
                                "description": "If the user has finished the registration process",
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "WalletResource": {
                "title": "WalletResource",
                "description": "Wallet resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "balance": {
                                "description": "Balance of the wallet",
                                "type": "number",
                                "format": "float"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "WalletTransactionResource": {
                "title": "WalletTransactionResource",
                "description": "Wallet Transaction resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "properties": {
                            "date": {
                                "description": "Date and time of the transaction",
                                "type": "string",
                                "format": "date-time"
                            },
                            "amount": {
                                "description": "Amount of the transaction in credits",
                                "type": "number",
                                "format": "float"
                            },
                            "transaction_type": {
                                "description": "Type of the transaction : Credit, Daypass or Guest Pass",
                                "type": "string"
                            },
                            "description": {
                                "description": "Description of the transaction",
                                "type": "string"
                            },
                            "debit": {
                                "description": "True if Debit, False if Credit",
                                "type": "boolean"
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "WellnessCourseResource": {
                "title": "WellnessCourseResource",
                "description": "Wellness course resource",
                "type": "object",
                "allOf": [
                    {
                        "$ref": "#/components/schemas/ApiResource"
                    },
                    {
                        "$ref": "#/components/schemas/HasMoney"
                    },
                    {
                        "properties": {
                            "id": {
                                "description": "Public ID of the wellness course",
                                "type": "integer"
                            },
                            "category": {
                                "$ref": "#/components/schemas/CategoryResource"
                            },
                            "description": {
                                "description": "Description of the wellness course",
                                "type": "string"
                            },
                            "capacity": {
                                "description": "Capacity of the wellness course",
                                "type": "integer"
                            },
                            "duration": {
                                "description": "Duration of the wellness course",
                                "type": "integer"
                            },
                            "slots": {
                                "description": "Array of slots",
                                "type": "array",
                                "items": {
                                    "properties": {
                                        "start_at": {
                                            "description": "Start date and time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "end_at": {
                                            "description": "End date and time of the slot",
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "places_left": {
                                            "description": "Places left for the slot",
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            },
                            "coach": {
                                "$ref": "#/components/schemas/CoachResource"
                            },
                            "money_price": {
                                "$ref": ""
                            },
                            "credit_price": {
                                "description": "Credits price of the wellness course",
                                "type": "number",
                                "format": "float"
                            },
                            "credit_taxes": {
                                "description": "Credits taxes of the wellness course",
                                "type": "number",
                                "format": "float"
                            },
                            "free_access": {
                                "description": "If the course gives free access to the gym",
                                "type": "boolean"
                            },
                            "is_kids_zone": {
                                "description": "If the course is for kids",
                                "type": "boolean",
                                "example": true
                            },
                            "min_age": {
                                "description": "If the category is for kids, the minimum age",
                                "type": "integer",
                                "example": true
                            },
                            "max_age": {
                                "description": "If the category is for kids, the maximum age",
                                "type": "integer",
                                "example": true
                            },
                            "is_recreational_area": {
                                "description": "If the course is in the recreational area",
                                "type": "boolean",
                                "example": true
                            }
                        },
                        "type": "object"
                    }
                ]
            },
            "Activity": {
                "title": "Activity",
                "description": "Activity model",
                "properties": {
                    "id": {
                        "description": "ID of the activity",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the activity",
                        "type": "string",
                        "example": "Sample Activity"
                    },
                    "description": {
                        "description": "Description of the activity",
                        "type": "string",
                        "example": "Boat Charter"
                    },
                    "is_bookable": {
                        "description": "Is a wellness activity",
                        "type": "boolean"
                    },
                    "free_access": {
                        "description": "Grants free access to the gym for non members",
                        "type": "boolean"
                    },
                    "is_kids_zone": {
                        "description": "Flag indicating if the activity is for kids",
                        "type": "boolean",
                        "example": true
                    },
                    "is_recreational_area": {
                        "description": "Flag indicating if the activity is in the recreational area",
                        "type": "boolean",
                        "example": true
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Address": {
                "title": "Address",
                "description": "Address model",
                "properties": {
                    "id": {
                        "description": "ID of the address",
                        "type": "integer",
                        "example": 1
                    },
                    "latitude": {
                        "description": "Latitude of the address",
                        "type": "number",
                        "format": "float",
                        "example": 40.7128
                    },
                    "longitude": {
                        "description": "Longitude of the address",
                        "type": "number",
                        "format": "float",
                        "example": -74.006
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Availability": {
                "title": "Availability",
                "description": "Availability model",
                "properties": {
                    "id": {
                        "description": "ID of the availability",
                        "type": "integer",
                        "example": 1
                    },
                    "datetime": {
                        "description": "Date and time of the availability",
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-11-10T12:00:00Z"
                    },
                    "start_at": {
                        "description": "Start date and time of the availability",
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-11-10T12:00:00Z"
                    },
                    "end_at": {
                        "description": "End date and time of the availability",
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-11-10T13:00:00Z"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "coach": {
                        "$ref": "#/components/schemas/Coach"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "AvailabilityStat": {
                "title": "AvailabilityStat",
                "description": "Precomputed availability counts",
                "required": [
                    "place_id",
                    "orderable_type",
                    "available_count",
                    "computed_at"
                ],
                "properties": {
                    "place_id": {
                        "type": "integer"
                    },
                    "category_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "service_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "activity_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "orderable_type": {
                        "type": "string",
                        "example": "personal_course"
                    },
                    "available_count": {
                        "type": "integer",
                        "example": 12
                    },
                    "computed_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Banner": {
                "title": "Banner",
                "description": "Banner model",
                "properties": {
                    "id": {
                        "description": "ID of the Banner",
                        "type": "integer",
                        "example": 1
                    },
                    "title": {
                        "description": "Title of the banner",
                        "type": "string",
                        "example": "Sample Banner"
                    },
                    "url": {
                        "description": "URL of the banner",
                        "type": "string",
                        "example": "https://test.championspirit.com"
                    },
                    "has_linked_object": {
                        "description": "Banner linked to an app object",
                        "type": "boolean",
                        "example": "true"
                    },
                    "object_type": {
                        "description": "Type of the linked object",
                        "type": "string",
                        "example": "personal_course"
                    },
                    "object_public_id": {
                        "description": "Public ID of the linked object",
                        "type": "string",
                        "example": "uuid"
                    },
                    "start_at": {
                        "description": "Start date and time of the Banner",
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_at": {
                        "description": "End date and time of the Banner",
                        "type": "string",
                        "format": "date-time"
                    },
                    "position": {
                        "description": "Position Banner",
                        "type": "integer",
                        "example": "1"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Deletion date and time",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "category": {
                        "$ref": "#/components/schemas/Category"
                    }
                },
                "type": "object"
            },
            "BioStar2Card": {
                "title": "BioStar2Card",
                "description": "BioStar2Card model",
                "properties": {
                    "id": {
                        "description": "ID of the BioStar2Card",
                        "type": "integer",
                        "example": 1
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Booking": {
                "title": "Booking",
                "description": "Booking model",
                "properties": {
                    "id": {
                        "description": "ID of the Booking",
                        "type": "integer",
                        "example": 1
                    },
                    "start_at": {
                        "description": "Start date and time of the booking",
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_at": {
                        "description": "End date and time of the booking",
                        "type": "string",
                        "format": "date-time"
                    },
                    "refunded": {
                        "description": "Refund status of the booking",
                        "type": "boolean",
                        "example": false
                    },
                    "is_guest_pass": {
                        "description": "True if the booking is a guest pass",
                        "type": "boolean",
                        "example": false
                    },
                    "is_resort_access": {
                        "description": "True if the booking is a resort access",
                        "type": "boolean",
                        "example": false
                    },
                    "late_cancellation": {
                        "description": "Late cancellation status of the booking",
                        "type": "boolean",
                        "example": false
                    },
                    "seen_at": {
                        "description": "Seen date and time of the booking",
                        "type": "string",
                        "format": "date-time"
                    },
                    "coordinator_report_sent": {
                        "description": "Whether the coordinator submitted the attendance report for this booking",
                        "type": "boolean",
                        "example": false
                    },
                    "bookable": {
                        "description": "The bookable item associated with the booking",
                        "type": "object",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/PersonalCourse"
                            },
                            {
                                "$ref": "#/components/schemas/GroupCourse"
                            }
                        ]
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "guest": {
                        "$ref": "#/components/schemas/Guest"
                    },
                    "kid": {
                        "$ref": "#/components/schemas/Kid"
                    },
                    "coach": {
                        "$ref": "#/components/schemas/Coach"
                    },
                    "attendee": {
                        "$ref": "#/components/schemas/User"
                    },
                    "order_item": {
                        "$ref": "#/components/schemas/OrderItem"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Category": {
                "title": "Category",
                "description": "Category model",
                "properties": {
                    "id": {
                        "description": "ID of the Category",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the Category",
                        "type": "string",
                        "example": "Fitness"
                    },
                    "description": {
                        "description": "Description of the Category",
                        "type": "string",
                        "example": "Fitness and health-related activities"
                    },
                    "group_course": {
                        "description": "Flag indicating if the category is a group course",
                        "type": "boolean",
                        "example": true
                    },
                    "personal_course": {
                        "description": "Flag indicating if the category is a personal course",
                        "type": "boolean",
                        "example": true
                    },
                    "service": {
                        "description": "Flag indicating if the category is a service",
                        "type": "boolean",
                        "example": true
                    },
                    "wellness_course": {
                        "description": "Flag indicating if the category is a wellness",
                        "type": "boolean",
                        "example": true
                    },
                    "activity": {
                        "description": "Flag indicating if the category is an activity",
                        "type": "boolean",
                        "example": true
                    },
                    "product": {
                        "description": "Flag indicating if the category is a product",
                        "type": "boolean",
                        "example": true
                    },
                    "is_kids_zone": {
                        "description": "Flag indicating if the category is for kids",
                        "type": "boolean",
                        "example": true
                    },
                    "is_recreational_area": {
                        "description": "Flag indicating if the category is for the recreational area",
                        "type": "boolean",
                        "example": true
                    },
                    "icon": {
                        "$ref": ""
                    },
                    "parent": {
                        "$ref": "#/components/schemas/Category"
                    },
                    "children": {
                        "description": "Child categories",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Category"
                        }
                    },
                    "personal_courses": {
                        "description": "Personal courses associated with the category",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PersonalCourse"
                        }
                    },
                    "group_courses": {
                        "description": "Group courses associated with the category",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/GroupCourse"
                        }
                    },
                    "coaches": {
                        "description": "Coaches associated with the category",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Coach"
                        }
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    }
                },
                "type": "object"
            },
            "CategoryCoach": {
                "title": "CategoryCoach",
                "description": "CategoryCoach model",
                "properties": {
                    "id": {
                        "description": "ID of the CategoryCoach",
                        "type": "integer",
                        "example": 1
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "coach": {
                        "$ref": "#/components/schemas/Coach"
                    }
                },
                "type": "object"
            },
            "Coach": {
                "title": "Coach",
                "description": "Coach model",
                "properties": {
                    "id": {
                        "description": "ID of the coach",
                        "type": "integer",
                        "example": 1
                    },
                    "booking_delay": {
                        "description": "Booking Delay for the PT of the Coach",
                        "type": "integer",
                        "example": "2"
                    },
                    "hourly_price": {
                        "description": "Hourly price of the coach",
                        "type": "string",
                        "example": "10.00"
                    },
                    "member_hourly_price": {
                        "description": "Member hourly price of the coach",
                        "type": "string",
                        "example": "8.00"
                    },
                    "stripe_id": {
                        "description": "Stripe account id for the coach",
                        "type": "string"
                    },
                    "stripe_access_token": {
                        "description": "Stripe access token for the coach",
                        "type": "string"
                    },
                    "stripe_on_boarding_completed_at": {
                        "description": "Stripe onboarding date completion",
                        "type": "string",
                        "format": "date-time"
                    },
                    "iban": {
                        "description": "IBAN of the coach",
                        "type": "string"
                    },
                    "last_payment_date": {
                        "description": "Last payment date of to the coach",
                        "type": "string",
                        "format": "date-time"
                    },
                    "account_balance": {
                        "description": "Balance of the coach account",
                        "type": "string",
                        "example": "8.00"
                    },
                    "display_in_app": {
                        "description": "Display the coach in the App home page",
                        "type": "boolean",
                        "example": "false"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "places": {
                        "description": "Places associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Place"
                        }
                    },
                    "categories": {
                        "description": "Categories associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Category"
                        }
                    },
                    "availabilities": {
                        "description": "Availabilities associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Availability"
                        }
                    },
                    "personal_courses": {
                        "description": "Personal courses associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PersonalCourse"
                        }
                    },
                    "wellness_courses": {
                        "description": "Wellness courses associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/WellnessCourse"
                        }
                    },
                    "group_courses": {
                        "description": "Group courses associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/GroupCourse"
                        }
                    },
                    "bookings": {
                        "description": "Bookings associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Booking"
                        }
                    },
                    "tracking_entries": {
                        "description": "Tracking entries associated with the coach",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/TrackingEntry"
                        }
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "CoachPlace": {
                "title": "CoachPlace",
                "description": "CoachPlace pivot model",
                "properties": {
                    "id": {
                        "description": "ID of the CoachPlace",
                        "type": "integer",
                        "example": 1
                    },
                    "coach": {
                        "$ref": "#/components/schemas/Coach"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "CustomerCustomTransaction": {
                "title": "CustomerCustomTransaction",
                "description": "Custom transaction attached to a customer or a family",
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "user_id": {
                        "type": "integer",
                        "example": 10,
                        "nullable": true
                    },
                    "family_id": {
                        "type": "integer",
                        "example": 5,
                        "nullable": true
                    },
                    "date": {
                        "type": "string",
                        "format": "date",
                        "example": "2026-04-01"
                    },
                    "amount": {
                        "type": "number",
                        "format": "float",
                        "example": 150
                    },
                    "currency": {
                        "type": "string",
                        "example": "USD"
                    },
                    "description": {
                        "type": "string",
                        "example": "Manual transaction entry"
                    },
                    "comments": {
                        "type": "string",
                        "example": "Handled by front desk",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Department": {
                "title": "Department",
                "description": "Department model — groups bookable items for display and QuickBooks income account mapping",
                "properties": {
                    "id": {
                        "description": "Public ID of the department",
                        "type": "string",
                        "example": "dep_01abc"
                    },
                    "name": {
                        "description": "Name of the department",
                        "type": "string",
                        "example": "HIGH ENERGY"
                    },
                    "quickbooks_department": {
                        "description": "QuickBooks income account label used for revenue mapping (e.g. SPORTS / PT)",
                        "type": "string",
                        "example": "SPORTS / PT",
                        "nullable": true
                    },
                    "place_id": {
                        "description": "ID of the place this department belongs to (null for global departments)",
                        "type": "integer",
                        "example": 1,
                        "nullable": true
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Soft delete timestamp",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "DoorAccess": {
                "title": "DoorAccess",
                "description": "DoorAccess model",
                "properties": {
                    "id": {
                        "description": "ID of the DoorAccess",
                        "type": "integer",
                        "example": 1
                    },
                    "date": {
                        "description": "Access date",
                        "type": "string",
                        "format": "date"
                    },
                    "door_system_card": {
                        "$ref": ""
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Deletion date and time",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "Employee": {
                "title": "Employee",
                "description": "Employee model",
                "properties": {
                    "id": {
                        "description": "ID of the employee",
                        "type": "integer",
                        "example": 1
                    },
                    "employee_number": {
                        "description": "Employee number",
                        "type": "string",
                        "example": "JD012"
                    },
                    "user_id": {
                        "description": "User ID linked to the employee profile",
                        "type": "integer",
                        "example": "5"
                    },
                    "is_active": {
                        "description": "Flag indicating if the employee is active",
                        "type": "boolean",
                        "example": true
                    },
                    "is_hospitality": {
                        "description": "Flag indicating if the admin has hospitality role",
                        "type": "boolean",
                        "example": true
                    },
                    "is_coordinator": {
                        "description": "Flag indicating if the admin has coordinator role",
                        "type": "boolean",
                        "example": true
                    },
                    "is_super_admin": {
                        "description": "Flag indicating if the admin has super admin role",
                        "type": "boolean",
                        "example": false
                    },
                    "employment_start": {
                        "description": "Start date of his employment",
                        "type": "string",
                        "format": "date",
                        "example": "2025-05-01"
                    },
                    "employment_end": {
                        "description": "End date of his employment",
                        "type": "string",
                        "format": "date",
                        "example": "2025-12-01"
                    },
                    "contract_details": {
                        "description": "Employee contract details",
                        "type": "string",
                        "example": "Full time employee"
                    },
                    "comments": {
                        "description": "Employee admin comments",
                        "type": "string",
                        "example": "Best employee of March 2025"
                    },
                    "receive_email_notifications": {
                        "description": "Flag indicating if the admin should receive email notifications of bookings",
                        "type": "boolean",
                        "example": false
                    },
                    "receive_push_notifications": {
                        "description": "Flag indicating if the admin should receive push notifications of bookings",
                        "type": "boolean",
                        "example": false
                    },
                    "bypass_otp": {
                        "description": "When true, OTP validation is bypassed: no notification is sent and the response includes bypass=true",
                        "type": "boolean",
                        "example": false
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "places": {
                        "description": "The places associated with the employee",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Place"
                        }
                    },
                    "orders": {
                        "description": "The orders associated with the employee",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Order"
                        }
                    }
                },
                "type": "object"
            },
            "Event": {
                "title": "Event",
                "description": "Event model",
                "properties": {
                    "id": {
                        "description": "ID of the Event",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the event",
                        "type": "string",
                        "example": "Sample Event"
                    },
                    "description": {
                        "description": "Description of the event",
                        "type": "string",
                        "example": "Description Event"
                    },
                    "start_at": {
                        "description": "Start date and time of the Event",
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_at": {
                        "description": "End date and time of the Event",
                        "type": "string",
                        "format": "date-time"
                    },
                    "capacity": {
                        "description": "Capacity of the Event",
                        "type": "integer",
                        "example": 10
                    },
                    "is_kids_zone": {
                        "description": "Flag indicating if the event is for kids",
                        "type": "boolean",
                        "example": true
                    },
                    "free_access": {
                        "description": "Flag indicating if the event gives free access to the gym",
                        "type": "boolean",
                        "example": true
                    },
                    "is_recreational_area": {
                        "description": "Flag indicating if the event is in the recreational area",
                        "type": "boolean",
                        "example": true
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Deletion date and time",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "bookings": {
                        "description": "Bookings associated with the Event",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Booking"
                        }
                    }
                },
                "type": "object"
            },
            "ExceptionalClosingHour": {
                "title": "ExceptionalClosingHour",
                "description": "ExceptionalClosingHour model",
                "properties": {
                    "id": {
                        "description": "ID of the exceptional closing hour",
                        "type": "integer",
                        "example": 1
                    },
                    "start_at": {
                        "description": "Start date and time of the availability",
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-11-10T12:00:00Z"
                    },
                    "end_at": {
                        "description": "End date and time of the availability",
                        "type": "string",
                        "format": "date-time",
                        "example": "2023-11-10T13:00:00Z"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "service": {
                        "$ref": "#/components/schemas/Service"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Facility": {
                "title": "Facility",
                "description": "Facility model",
                "properties": {
                    "id": {
                        "description": "ID of the Facility",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the Facility",
                        "type": "string",
                        "example": "Tennis Court"
                    },
                    "icon": {
                        "$ref": ""
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Family": {
                "title": "Family",
                "description": "Family model",
                "properties": {
                    "id": {
                        "description": "ID of the payment entry",
                        "type": "integer",
                        "example": 1
                    },
                    "head": {
                        "$ref": "#/components/schemas/User"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "name": {
                        "description": "Name of the family",
                        "type": "string"
                    },
                    "registration_date": {
                        "description": "Registration date of the family",
                        "type": "date-time"
                    },
                    "member_number": {
                        "description": "Member number of the family",
                        "type": "string"
                    },
                    "member_type": {
                        "description": "Member type of the family",
                        "type": "string",
                        "example": "founding"
                    },
                    "comments": {
                        "description": "Admin comments related to the family",
                        "type": "string"
                    },
                    "is_vip": {
                        "description": "If the family has the VIP rates",
                        "type": "boolean",
                        "example": true
                    },
                    "discount": {
                        "description": "Discount percentage for the family",
                        "type": "integer"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "FeaturedCategory": {
                "title": "Featured Category",
                "description": "Featured Category model",
                "properties": {
                    "id": {
                        "description": "ID of the Featured Category",
                        "type": "integer",
                        "example": 1
                    },
                    "title": {
                        "description": "Title of the Featured Category",
                        "type": "string",
                        "example": "Sample Featured Category"
                    },
                    "url": {
                        "description": "URL of the Featured Category",
                        "type": "string",
                        "example": "https://test.championspirit.com"
                    },
                    "position": {
                        "description": "Position Featured Category",
                        "type": "integer",
                        "example": "1"
                    },
                    "has_linked_object": {
                        "description": "Featured Category linked to an app object",
                        "type": "boolean",
                        "example": "true"
                    },
                    "object_type": {
                        "description": "Type of the linked object",
                        "type": "string",
                        "example": "personal_course"
                    },
                    "object_public_id": {
                        "description": "Public ID of the linked object",
                        "type": "string",
                        "example": "uuid"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Deletion date and time",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "category": {
                        "$ref": "#/components/schemas/Category"
                    }
                },
                "type": "object"
            },
            "FlexMembership": {
                "title": "FlexMembership",
                "description": "Flex Membership offer",
                "properties": {
                    "id": {
                        "description": "ID of the Flex Membership",
                        "type": "integer",
                        "example": 1
                    },
                    "public_id": {
                        "description": "Public identifier of the Flex Membership",
                        "type": "string",
                        "format": "uuid"
                    },
                    "name": {
                        "description": "Name of the Flex Membership",
                        "type": "string"
                    },
                    "description": {
                        "description": "Description of the Flex Membership",
                        "type": "string"
                    },
                    "min_spend": {
                        "description": "Minimum spend amount",
                        "properties": {
                            "amount": {
                                "type": "integer"
                            },
                            "currency": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "is_active": {
                        "description": "Active flag",
                        "type": "boolean",
                        "example": true
                    },
                    "comments": {
                        "description": "Internal comments",
                        "type": "string"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "GroupCourse": {
                "title": "GroupCourse",
                "description": "GroupCourse model",
                "properties": {
                    "id": {
                        "description": "ID of the GroupCourse",
                        "type": "integer",
                        "example": 1
                    },
                    "start_at": {
                        "description": "Start date and time of the GroupCourse",
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_at": {
                        "description": "End date and time of the GroupCourse",
                        "type": "string",
                        "format": "date-time"
                    },
                    "price": {
                        "description": "Price of the group course",
                        "type": "string",
                        "example": "10.00"
                    },
                    "member_price": {
                        "description": "Member price of the group course",
                        "type": "string",
                        "example": "8.00"
                    },
                    "free_access": {
                        "description": "Grants free access to the gym for non members",
                        "type": "boolean"
                    },
                    "capacity": {
                        "description": "Capacity of the GroupCourse",
                        "type": "integer",
                        "example": 10
                    },
                    "is_kids_zone": {
                        "description": "Flag indicating if the group course is for kids",
                        "type": "boolean",
                        "example": true
                    },
                    "is_recreational_area": {
                        "description": "Flag indicating if the group course is in the recreational area",
                        "type": "boolean",
                        "example": true
                    },
                    "internet_booking": {
                        "description": "Flag indicating if the group course can be booked via internet",
                        "type": "boolean",
                        "example": true
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Deletion date and time",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "category": {
                        "$ref": "#/components/schemas/Category"
                    },
                    "bookings": {
                        "description": "Bookings associated with the GroupCourse",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Booking"
                        }
                    }
                },
                "type": "object"
            },
            "Guest": {
                "title": "Guest",
                "description": "Guest model",
                "properties": {
                    "id": {
                        "description": "ID of the Guest",
                        "type": "integer",
                        "example": 1
                    },
                    "email": {
                        "description": "Email address of the user",
                        "type": "string",
                        "example": "john@example.com"
                    },
                    "users": {
                        "description": "Users linked to the guest",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/User"
                        }
                    },
                    "places": {
                        "description": "Places linked to the guest",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Place"
                        }
                    },
                    "bookings": {
                        "description": "Bookings linked to the guest",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Booking"
                        }
                    },
                    "place_access_logs": {
                        "description": "Access logs of the guest",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PlaceAccessLog"
                        }
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "GuestUser": {
                "title": "GuestUser",
                "description": "GuestUser Pivot",
                "properties": {
                    "user_id": {
                        "description": "User ID",
                        "type": "integer",
                        "example": 1
                    },
                    "guest_id": {
                        "description": "Guest ID",
                        "type": "integer",
                        "example": 1
                    },
                    "firstname": {
                        "description": "Firstname of the guest for this user",
                        "type": "string"
                    },
                    "lastname": {
                        "description": "Lastname of the guest for this user",
                        "type": "string"
                    },
                    "phone": {
                        "description": "Phone of the guest for this user",
                        "type": "string"
                    },
                    "comments": {
                        "description": "Comments of the guest for this user",
                        "type": "string"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "guest": {
                        "$ref": "#/components/schemas/Guest"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    }
                },
                "type": "object"
            },
            "Kid": {
                "title": "Kid",
                "description": "Kid model",
                "properties": {
                    "id": {
                        "description": "ID of the Kid",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Email address of the kid",
                        "type": "string",
                        "example": "Gabriel"
                    },
                    "email": {
                        "description": "Email address of the kid",
                        "type": "string",
                        "example": "john@example.com"
                    },
                    "phone": {
                        "description": "Phone number of the kid",
                        "type": "string",
                        "example": "+33650545617"
                    },
                    "dob": {
                        "description": "Date of birth of the kid",
                        "type": "string",
                        "format": "date",
                        "example": "01/03/2016"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "family": {
                        "$ref": "#/components/schemas/Family"
                    },
                    "bookings": {
                        "description": "Bookings linked to the guest",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Booking"
                        }
                    },
                    "place_access_logs": {
                        "description": "Access logs of the guest",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PlaceAccessLog"
                        }
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Language": {
                "title": "Language",
                "description": "Language model",
                "properties": {
                    "id": {
                        "description": "ID of the language",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the language",
                        "type": "string",
                        "example": "English"
                    },
                    "code": {
                        "description": "Code of the language",
                        "type": "string",
                        "example": "en"
                    },
                    "native": {
                        "description": "Native name of the language",
                        "type": "string",
                        "example": "English"
                    },
                    "direction": {
                        "description": "Direction of the language",
                        "type": "string",
                        "example": "ltr"
                    },
                    "is_default": {
                        "description": "Indicates if the language is the default language",
                        "type": "boolean",
                        "example": true
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Membership": {
                "title": "Membership",
                "description": "Membership model",
                "properties": {
                    "id": {
                        "description": "ID of the Membership",
                        "type": "integer",
                        "example": 1
                    },
                    "start_at": {
                        "description": "Start date of the membership",
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_at": {
                        "description": "End date of the membership",
                        "type": "string",
                        "format": "date-time"
                    },
                    "is_active": {
                        "description": "Indicates whether the membership is currently active",
                        "type": "boolean"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "family": {
                        "$ref": "#/components/schemas/Family"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Deletion date and time",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "ModelTranslation": {
                "title": "ModelTranslation",
                "description": "Model for Translations of db objects",
                "properties": {
                    "id": {
                        "description": "ID of the ModelTranslation",
                        "type": "integer",
                        "example": 1
                    },
                    "translatable_type": {
                        "description": "namespace of the model",
                        "type": "string",
                        "example": "App\\Models\\User"
                    },
                    "translatable_id": {
                        "description": "ID of the Model object",
                        "type": "integer",
                        "example": 1
                    },
                    "field": {
                        "description": "column name of the Model object",
                        "type": "string",
                        "example": "description"
                    },
                    "language_id": {
                        "description": "ID of the translated Language",
                        "type": "integer",
                        "example": 1
                    },
                    "value": {
                        "description": "translated value of the column",
                        "type": "string",
                        "example": "Hello"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Notification": {
                "title": "Notification",
                "description": "Notification model",
                "properties": {
                    "id": {
                        "description": "ID of the Notification",
                        "type": "integer",
                        "example": 1
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Order": {
                "title": "Order",
                "description": "Order model",
                "properties": {
                    "id": {
                        "description": "ID of the Order",
                        "type": "integer",
                        "example": 1
                    },
                    "status": {
                        "description": "Status of the order",
                        "type": "string",
                        "enum": [
                            "PENDING",
                            "PAID",
                            "CANCELLED"
                        ],
                        "example": "PAID"
                    },
                    "payment_provider": {
                        "description": "Payment provider of the order",
                        "type": "string",
                        "enum": [
                            "STRIPE",
                            "PAYPAL",
                            "OTHER"
                        ],
                        "example": "STRIPE"
                    },
                    "money_total": {
                        "$ref": ""
                    },
                    "credits_total": {
                        "description": "Total credits",
                        "type": "number",
                        "format": "float",
                        "example": 50.5
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "employee": {
                        "$ref": "#/components/schemas/Employee"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "items": {
                        "description": "Order items associated with the Order",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/OrderItem"
                        }
                    }
                },
                "type": "object"
            },
            "OrderItem": {
                "title": "OrderItem",
                "description": "OrderItem model",
                "properties": {
                    "id": {
                        "description": "ID of the OrderItem",
                        "type": "integer",
                        "example": 1
                    },
                    "money_price": {
                        "$ref": ""
                    },
                    "credits_price": {
                        "description": "Credits price of the order item",
                        "type": "number",
                        "format": "float",
                        "example": 10.5
                    },
                    "credits_taxes": {
                        "description": "Credits taxes of the order item",
                        "type": "number",
                        "format": "float",
                        "example": 5.5
                    },
                    "metadata": {
                        "$ref": ""
                    },
                    "is_gift": {
                        "description": "Indicates if the order item is a gift",
                        "type": "boolean",
                        "example": false
                    },
                    "is_guest_pass": {
                        "description": "Indicates if the order item is a guest pass",
                        "type": "boolean",
                        "example": false
                    },
                    "is_resort_access": {
                        "description": "Indicates if the order item is a resort access",
                        "type": "boolean",
                        "example": false
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    },
                    "orderable": {
                        "description": "Orderable model associated with the OrderItem",
                        "type": "object"
                    },
                    "order": {
                        "$ref": "#/components/schemas/Order"
                    },
                    "guest": {
                        "$ref": "#/components/schemas/Guest"
                    },
                    "kid": {
                        "$ref": "#/components/schemas/Kid"
                    },
                    "booking": {
                        "$ref": "#/components/schemas/Booking"
                    }
                },
                "type": "object"
            },
            "Pack": {
                "title": "Pack",
                "description": "Pack model",
                "properties": {
                    "id": {
                        "description": "ID of the Pack",
                        "type": "integer",
                        "example": 1
                    },
                    "price": {
                        "$ref": ""
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Soft delete timestamp",
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "PasswordReset": {
                "title": "PasswordReset",
                "description": "PasswordReset model",
                "properties": {
                    "email": {
                        "description": "Email of the password reset",
                        "type": "string",
                        "example": "user@example.com"
                    },
                    "code": {
                        "description": "Generated code for password reset",
                        "type": "string",
                        "example": "123456"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Payment": {
                "title": "Payment",
                "description": "Payment model",
                "properties": {
                    "id": {
                        "description": "ID of the payment entry",
                        "type": "integer",
                        "example": 1
                    },
                    "coach": {
                        "$ref": "#/components/schemas/Coach"
                    },
                    "transaction_price": {
                        "$ref": ""
                    },
                    "date": {
                        "description": "Date of the payment",
                        "type": "string",
                        "format": "date"
                    },
                    "comments": {
                        "description": "Comments of the payment",
                        "type": "string"
                    },
                    "metadata": {
                        "description": "Metadata of the payment",
                        "type": "string"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "PersonalCourse": {
                "title": "PersonalCourse",
                "description": "PersonalCourse model",
                "properties": {
                    "id": {
                        "description": "ID of the personal course",
                        "type": "integer",
                        "example": 1
                    },
                    "place_id": {
                        "description": "ID of the associated place",
                        "type": "integer",
                        "example": 1
                    },
                    "coach_id": {
                        "description": "ID of the associated coach",
                        "type": "integer",
                        "example": 1
                    },
                    "category_id": {
                        "description": "ID of the associated category",
                        "type": "integer",
                        "example": 1
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Place": {
                "title": "Place",
                "description": "Place model",
                "properties": {
                    "id": {
                        "description": "ID of the place",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the place",
                        "type": "string",
                        "example": "Sample Place"
                    },
                    "planning_recipients": {
                        "$ref": ""
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "daypass_price": {
                        "description": "Price for a day pass",
                        "properties": {
                            "amount": {
                                "type": "integer"
                            },
                            "currency": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "member_daypass_price": {
                        "description": "Price for a member's day pass",
                        "properties": {
                            "amount": {
                                "type": "integer"
                            },
                            "currency": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "guest_daypass_price": {
                        "description": "Price for a member's guest day pass",
                        "properties": {
                            "amount": {
                                "type": "integer"
                            },
                            "currency": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "non_member_resort_access_fee": {
                        "description": "Resort access fee applied to non-members booking personal trainings",
                        "properties": {
                            "amount": {
                                "type": "integer"
                            },
                            "currency": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "opening_hours_slots": {
                        "description": "Opening hours for the place",
                        "type": "object"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "PlaceAccessLog": {
                "title": "PlaceAccessLog",
                "description": "Client access Log for a place",
                "properties": {
                    "id": {
                        "description": "ID",
                        "type": "integer",
                        "example": 1
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "booking": {
                        "$ref": "#/components/schemas/Booking"
                    },
                    "date": {
                        "description": "Date of the access",
                        "type": "string",
                        "format": "date-time"
                    },
                    "firstname": {
                        "description": "Firstname of the client",
                        "type": "string"
                    },
                    "lastname": {
                        "description": "Lastname of the client",
                        "type": "string"
                    },
                    "id_number": {
                        "description": "ID number of the client",
                        "type": "string"
                    },
                    "is_guest_pass": {
                        "description": "If the client is a member's guest",
                        "type": "boolean"
                    },
                    "access_granted": {
                        "description": "Whether the access was granted to the client",
                        "type": "boolean"
                    },
                    "reason": {
                        "description": "Reason the access wasn't granted if any",
                        "type": "string"
                    },
                    "status": {
                        "description": "Arrival/Departure tag",
                        "type": "string",
                        "enum": [
                            "arrived",
                            "left"
                        ]
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "description": "Deletion date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "PlatformModuleToggle": {
                "title": "PlatformModuleToggle",
                "description": "Global module activation/deactivation configuration entry.",
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "module_key": {
                        "type": "string",
                        "example": "quickbooks"
                    },
                    "enabled": {
                        "type": "boolean",
                        "example": true
                    },
                    "scope": {
                        "type": "string",
                        "example": "global"
                    },
                    "scope_id": {
                        "type": "integer",
                        "example": null,
                        "nullable": true
                    },
                    "updated_by_user_id": {
                        "type": "integer",
                        "example": 1902,
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "PlatformSetting": {
                "title": "PlatformSetting",
                "description": "Global platform setup and whitelabel configuration.",
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "application_name": {
                        "type": "string",
                        "example": "Champion Spirit",
                        "nullable": true
                    },
                    "brand_name": {
                        "type": "string",
                        "example": "Champion Spirit Country Club",
                        "nullable": true
                    },
                    "support_email": {
                        "type": "string",
                        "format": "email",
                        "example": "support@championspirit.com",
                        "nullable": true
                    },
                    "support_phone": {
                        "type": "string",
                        "example": "+12428125052",
                        "nullable": true
                    },
                    "website_url": {
                        "type": "string",
                        "format": "uri",
                        "example": "https://www.countryclubbahamas.com",
                        "nullable": true
                    },
                    "logo_path": {
                        "type": "string",
                        "example": "platform-setup/logo.png",
                        "nullable": true
                    },
                    "favicon_path": {
                        "type": "string",
                        "example": "platform-setup/favicon.png",
                        "nullable": true
                    },
                    "is_multi_place": {
                        "type": "boolean",
                        "example": true
                    },
                    "default_place_id": {
                        "type": "integer",
                        "example": 12,
                        "nullable": true
                    },
                    "updated_by_user_id": {
                        "type": "integer",
                        "example": 1902,
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Product": {
                "title": "Product",
                "description": "Product model",
                "properties": {
                    "id": {
                        "description": "ID of the product",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the product",
                        "type": "string",
                        "example": "Sample Product"
                    },
                    "description": {
                        "description": "Description of the product",
                        "type": "string",
                        "example": "Padel shoes"
                    },
                    "can_buy": {
                        "description": "This product can be bought",
                        "type": "boolean"
                    },
                    "can_rent": {
                        "description": "This product can be rented",
                        "type": "boolean"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "category": {
                        "$ref": "#/components/schemas/Category"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "ProductVariation": {
                "title": "ProductVariation",
                "description": "Product variation model"
            },
            "ProductVariationStock": {
                "title": "ProductVariationStock",
                "description": "Stock time-bound entries for product variations"
            },
            "Protocol": {
                "title": "Protocol",
                "description": "A protocol is a named programme of scheduled bookable sessions sold as a single item.",
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "name": {
                        "type": "string",
                        "example": "7-Day Wellness Programme"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "duration_days": {
                        "type": "integer",
                        "example": 7
                    },
                    "free_access": {
                        "type": "boolean"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Report": {
                "title": "Report",
                "description": "Report model (created by any user)",
                "properties": {
                    "id": {
                        "description": "Internal ID (not exposed in public API)",
                        "type": "integer",
                        "example": 1
                    },
                    "public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "service": {
                        "$ref": "#/components/schemas/Service"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "task": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/Task"
                            }
                        ],
                        "nullable": true
                    },
                    "origin": {
                        "type": "string",
                        "enum": [
                            "customer",
                            "coach",
                            "employee"
                        ]
                    },
                    "comment": {
                        "type": "string",
                        "nullable": true
                    },
                    "attachments": {
                        "type": "array",
                        "items": {
                            "properties": {
                                "uuid": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                },
                                "mime": {
                                    "type": "string"
                                },
                                "size": {
                                    "type": "integer"
                                }
                            },
                            "type": "object"
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "RestaurantRevenue": {
                "title": "RestaurantRevenue",
                "description": "RestaurantRevenue model",
                "properties": {
                    "id": {
                        "description": "ID of the restaurant revenue entry",
                        "type": "integer",
                        "example": 1,
                        "deprecated": true
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "transaction_price": {
                        "description": "Amount of the revenue entry",
                        "type": "integer",
                        "example": "100",
                        "deprecated": true
                    },
                    "currency": {
                        "description": "Currency of the revenue entry",
                        "type": "string",
                        "example": "EUR",
                        "deprecated": true
                    },
                    "date": {
                        "description": "Date of the revenue entry",
                        "type": "string",
                        "format": "date",
                        "deprecated": true
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time",
                        "deprecated": true
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time",
                        "deprecated": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Role": {
                "title": "Role",
                "description": "Role model",
                "properties": {
                    "id": {
                        "description": "ID of the role",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the role",
                        "type": "string",
                        "example": "admin"
                    },
                    "guard_name": {
                        "description": "Guard name of the role",
                        "type": "string",
                        "example": "web"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Service": {
                "title": "Service",
                "description": "Service model",
                "properties": {
                    "id": {
                        "description": "ID of the service",
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "description": "Name of the service",
                        "type": "string",
                        "example": "Sample Service"
                    },
                    "is_bookable": {
                        "description": "Is a bookable service",
                        "type": "boolean"
                    },
                    "type": {
                        "description": "Type of the service",
                        "type": "string",
                        "enum": [
                            "gym",
                            "co_working"
                        ]
                    },
                    "is_activity": {
                        "description": "Is an activity",
                        "type": "boolean"
                    },
                    "free_access": {
                        "description": "Grants free access to the gym for non members",
                        "type": "boolean"
                    },
                    "member_only": {
                        "description": "Only members can book",
                        "type": "boolean"
                    },
                    "is_kids_zone": {
                        "description": "Flag indicating if the service is for kids",
                        "type": "boolean",
                        "example": true
                    },
                    "is_recreational_area": {
                        "description": "Flag indicating if the service is in the recreational area",
                        "type": "boolean",
                        "example": true
                    },
                    "duration": {
                        "description": "Duration in minutes, default 60",
                        "type": "integer"
                    },
                    "setup_time": {
                        "description": "Setup time needed between 2 sessions in minutes, default 0",
                        "type": "integer"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Task": {
                "title": "Task",
                "description": "Maintenance Task model",
                "properties": {
                    "id": {
                        "description": "Internal ID (not exposed in public API)",
                        "type": "integer",
                        "example": 1
                    },
                    "public_id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "service": {
                        "$ref": "#/components/schemas/Service"
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "todo",
                            "ongoing",
                            "finished"
                        ]
                    },
                    "start_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "end_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "deadline_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "comment": {
                        "type": "string",
                        "nullable": true
                    },
                    "attachments": {
                        "type": "array",
                        "items": {
                            "properties": {
                                "uuid": {
                                    "type": "string"
                                },
                                "url": {
                                    "type": "string"
                                },
                                "mime": {
                                    "type": "string"
                                },
                                "size": {
                                    "type": "integer"
                                }
                            },
                            "type": "object"
                        }
                    },
                    "assignees": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Employee"
                        }
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "TrackingEntry": {
                "title": "TrackingEntry",
                "description": "TrackingEntry model",
                "properties": {
                    "id": {
                        "description": "ID of the tracking entry",
                        "type": "integer",
                        "example": 1
                    },
                    "type": {
                        "description": "Type of the tracking entry",
                        "type": "string",
                        "enum": [
                            "type1",
                            "type2"
                        ],
                        "example": "type1"
                    },
                    "seen_at": {
                        "description": "Timestamp when the tracking entry was seen",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "ConvertDateTimeToUTC": {
                "title": "ConvertDateTimeToUTCTrait",
                "description": "Trait for converting DateTime to UTC timezone before saving"
            },
            "Translation": {
                "title": "Translations",
                "description": "Translations model",
                "properties": {
                    "id": {
                        "description": "ID of the translation",
                        "type": "integer",
                        "example": 1
                    },
                    "language_id": {
                        "description": "ID of the language",
                        "type": "integer",
                        "example": 1
                    },
                    "type": {
                        "description": "type of the translation (app Or web)",
                        "type": "integer",
                        "example": 1
                    },
                    "key": {
                        "description": "Key of the translation",
                        "type": "string",
                        "example": "welcome.message"
                    },
                    "value": {
                        "description": "Value of the translation",
                        "type": "string",
                        "example": "Welcome"
                    }
                },
                "type": "object"
            },
            "User": {
                "title": "User",
                "description": "User model",
                "properties": {
                    "id": {
                        "description": "ID of the user",
                        "type": "integer",
                        "example": 1
                    },
                    "firstname": {
                        "description": "First name of the user",
                        "type": "string",
                        "example": "John"
                    },
                    "lastname": {
                        "description": "Last name of the user",
                        "type": "string",
                        "example": "Doe"
                    },
                    "gender": {
                        "$ref": "#/components/schemas/Gender"
                    },
                    "email": {
                        "description": "Email address of the user",
                        "type": "string",
                        "example": "john@example.com"
                    },
                    "email_2": {
                        "description": "Secondary email address of the user",
                        "type": "string",
                        "example": "john@example.com"
                    },
                    "password": {
                        "description": "User password (hashed)",
                        "type": "string",
                        "example": "hashed_password"
                    },
                    "remember_token": {
                        "description": "Remember token for authentication",
                        "type": "string",
                        "example": "remember_token"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "lang": {
                        "$ref": "#/components/schemas/Language"
                    },
                    "type": {
                        "$ref": "#/components/schemas/UserType"
                    },
                    "is_vip": {
                        "description": "If the has the VIP rates",
                        "type": "boolean",
                        "example": true
                    },
                    "allow_busy_bypass": {
                        "description": "Allows the user to book multiple sessions at the same time",
                        "type": "boolean",
                        "example": true
                    },
                    "unlimited_credits": {
                        "description": "Allows the user to have unlimited credits",
                        "type": "boolean",
                        "example": true
                    },
                    "force_vat_exclusive": {
                        "description": "Allows the user pay without VAT",
                        "type": "boolean",
                        "example": true
                    },
                    "discount": {
                        "description": "Discount percentage for the user",
                        "type": "integer"
                    },
                    "place": {
                        "$ref": "#/components/schemas/Place"
                    },
                    "family": {
                        "$ref": "#/components/schemas/Family"
                    },
                    "email_notification": {
                        "description": "Email notification preference",
                        "type": "boolean",
                        "example": true
                    },
                    "push_notification": {
                        "description": "Push notification preference",
                        "type": "boolean",
                        "example": true
                    }
                },
                "type": "object"
            },
            "Wallet": {
                "title": "Wallet",
                "description": "Wallet model",
                "properties": {
                    "id": {
                        "description": "ID of the wallet",
                        "type": "integer",
                        "example": 1
                    },
                    "user": {
                        "$ref": "#/components/schemas/User"
                    },
                    "family": {
                        "$ref": "#/components/schemas/Family"
                    },
                    "balance": {
                        "description": "Current balance of the wallet",
                        "type": "number",
                        "format": "float",
                        "example": 1000.5
                    },
                    "balance_daypass": {
                        "description": "Current daypass balance of the wallet",
                        "type": "integer",
                        "example": 1000
                    },
                    "balance_guest_pass": {
                        "description": "Current guest pass balance of the wallet",
                        "type": "integer",
                        "example": 1000
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "WalletTransaction": {
                "title": "WalletTransaction",
                "description": "WalletTransaction model",
                "properties": {
                    "id": {
                        "description": "ID of the wallet transaction",
                        "type": "integer",
                        "example": 1
                    },
                    "type": {
                        "$ref": "#/components/schemas/WalletTransactionType"
                    },
                    "payment_type": {
                        "$ref": "#/components/schemas/WalletPaymentType"
                    },
                    "amount": {
                        "description": "Amount of the wallet transaction",
                        "type": "number",
                        "format": "float",
                        "example": 100.5
                    },
                    "amount_daypass": {
                        "description": "Daypass amount of the wallet transaction",
                        "type": "integer",
                        "example": 100
                    },
                    "amount_guest_pass": {
                        "description": "Guest Pass amount of the wallet transaction",
                        "type": "integer",
                        "example": 100
                    },
                    "money_amount": {
                        "description": "Cash equivalent amount of the wallet transaction",
                        "type": "integer",
                        "example": 100
                    },
                    "money_currency": {
                        "description": "Currency of the wallet transaction",
                        "type": "string",
                        "example": "EUR"
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "WellnessCourse": {
                "title": "WellnessCourse",
                "description": "WellnessCourse model",
                "properties": {
                    "id": {
                        "description": "ID of the wellness course",
                        "type": "integer",
                        "example": 1
                    },
                    "place_id": {
                        "description": "ID of the associated place",
                        "type": "integer",
                        "example": 1
                    },
                    "coach_id": {
                        "description": "ID of the associated coach",
                        "type": "integer",
                        "example": 1
                    },
                    "category_id": {
                        "description": "ID of the associated category",
                        "type": "integer",
                        "example": 1
                    },
                    "created_at": {
                        "description": "Creation date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "updated_at": {
                        "description": "Last update date and time",
                        "type": "string",
                        "format": "date-time"
                    },
                    "utc_date": {
                        "description": "Date and time converted to UTC timezone",
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            }
        },
        "requestBodies": {
            "StoreAiMessage": {
                "required": true,
                "content": {
                    "application/json": {
                        "schema": {
                            "properties": {
                                "message": {
                                    "type": "string"
                                }
                            },
                            "type": "object"
                        }
                    }
                }
            },
            "StoreConversation": {
                "description": "Create one-to-one conversation",
                "required": true,
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/StoreConversationPayload"
                        }
                    }
                }
            },
            "StoreMessage": {
                "description": "Send a new chat message (text | gps | voice | attachment)",
                "required": true,
                "content": {
                    "multipart/form-data": {
                        "schema": {
                            "$ref": "#/components/schemas/StoreMessagePayload"
                        }
                    }
                }
            },
            "UploadAttachment": {
                "required": true,
                "content": {
                    "multipart/form-data": {
                        "schema": {
                            "required": [
                                "file"
                            ],
                            "properties": {
                                "file": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            },
                            "type": "object"
                        }
                    }
                }
            }
        },
        "securitySchemes": {
            "api_key": {
                "type": "apiKey",
                "description": "API Key authentication for chatbot. Use \"X-API-KEY\" as the header.",
                "name": "X-API-KEY",
                "in": "header"
            },
            "sanctum": {
                "type": "http",
                "description": "Enter token in format (Bearer <token>)",
                "scheme": "bearer",
                "name": "Authorization",
                "in": "header"
            }
        }
    },
    "tags": [
        {
            "name": "Access Validation",
            "description": "Validate member, guest pass, and daypass access"
        },
        {
            "name": "Guest Passes",
            "description": "Guest pass validation endpoints"
        },
        {
            "name": "Daypasses",
            "description": "Daypass validation endpoints"
        },
        {
            "name": "Member Validation",
            "description": "Validate members, coaches, and employees access"
        },
        {
            "name": "Employee",
            "description": "Products catalog endpoints for Employee"
        },
        {
            "name": "Products",
            "description": "Products catalog endpoints"
        },
        {
            "name": "Account",
            "description": "Account"
        },
        {
            "name": "Guest Invitations",
            "description": "Guest Invitations"
        },
        {
            "name": "Address",
            "description": "Address"
        },
        {
            "name": "Availability",
            "description": "Availability"
        },
        {
            "name": "Booking",
            "description": "Booking"
        },
        {
            "name": "Broadcasting",
            "description": "Broadcasting"
        },
        {
            "name": "Category",
            "description": "Category"
        },
        {
            "name": "Chat",
            "description": "Chat"
        },
        {
            "name": "Coach",
            "description": "Coach"
        },
        {
            "name": "Customer",
            "description": "Customer"
        },
        {
            "name": "Device",
            "description": "Device"
        },
        {
            "name": "Availabilities",
            "description": "Availabilities"
        },
        {
            "name": "Bookings",
            "description": "Bookings"
        },
        {
            "name": "Dashboard",
            "description": "Dashboard"
        },
        {
            "name": "Guest",
            "description": "Guest"
        },
        {
            "name": "Hotel Manager",
            "description": "Hotel Manager"
        },
        {
            "name": "Extras",
            "description": "Extras"
        },
        {
            "name": "Reservations",
            "description": "Reservations"
        },
        {
            "name": "Payments",
            "description": "Payments"
        },
        {
            "name": "Check-in/out",
            "description": "Check-in/out"
        },
        {
            "name": "Invoices",
            "description": "Invoices"
        },
        {
            "name": "Housekeeping",
            "description": "Housekeeping"
        },
        {
            "name": "Channel Manager",
            "description": "Channel Manager"
        },
        {
            "name": "Rates",
            "description": "Rates"
        },
        {
            "name": "Room Types",
            "description": "Room Types"
        },
        {
            "name": "Rooms",
            "description": "Rooms"
        },
        {
            "name": "Access",
            "description": "Access"
        },
        {
            "name": "Service",
            "description": "Service"
        },
        {
            "name": "Orders",
            "description": "Orders"
        },
        {
            "name": "Restaurant Manager",
            "description": "Restaurant Manager"
        },
        {
            "name": "Carts",
            "description": "Carts"
        },
        {
            "name": "Customers",
            "description": "Customers"
        },
        {
            "name": "Closures",
            "description": "Closures"
        },
        {
            "name": "Menu Categories",
            "description": "Menu Categories"
        },
        {
            "name": "Menus",
            "description": "Menus"
        },
        {
            "name": "Menu Items",
            "description": "Menu Items"
        },
        {
            "name": "Tables",
            "description": "Tables"
        },
        {
            "name": "Hours",
            "description": "Hours"
        },
        {
            "name": "Shop Manager",
            "description": "Shop Manager"
        },
        {
            "name": "Inventory",
            "description": "Inventory"
        },
        {
            "name": "Task",
            "description": "Task"
        },
        {
            "name": "Hotel",
            "description": "Hotel"
        },
        {
            "name": "Hotels",
            "description": "Hotels"
        },
        {
            "name": "Kid",
            "description": "Kid"
        },
        {
            "name": "Language",
            "description": "Language"
        },
        {
            "name": "Packs",
            "description": "Packs"
        },
        {
            "name": "Webhooks",
            "description": "Webhooks"
        },
        {
            "name": "Place",
            "description": "Place"
        },
        {
            "name": "Facility",
            "description": "Facility"
        },
        {
            "name": "Report",
            "description": "Report"
        },
        {
            "name": "Restaurant Customer",
            "description": "Restaurant Customer"
        },
        {
            "name": "Pre-order",
            "description": "Pre-order"
        },
        {
            "name": "Restaurants",
            "description": "Restaurants"
        },
        {
            "name": "Search",
            "description": "Search"
        },
        {
            "name": "Global Search",
            "description": "Global Search"
        },
        {
            "name": "PKPass",
            "description": "PKPass"
        },
        {
            "name": "Stripe",
            "description": "Stripe"
        },
        {
            "name": "Wallet",
            "description": "Wallet"
        },
        {
            "name": "Tracking",
            "description": "Tracking"
        },
        {
            "name": "Chatbot",
            "description": "Chatbot"
        }
    ],
    "security": [
        {
            "api_key": []
        }
    ]
}