{
    "openapi": "3.0.0",
    "info": {
        "title": "CLIENTXCMS New Gen API",
        "description": "This is the API documentation for the CLIENTXCMS New Gen API. ",
        "contact": {
            "name": "CLIENTXCMS Support",
            "url": "https://clientxcms.com/client/support",
            "email": "contact@clientxcms.com"
        },
        "version": "1.0.2"
    },
    "servers": [
        {
            "url": "https://clientxcms.app/api",
            "description": "Endpoint"
        }
    ],
    "paths": {
        "/api": {},
        "/application/invoices": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Get a list of invoices",
                "operationId": "6e76f12af031c8869048dd5678d46943",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "created_at"
                        }
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "description": "Filter invoices",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Related resources to include",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "customer,items"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of invoices",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Invoice"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Create a new invoice",
                "operationId": "c92092be603e68c18fa2277bb95677f1",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreInvoiceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Invoice created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/invoices/{invoice}": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Get a single invoice",
                "operationId": "47eda0645c0afbbcf4d87032c0fbafa1",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A single invoice",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Update an existing invoice",
                "operationId": "2cdbbe1e4f4ec89e3b2913f5f320d960",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateInvoiceRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Invoice updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Delete an existing invoice",
                "operationId": "5d5220133d9c144aa7c46aff1642f551",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Invoice deleted successfully"
                    },
                    "403": {
                        "description": "Invoice cannot be deleted"
                    }
                }
            }
        },
        "/application/invoices/{invoice}/pdf": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Get the PDF of a single invoice",
                "operationId": "953d19e5c0e90ef56e707643d4087162",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "PDF of the invoice",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/invoices/export": {
            "post": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Get the Excel of a single invoice",
                "operationId": "71e79d5b5e568f14fb2fba7e13b4ff41",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Excel of the invoice",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/invoices/{invoice}/validate": {
            "post": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Validate an invoice",
                "operationId": "439ef4555269e196f30df8a439e6ceff",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invoice validated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Validation errors"
                    }
                }
            }
        },
        "/application/invoices/{invoice}/edit": {
            "post": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Edit an invoice",
                "operationId": "5fb33a8f85185dc43f2d44f7788e527f",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invoice edited successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Validation errors"
                    }
                }
            }
        },
        "/application/invoices/{invoice}/notify": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Notify about an invoice",
                "operationId": "ca1f43d9bf232d6cd0e8a22c6b1b5fb5",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Notification sent successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Validation errors"
                    }
                }
            }
        },
        "/application/invoices/{invoice}/download": {
            "get": {
                "tags": [
                    "Invoices"
                ],
                "summary": "Download an invoice as PDF",
                "operationId": "e9611f48f43e09ce83ff800e309d7ab7",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "description": "ID or UUID of the invoice",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "PDF file download"
                    }
                }
            }
        },
        "/client/auth/login": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Login to client account",
                "operationId": "f797ddaf0227d1fa2ede6a664a861d01",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "user@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "password123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Login successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "token": {
                                            "type": "string"
                                        },
                                        "token_type": {
                                            "type": "string",
                                            "example": "Bearer"
                                        },
                                        "requires_2fa": {
                                            "type": "boolean"
                                        },
                                        "customer": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Invalid credentials"
                    },
                    "403": {
                        "description": "Account banned or disabled"
                    }
                }
            }
        },
        "/client/auth/2fa/verify": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Verify 2FA code after login",
                "operationId": "c71c14bd61542a3705860e46cb5cb4c0",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "code"
                                ],
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "example": "123456"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "2FA verification successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "token": {
                                            "type": "string"
                                        },
                                        "token_type": {
                                            "type": "string",
                                            "example": "Bearer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Invalid 2FA code"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/auth/register": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Register a new client account",
                "operationId": "ef0d3269eab5bb8cf85f345551675bbd",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password",
                                    "password_confirmation",
                                    "firstname",
                                    "lastname",
                                    "country"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password"
                                    },
                                    "password_confirmation": {
                                        "type": "string",
                                        "format": "password"
                                    },
                                    "firstname": {
                                        "type": "string"
                                    },
                                    "lastname": {
                                        "type": "string"
                                    },
                                    "address": {
                                        "type": "string"
                                    },
                                    "address2": {
                                        "type": "string"
                                    },
                                    "city": {
                                        "type": "string"
                                    },
                                    "zipcode": {
                                        "type": "string"
                                    },
                                    "region": {
                                        "type": "string"
                                    },
                                    "phone": {
                                        "type": "string"
                                    },
                                    "country": {
                                        "type": "string",
                                        "example": "FR"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Registration successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        },
                                        "token": {
                                            "type": "string"
                                        },
                                        "customer": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "403": {
                        "description": "Registration disabled"
                    }
                }
            }
        },
        "/client/auth/forgot-password": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Request password reset link",
                "operationId": "4945b23fc11a06392ee9fa5f536f1546",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Password reset link sent",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/client/auth/reset-password": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Reset password with token",
                "operationId": "6084eb3c9d64d74b7312881221dc6122",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "token",
                                    "email",
                                    "password",
                                    "password_confirmation"
                                ],
                                "properties": {
                                    "token": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password"
                                    },
                                    "password_confirmation": {
                                        "type": "string",
                                        "format": "password"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Password reset successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Invalid token or validation error"
                    }
                }
            }
        },
        "/client/auth/logout": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Logout and revoke token",
                "operationId": "637d39ccf711f97c64eae7107ed5a3fd",
                "responses": {
                    "200": {
                        "description": "Logout successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/invoices": {
            "get": {
                "tags": [
                    "Customer Invoices"
                ],
                "summary": "List customer's invoices",
                "operationId": "4231925d24dc7cdf7c258e0c55fcb45d",
                "parameters": [
                    {
                        "name": "filter",
                        "in": "query",
                        "description": "Filter by status (pending, paid, cancelled, refunded)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of invoices"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/invoices/{invoice}": {
            "get": {
                "tags": [
                    "Customer Invoices"
                ],
                "summary": "Get invoice details",
                "operationId": "ab897b62cf38e09782c2194de2062b16",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Invoice details with items"
                    },
                    "404": {
                        "description": "Invoice not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/invoices/{invoice}/pdf": {
            "get": {
                "tags": [
                    "Customer Invoices"
                ],
                "summary": "Stream invoice PDF",
                "operationId": "dc83495024958aa6f8da239b4e3116df",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "PDF stream"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/invoices/{invoice}/download": {
            "get": {
                "tags": [
                    "Customer Invoices"
                ],
                "summary": "Download invoice PDF",
                "operationId": "b6b34a4cc013d0d85fc03e90292723b9",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "PDF download"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/invoices/{invoice}/pay/{gateway}": {
            "post": {
                "tags": [
                    "Customer Invoices"
                ],
                "summary": "Pay an invoice",
                "operationId": "3d0888d202547735b9b70904b78925b7",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "gateway",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payment initiated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "redirect_url": {
                                            "type": "string"
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Cannot pay invoice"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/invoices/{invoice}/balance": {
            "post": {
                "tags": [
                    "Customer Invoices"
                ],
                "summary": "Add balance to invoice",
                "operationId": "5dde1e9524713dc8d60b012db442e2d4",
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount"
                                ],
                                "properties": {
                                    "amount": {
                                        "type": "number"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Balance added"
                    },
                    "400": {
                        "description": "Insufficient balance"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/payment-methods": {
            "get": {
                "tags": [
                    "Customer Payment Methods"
                ],
                "summary": "List customer's payment methods",
                "operationId": "bcd8cd1e9aa49143c843797674f6d2d7",
                "responses": {
                    "200": {
                        "description": "List of payment methods"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/payment-methods/gateways": {
            "get": {
                "tags": [
                    "Customer Payment Methods"
                ],
                "summary": "List available gateways that support payment methods",
                "operationId": "f8560885ee8c56a3553f6d87bc63631c",
                "responses": {
                    "200": {
                        "description": "List of gateways"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/payment-methods/{gateway}": {
            "post": {
                "tags": [
                    "Customer Payment Methods"
                ],
                "summary": "Add a new payment method",
                "operationId": "ee8a2b35bfe6af2dfc67f62227e4faf4",
                "parameters": [
                    {
                        "name": "gateway",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Gateway-specific payment method data",
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Payment method added"
                    },
                    "400": {
                        "description": "Gateway does not support payment methods"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/payment-methods/{source}/default": {
            "put": {
                "tags": [
                    "Customer Payment Methods"
                ],
                "summary": "Set default payment method",
                "operationId": "3a180d013d1b636b2d8bbfcd40a7d3c0",
                "parameters": [
                    {
                        "name": "source",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Default payment method set"
                    },
                    "404": {
                        "description": "Payment method not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/payment-methods/{source}": {
            "delete": {
                "tags": [
                    "Customer Payment Methods"
                ],
                "summary": "Delete a payment method",
                "operationId": "2824190ccf67995f5d048723f294f9fd",
                "parameters": [
                    {
                        "name": "source",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payment method deleted"
                    },
                    "404": {
                        "description": "Payment method not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/profile": {
            "get": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Get current user profile",
                "operationId": "144ef72f29bb6cdd9c05a63a71fcf11f",
                "responses": {
                    "200": {
                        "description": "Profile data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "firstname": {
                                                    "type": "string"
                                                },
                                                "lastname": {
                                                    "type": "string"
                                                },
                                                "address": {
                                                    "type": "string"
                                                },
                                                "city": {
                                                    "type": "string"
                                                },
                                                "country": {
                                                    "type": "string"
                                                },
                                                "phone": {
                                                    "type": "string"
                                                },
                                                "balance": {
                                                    "type": "number"
                                                },
                                                "two_factor_enabled": {
                                                    "type": "boolean"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Update profile information",
                "operationId": "c6cb44a2a1518f1224b0d7faf3ca5243",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "firstname": {
                                        "type": "string"
                                    },
                                    "lastname": {
                                        "type": "string"
                                    },
                                    "address": {
                                        "type": "string"
                                    },
                                    "address2": {
                                        "type": "string"
                                    },
                                    "city": {
                                        "type": "string"
                                    },
                                    "zipcode": {
                                        "type": "string"
                                    },
                                    "region": {
                                        "type": "string"
                                    },
                                    "country": {
                                        "type": "string"
                                    },
                                    "phone": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Delete account",
                "operationId": "6c3bd56c2be45a76150bdecf593b43ca",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "password"
                                ],
                                "properties": {
                                    "password": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Account deleted"
                    },
                    "400": {
                        "description": "Cannot delete account (active services, etc.)"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/profile/password": {
            "put": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Change password",
                "operationId": "62e5aa91ffc65e56d94f865ad2c25312",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "current_password",
                                    "password",
                                    "password_confirmation"
                                ],
                                "properties": {
                                    "current_password": {
                                        "type": "string"
                                    },
                                    "password": {
                                        "type": "string"
                                    },
                                    "password_confirmation": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Password changed successfully"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/profile/2fa": {
            "post": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Enable or disable 2FA",
                "operationId": "b3526b6145cbe3b6fb51295a8c9eb706",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "code"
                                ],
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "example": "123456"
                                    },
                                    "secret": {
                                        "description": "Required when enabling 2FA",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "2FA toggled successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        },
                                        "enabled": {
                                            "type": "boolean"
                                        },
                                        "recovery_codes": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/profile/2fa/setup": {
            "get": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Get 2FA setup information (secret and QR code)",
                "operationId": "4cb14d003766a554dc9ab94c190378da",
                "responses": {
                    "200": {
                        "description": "2FA setup data",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "secret": {
                                            "type": "string"
                                        },
                                        "qr_code": {
                                            "description": "SVG QR code",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/profile/2fa/recovery-codes": {
            "get": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Get 2FA recovery codes",
                "operationId": "bef337b2e034797a819a712097c9f26e",
                "responses": {
                    "200": {
                        "description": "Recovery codes",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "recovery_codes": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/profile/security-question": {
            "post": {
                "tags": [
                    "Customer Profile"
                ],
                "summary": "Save security question",
                "operationId": "5fd910865105fb4d5bcbbe501419c66c",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "security_question_id",
                                    "security_answer",
                                    "current_password"
                                ],
                                "properties": {
                                    "security_question_id": {
                                        "type": "integer"
                                    },
                                    "security_answer": {
                                        "type": "string"
                                    },
                                    "current_password": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Security question saved"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/services": {
            "get": {
                "tags": [
                    "Customer Services"
                ],
                "summary": "List customer's services",
                "operationId": "f8b5f0fd48ea331de517efc782c9ef79",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filter by status (active, suspended, cancelled, expired, pending)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of services"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/services/{service}": {
            "get": {
                "tags": [
                    "Customer Services"
                ],
                "summary": "Get service details",
                "operationId": "5e8aa2770480e0519e462a128e032c57",
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Service details"
                    },
                    "404": {
                        "description": "Service not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/tickets": {
            "get": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "List customer's tickets",
                "operationId": "21fcfbd38902320a849c55eebdd26280",
                "parameters": [
                    {
                        "name": "filter",
                        "in": "query",
                        "description": "Filter by status (open, answered, customer_reply, closed)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of tickets",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "Create a new ticket",
                "operationId": "26bae17b90a50b3d61ed59537b8a7380",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "department_id",
                                    "subject",
                                    "content",
                                    "priority"
                                ],
                                "properties": {
                                    "department_id": {
                                        "type": "integer"
                                    },
                                    "subject": {
                                        "type": "string"
                                    },
                                    "content": {
                                        "type": "string"
                                    },
                                    "priority": {
                                        "type": "string",
                                        "enum": [
                                            "low",
                                            "medium",
                                            "high"
                                        ]
                                    },
                                    "related_id": {
                                        "type": "integer"
                                    },
                                    "related_type": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Ticket created",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/tickets/departments": {
            "get": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "List available departments",
                "operationId": "0737beb7f8544c72fc4e6a0988d526fd",
                "responses": {
                    "200": {
                        "description": "List of departments"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/tickets/{ticket}": {
            "get": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "Get ticket details",
                "operationId": "698f05a5abc44f6749fde04b71932d11",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ticket details with messages",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Ticket not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/tickets/{ticket}/reply": {
            "post": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "Reply to a ticket",
                "operationId": "a15d7e8ddcca5c0e2ab8373fd173cbbb",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "content"
                                ],
                                "properties": {
                                    "content": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Reply added"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/tickets/{ticket}/close": {
            "post": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "Close a ticket",
                "operationId": "75fe37072c30817fee9a9930559f24a1",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ticket closed"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/tickets/{ticket}/reopen": {
            "post": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "Reopen a closed ticket",
                "operationId": "b1134313a096e1977d9d2e337270f0e2",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ticket reopened"
                    },
                    "400": {
                        "description": "Cannot reopen (too old)"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/client/tickets/{ticket}/attachments/{attachment}": {
            "get": {
                "tags": [
                    "Customer Tickets"
                ],
                "summary": "Download an attachment",
                "operationId": "79f161c770ad0c281c228497ff0e0744",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "attachment",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File download"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/application/customers": {
            "get": {
                "tags": [
                    "Customers"
                ],
                "summary": "List customers",
                "operationId": "getCustomers",
                "parameters": [
                    {
                        "name": "filter[email]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[firstname]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[lastname]",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort fields, e.g. sort=id or sort=-id",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Include relations (invoices, metadata, services)",
                        "schema": {
                            "type": "string",
                            "example": "invoices,metadata"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of customers"
                    }
                }
            },
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Create customer",
                "operationId": "storeCustomer",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreCustomerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Customer created"
                    }
                }
            }
        },
        "/application/customers/{id}": {
            "get": {
                "tags": [
                    "Customers"
                ],
                "summary": "Get customer",
                "operationId": "getCustomer",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer found"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            },
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Update customer",
                "operationId": "updateCustomer",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateCustomerRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Customer updated"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Customers"
                ],
                "summary": "Delete customer",
                "operationId": "deleteCustomer",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "force",
                        "in": "query",
                        "description": "Force deletion even with active services",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Customer deleted"
                    },
                    "400": {
                        "description": "Customer cannot be deleted"
                    }
                }
            }
        },
        "/application/customers/{id}/confirm": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Confirm email of a customer",
                "operationId": "confirmCustomer",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Email verified"
                    },
                    "400": {
                        "description": "Already verified"
                    }
                }
            }
        },
        "/application/customers/{id}/send_password": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Send password reset link",
                "operationId": "forgotPasswordCustomer",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Link sent"
                    },
                    "400": {
                        "description": "Already verified"
                    }
                }
            }
        },
        "/application/customers/{id}/resend_confirmation": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Resend email confirmation",
                "operationId": "resendConfirmationCustomer",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Verification link sent"
                    },
                    "400": {
                        "description": "Already verified"
                    }
                }
            }
        },
        "/application/customers/{id}/action/{action}": {
            "post": {
                "tags": [
                    "Customers"
                ],
                "summary": "Perform action on customer (suspend, reactivate, ban, disable2FA)",
                "operationId": "customerAction",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "action",
                        "in": "path",
                        "description": "Action name",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "suspend",
                                "reactivate",
                                "ban",
                                "disable2FA"
                            ]
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "example": "Violation of terms"
                                    },
                                    "notify": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "force": {
                                        "type": "boolean",
                                        "example": false
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Action performed"
                    }
                }
            }
        },
        "/application/departments": {
            "get": {
                "tags": [
                    "Departments"
                ],
                "summary": "Get a list of support departments",
                "operationId": "ba7029296ac0236ec5cc62fd9d82e647",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "created_at"
                        }
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "description": "Filter departments",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Related resources to include",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "tickets"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of support departments",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/SupportDepartment"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Departments"
                ],
                "summary": "Create a new support department",
                "operationId": "b8f766300f92165ee857dcb2bca60925",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "description",
                                    "icon"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Technical Support"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Handles all technical issues"
                                    },
                                    "icon": {
                                        "type": "string",
                                        "example": "bi bi-question-circle"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Department created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportDepartment"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/departments/{department}": {
            "get": {
                "tags": [
                    "Departments"
                ],
                "summary": "Get a single support department",
                "operationId": "0f89d1b194fff44b6a16ebe24d9edd1d",
                "parameters": [
                    {
                        "name": "department",
                        "in": "path",
                        "description": "ID of the department",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A single support department",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportDepartment"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Departments"
                ],
                "summary": "Update an existing support department",
                "operationId": "97b08b776cdc1fa3a810459ff9ef3494",
                "parameters": [
                    {
                        "name": "department",
                        "in": "path",
                        "description": "ID of the department",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "description",
                                    "icon"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Technical Support"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Handles all technical issues"
                                    },
                                    "icon": {
                                        "type": "string",
                                        "example": "bi bi-question-circle"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Department updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportDepartment"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Departments"
                ],
                "summary": "Delete an existing support department",
                "operationId": "1b8717ea5218bac4b1c4fffd72f148aa",
                "parameters": [
                    {
                        "name": "department",
                        "in": "path",
                        "description": "ID of the department",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Department deleted successfully"
                    },
                    "403": {
                        "description": "Department cannot be deleted (has tickets)"
                    }
                }
            }
        },
        "/application/tickets": {
            "get": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Get a list of support tickets",
                "operationId": "ca3fb08fe4f01691e984b38d73f94471",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "created_at"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "Filter by status (open, closed, answered)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[priority]",
                        "in": "query",
                        "description": "Filter by priority (low, medium, high)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[department_id]",
                        "in": "query",
                        "description": "Filter by department ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[customer_id]",
                        "in": "query",
                        "description": "Filter by customer ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Related resources to include",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "customer,department,messages"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of support tickets",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/SupportTicket"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Create a new support ticket",
                "operationId": "d5c58d680d404bcff28a8b98876b1171",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "department_id",
                                    "customer_id",
                                    "subject",
                                    "priority",
                                    "content"
                                ],
                                "properties": {
                                    "department_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "customer_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "subject": {
                                        "type": "string",
                                        "example": "Issue with my service"
                                    },
                                    "priority": {
                                        "type": "string",
                                        "enum": [
                                            "low",
                                            "medium",
                                            "high"
                                        ],
                                        "example": "medium"
                                    },
                                    "content": {
                                        "type": "string",
                                        "example": "I'm having issues with my service..."
                                    },
                                    "related_type": {
                                        "type": "string",
                                        "enum": [
                                            "service",
                                            "invoice"
                                        ],
                                        "nullable": true
                                    },
                                    "related_id": {
                                        "type": "integer",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Ticket created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportTicket"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/tickets/{ticket}": {
            "get": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Get a single support ticket",
                "operationId": "777f58f2548c6706fcb3a550bf80cfc2",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "description": "ID or UUID of the ticket",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A single support ticket",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportTicket"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Update an existing support ticket",
                "operationId": "5aeb39e5a514197bee8697e1ef7970a3",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "description": "ID or UUID of the ticket",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "department_id",
                                    "subject",
                                    "priority"
                                ],
                                "properties": {
                                    "department_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "subject": {
                                        "type": "string",
                                        "example": "Updated subject"
                                    },
                                    "priority": {
                                        "type": "string",
                                        "enum": [
                                            "low",
                                            "medium",
                                            "high"
                                        ],
                                        "example": "high"
                                    },
                                    "assigned_to": {
                                        "type": "integer",
                                        "nullable": true
                                    },
                                    "close_reason": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Ticket updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportTicket"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Delete/Close an existing support ticket",
                "operationId": "77e5172941565be3122dfef6323fd265",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "description": "ID or UUID of the ticket",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ticket closed/deleted successfully"
                    }
                }
            }
        },
        "/application/tickets/{ticket}/reply": {
            "post": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Reply to a support ticket",
                "operationId": "eeb6afb01b6719e2f6a6b51f1da25022",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "description": "ID or UUID of the ticket",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "content"
                                ],
                                "properties": {
                                    "content": {
                                        "type": "string",
                                        "example": "Thank you for contacting us..."
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Reply added successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportTicket"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/tickets/{ticket}/close": {
            "post": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Close a support ticket",
                "operationId": "08b30793024f61b5600b00d2a476af4a",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "description": "ID or UUID of the ticket",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "reason": {
                                        "type": "string",
                                        "example": "Issue resolved",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Ticket closed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportTicket"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/tickets/{ticket}/reopen": {
            "post": {
                "tags": [
                    "Tickets"
                ],
                "summary": "Reopen a closed support ticket",
                "operationId": "84b8683d10eeb2a7b980b0a47d4890d7",
                "parameters": [
                    {
                        "name": "ticket",
                        "in": "path",
                        "description": "ID or UUID of the ticket",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ticket reopened successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SupportTicket"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Ticket is not closed"
                    }
                }
            }
        },
        "/api/cancellation_reasons": {
            "get": {
                "tags": [
                    "Cancellation Reasons"
                ],
                "summary": "List all cancellation reasons",
                "operationId": "d78fd632b09b0f9315912f9bc70e39ae",
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                }
            },
            "post": {
                "tags": [
                    "Cancellation Reasons"
                ],
                "summary": "Create a new cancellation reason",
                "operationId": "361c57951d113f1ceb588f21f52a8c30",
                "responses": {
                    "201": {
                        "description": "Created"
                    }
                }
            }
        },
        "/api/cancellation_reasons/{id}": {
            "get": {
                "tags": [
                    "Cancellation Reasons"
                ],
                "summary": "Get a specific cancellation reason",
                "operationId": "5ae253acef5a78b6949b0b5df4bce45f",
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                }
            },
            "post": {
                "tags": [
                    "Cancellation Reasons"
                ],
                "summary": "Update a cancellation reason",
                "operationId": "5a6a43c1e64a9aa31702003272a58776",
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Cancellation Reasons"
                ],
                "summary": "Delete a cancellation reason",
                "operationId": "e3b19423af9e9e82219d2778586b5bf7",
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                }
            }
        },
        "/api/cancellation_reasons_analytics": {
            "get": {
                "tags": [
                    "Cancellation Reasons"
                ],
                "summary": "Get cancellation analytics data",
                "operationId": "2d67eb6bfa07e1a37a098ed4ccfda908",
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                }
            }
        },
        "/application/servers": {
            "get": {
                "tags": [
                    "Servers"
                ],
                "summary": "Get a list of servers",
                "operationId": "097e6898d25406e28b113628f78ef9d9",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[type]",
                        "in": "query",
                        "description": "Filter by server type (pterodactyl, plesk, etc.)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "Filter by status",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of servers",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ProvisioningServer"
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Servers"
                ],
                "summary": "Create a new server",
                "operationId": "b9685ad3634a0c74b050ee1b4d27970f",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "address",
                                    "type"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Node-Paris-01"
                                    },
                                    "hostname": {
                                        "type": "string",
                                        "example": "paris01.example.com"
                                    },
                                    "address": {
                                        "type": "string",
                                        "example": "192.168.0.10"
                                    },
                                    "port": {
                                        "type": "integer",
                                        "example": 443
                                    },
                                    "username": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "password": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "type": {
                                        "type": "string",
                                        "example": "pterodactyl"
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "hidden",
                                            "unreferenced"
                                        ],
                                        "example": "active"
                                    },
                                    "maxaccounts": {
                                        "type": "integer",
                                        "example": 100,
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Server created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningServer"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/application/servers/{server}": {
            "get": {
                "tags": [
                    "Servers"
                ],
                "summary": "Get a single server",
                "operationId": "b9957141a36f96deb6019f3686710c2b",
                "parameters": [
                    {
                        "name": "server",
                        "in": "path",
                        "description": "ID of the server",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A single server",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningServer"
                                }
                            }
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Servers"
                ],
                "summary": "Update an existing server",
                "operationId": "5e490fca2fa45676391b899976d18e23",
                "parameters": [
                    {
                        "name": "server",
                        "in": "path",
                        "description": "ID of the server",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "hostname": {
                                        "type": "string"
                                    },
                                    "address": {
                                        "type": "string"
                                    },
                                    "port": {
                                        "type": "integer"
                                    },
                                    "username": {
                                        "type": "string"
                                    },
                                    "password": {
                                        "type": "string"
                                    },
                                    "type": {
                                        "type": "string"
                                    },
                                    "status": {
                                        "type": "string"
                                    },
                                    "maxaccounts": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Server updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningServer"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Servers"
                ],
                "summary": "Delete an existing server",
                "operationId": "6438d6f99a153b01ac8f38261763c3c1",
                "parameters": [
                    {
                        "name": "server",
                        "in": "path",
                        "description": "ID of the server",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Server deleted successfully"
                    }
                }
            }
        },
        "/application/servers/test": {
            "post": {
                "tags": [
                    "Servers"
                ],
                "summary": "Test server connection",
                "operationId": "609de3b2fa0fddbbff3d07fd2acc70af",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "address",
                                    "type"
                                ],
                                "properties": {
                                    "address": {
                                        "type": "string"
                                    },
                                    "port": {
                                        "type": "integer"
                                    },
                                    "type": {
                                        "type": "string"
                                    },
                                    "username": {
                                        "type": "string"
                                    },
                                    "password": {
                                        "type": "string"
                                    },
                                    "hostname": {
                                        "type": "string"
                                    },
                                    "server_id": {
                                        "description": "Existing server ID to use credentials from",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Connection test result"
                    }
                }
            }
        },
        "/application/services": {
            "get": {
                "tags": [
                    "Services"
                ],
                "summary": "Get a list of services",
                "description": "Returns a list of services",
                "operationId": "getAllServices",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "created_at"
                        }
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "description": "Filter services",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Related resources to include",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "customer,metadata,pricings,configoptions"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation"
                    }
                }
            }
        },
        "/application/services/{id}": {
            "get": {
                "tags": [
                    "Services"
                ],
                "summary": "Get service information",
                "description": "Returns service data",
                "operationId": "getServiceById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "service id or uuid",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningService"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "service not found"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Services"
                ],
                "summary": "Delete service information",
                "description": "Delete service data",
                "operationId": "deleteServiceById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "service id or uuid",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningService"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "service not found"
                    }
                }
            }
        },
        "/application/expire/{id}": {
            "delete": {
                "tags": [
                    "Services"
                ],
                "summary": "expire service",
                "description": "Returns service data and result",
                "operationId": "expireServiceById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "service id or uuid",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "force": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "force": false
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningService"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "service not found"
                    }
                }
            }
        },
        "/application/suspend/{id}": {
            "put": {
                "tags": [
                    "Services"
                ],
                "summary": "suspend service",
                "description": "Returns service data and result",
                "operationId": "suspendServiceById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "service id or uuid",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "reason": {
                                        "type": "string"
                                    },
                                    "notify": {
                                        "type": "boolean"
                                    }
                                },
                                "type": "object",
                                "example": {
                                    "reason": "unpaid",
                                    "notify": false
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningService"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "service not found"
                    }
                }
            }
        },
        "/application/unsuspend/{id}": {
            "put": {
                "tags": [
                    "Services"
                ],
                "summary": "unsuspend service",
                "description": "Returns service data and result",
                "operationId": "unsuspendServiceById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "service id or uuid",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProvisioningService"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "service not found"
                    }
                }
            }
        },
        "/application/subdomains": {
            "get": {
                "tags": [
                    "Subdomain Hosts"
                ],
                "summary": "Get a list of subdomain hosts",
                "operationId": "f9eaaa2763ec838a177718d1e503c323",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of subdomain hosts"
                    }
                }
            },
            "post": {
                "tags": [
                    "Subdomain Hosts"
                ],
                "summary": "Create a new subdomain host",
                "operationId": "f7705da3bcf4440c6b1297e06c1c1e85",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "domain"
                                ],
                                "properties": {
                                    "domain": {
                                        "type": "string",
                                        "example": ".example.com"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Subdomain host created successfully"
                    }
                }
            }
        },
        "/application/subdomains/{subdomain}": {
            "get": {
                "tags": [
                    "Subdomain Hosts"
                ],
                "summary": "Get a single subdomain host",
                "operationId": "3f01f5e502e0515368a0594dc1fad3f0",
                "parameters": [
                    {
                        "name": "subdomain",
                        "in": "path",
                        "description": "ID of the subdomain host",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A single subdomain host"
                    }
                }
            },
            "put": {
                "tags": [
                    "Subdomain Hosts"
                ],
                "summary": "Update an existing subdomain host",
                "operationId": "1d39e4d9f59af712ad58c7f80d743269",
                "parameters": [
                    {
                        "name": "subdomain",
                        "in": "path",
                        "description": "ID of the subdomain host",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "domain"
                                ],
                                "properties": {
                                    "domain": {
                                        "type": "string",
                                        "example": ".newdomain.com"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Subdomain host updated successfully"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Subdomain Hosts"
                ],
                "summary": "Delete an existing subdomain host",
                "operationId": "5b6b80bd2cb5a03a63a8b29475adcd56",
                "parameters": [
                    {
                        "name": "subdomain",
                        "in": "path",
                        "description": "ID of the subdomain host",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Subdomain host deleted successfully"
                    }
                }
            }
        },
        "/application/logs": {
            "get": {
                "tags": [
                    "Action Logs"
                ],
                "summary": "Get a list of action logs",
                "operationId": "90bf469ec6cb805439a038222a48a93f",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order (default: -created_at)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[action]",
                        "in": "query",
                        "description": "Filter by action type",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[model]",
                        "in": "query",
                        "description": "Filter by model name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[staff_id]",
                        "in": "query",
                        "description": "Filter by staff ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[customer_id]",
                        "in": "query",
                        "description": "Filter by customer ID",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Related resources to include",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "customer,staff,entries"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of action logs"
                    }
                }
            }
        },
        "/application/logs/{log}": {
            "get": {
                "tags": [
                    "Action Logs"
                ],
                "summary": "Get a single action log",
                "operationId": "7f8701503ee0ab54c6d70825124e62c1",
                "parameters": [
                    {
                        "name": "log",
                        "in": "path",
                        "description": "ID of the action log",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A single action log with details"
                    }
                }
            }
        },
        "/application/coupons": {
            "get": {
                "tags": [
                    "Coupons"
                ],
                "summary": "Get a list of coupons",
                "operationId": "d353400d2f716be4bbe016cc2b731635",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort order",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Related resources to include",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "products,pricing"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A list of coupons"
                    }
                }
            },
            "post": {
                "tags": [
                    "Coupons"
                ],
                "summary": "Create a new coupon",
                "operationId": "b2d1fafa8137aff9996b0ab50a9018c7",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "code",
                                    "type"
                                ],
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "example": "SUMMER25"
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "fixed",
                                            "percent"
                                        ],
                                        "example": "percent"
                                    },
                                    "applied_month": {
                                        "type": "integer",
                                        "example": -1
                                    },
                                    "free_setup": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "start_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "nullable": true
                                    },
                                    "end_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "nullable": true
                                    },
                                    "first_order_only": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "max_uses": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "max_uses_per_customer": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "minimum_order_amount": {
                                        "type": "number",
                                        "example": 0
                                    },
                                    "is_global": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "products": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "pricing": {
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Coupon created successfully"
                    }
                }
            }
        },
        "/application/coupons/{coupon}": {
            "get": {
                "tags": [
                    "Coupons"
                ],
                "summary": "Get a single coupon",
                "operationId": "06fd0751848fe4f9848fc37c963c5497",
                "parameters": [
                    {
                        "name": "coupon",
                        "in": "path",
                        "description": "ID of the coupon",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A single coupon"
                    }
                }
            },
            "put": {
                "tags": [
                    "Coupons"
                ],
                "summary": "Update an existing coupon",
                "operationId": "2e906dc6076052fd2a0ba3ab6bd0c9e7",
                "parameters": [
                    {
                        "name": "coupon",
                        "in": "path",
                        "description": "ID of the coupon",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "code": {
                                        "type": "string"
                                    },
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "fixed",
                                            "percent"
                                        ]
                                    },
                                    "is_global": {
                                        "type": "boolean"
                                    },
                                    "products": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Coupon updated successfully"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Coupons"
                ],
                "summary": "Delete an existing coupon",
                "operationId": "51475c3b39bb9ff36e937f15bdb7ccf4",
                "parameters": [
                    {
                        "name": "coupon",
                        "in": "path",
                        "description": "ID of the coupon",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Coupon deleted successfully"
                    }
                }
            }
        },
        "/application/groups": {
            "get": {
                "tags": [
                    "Groups"
                ],
                "summary": "Get list of groups",
                "description": "Returns list of groups with optional filters, sorting and relations",
                "operationId": "getGroupList",
                "parameters": [
                    {
                        "name": "filter[name]",
                        "in": "query",
                        "description": "Filter by name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[slug]",
                        "in": "query",
                        "description": "Filter by slug",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort by field, e.g. sort=name or sort=-name for descending",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Include relations (products, groups, metadata)",
                        "schema": {
                            "type": "string",
                            "example": "products,groups"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of results per page",
                        "schema": {
                            "type": "integer",
                            "default": 12
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of groups"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            },
            "post": {
                "tags": [
                    "Groups"
                ],
                "summary": "Create a new group",
                "operationId": "storeGroup",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/StoreGroupRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Group created successfully"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/application/groups/{id}": {
            "get": {
                "tags": [
                    "Groups"
                ],
                "summary": "Get group information",
                "description": "Returns group data",
                "operationId": "getGroupById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Group id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Include relations (products, groups, metadata)",
                        "schema": {
                            "type": "string",
                            "example": "products,groups"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopGroup"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "group not found"
                    }
                }
            },
            "post": {
                "tags": [
                    "Groups"
                ],
                "summary": "Update an existing group",
                "operationId": "updateGroup",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Group ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateGroupRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Group updated successfully"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Groups"
                ],
                "summary": "Delete group information",
                "description": "Delete group data",
                "operationId": "deleteGroupById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "group id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopGroup"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "group not found"
                    }
                }
            }
        },
        "/application/pricings": {
            "get": {
                "tags": [
                    "Products"
                ],
                "summary": "List all pricings",
                "description": "Returns a paginated list of pricing entries with optional filtering and sorting.",
                "operationId": "getPricings",
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of results per page",
                        "schema": {
                            "type": "integer",
                            "default": 15
                        }
                    },
                    {
                        "name": "filter[related_id]",
                        "in": "query",
                        "description": "Filter by related ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[related_type]",
                        "in": "query",
                        "description": "Filter by related type (e.g. product, config_option)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[currency]",
                        "in": "query",
                        "description": "Filter by currency",
                        "schema": {
                            "type": "string",
                            "example": "EUR"
                        }
                    },
                    {
                        "name": "filter[monthly]",
                        "in": "query",
                        "description": "Filter by monthly price ou can replace this with any other pricing field",
                        "schema": {
                            "type": "number",
                            "format": "float"
                        }
                    },
                    {
                        "name": "sort[]",
                        "in": "query",
                        "description": "Sort fields (use - for descending)",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "example": "monthly"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopPricing"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            },
            "post": {
                "tags": [
                    "Products"
                ],
                "summary": "Create a pricing",
                "description": "Creates a new pricing entry for a product or config option",
                "operationId": "createPricing",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PricingRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Pricing created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopPricing"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Validation failed"
                    }
                }
            }
        },
        "/application/pricings/{id}": {
            "get": {
                "tags": [
                    "Products"
                ],
                "summary": "Get a specific pricing",
                "description": "Returns the pricing identified by id",
                "operationId": "getPricing",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful response",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopPricing"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Pricing not found"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            },
            "post": {
                "tags": [
                    "Products"
                ],
                "summary": "Update pricing",
                "description": "Updates an existing pricing record",
                "operationId": "updatePricing",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PricingRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Pricing updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopPricing"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "422": {
                        "description": "Validation failed"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Products"
                ],
                "summary": "Delete a pricing",
                "description": "Deletes a pricing from the system",
                "operationId": "deletePricing",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pricing deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopPricing"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Pricing not found"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/application/products": {
            "get": {
                "tags": [
                    "Products"
                ],
                "summary": "Get list of products",
                "description": "Returns list of products with optional filters, sorting, relations and pagination.",
                "operationId": "getProductList",
                "parameters": [
                    {
                        "name": "filter[id]",
                        "in": "query",
                        "description": "Filter by product ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[name]",
                        "in": "query",
                        "description": "Filter by product name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[status]",
                        "in": "query",
                        "description": "Filter by product status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "hidden",
                                "unreferenced"
                            ]
                        }
                    },
                    {
                        "name": "filter[description]",
                        "in": "query",
                        "description": "Filter by description",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[group_id]",
                        "in": "query",
                        "description": "Filter by group ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[stock]",
                        "in": "query",
                        "description": "Filter by stock",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "filter[type]",
                        "in": "query",
                        "description": "Filter by product type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "filter[pinned]",
                        "in": "query",
                        "description": "Filter by pinned status",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "Sort field (e.g. sort=name or sort=-name for descending)",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "id",
                                "name",
                                "status",
                                "description",
                                "sort_order",
                                "group_id",
                                "stock",
                                "type",
                                "pinned"
                            ]
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Include relations (e.g. metadata, pricing, group)",
                        "schema": {
                            "type": "string",
                            "example": "metadata,pricing,group"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page",
                        "schema": {
                            "type": "integer",
                            "default": 12
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of products"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            },
            "post": {
                "tags": [
                    "Products"
                ],
                "summary": "Create a new product",
                "description": "Creates a new product and its pricing.",
                "operationId": "storeProduct",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ShopProductRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Product created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopProduct"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/application/products/{id}": {
            "get": {
                "tags": [
                    "Products"
                ],
                "summary": "Get product information",
                "description": "Returns product data",
                "operationId": "getProductById",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "product id",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "description": "Include relations (e.g. metadata, pricing, group)",
                        "schema": {
                            "type": "string",
                            "example": "metadata,pricing,group"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successful operation",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopProduct"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Key is invalid"
                    },
                    "404": {
                        "description": "product not found"
                    }
                }
            },
            "post": {
                "tags": [
                    "Products"
                ],
                "summary": "Update product by ID",
                "description": "Updates product details including pricing and image.",
                "operationId": "updateProduct",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID of the product to update",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ShopProductRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Product updated",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopProduct"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Products"
                ],
                "summary": "Delete product by ID",
                "description": "Deletes the specified product.",
                "operationId": "deleteProduct",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID of the product to delete",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product deleted",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShopProduct"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Product not found"
                    }
                }
            }
        },
        "/application/products/{id}/config": {
            "get": {
                "tags": [
                    "Products"
                ],
                "summary": "Get product configuration",
                "description": "Returns the product configuration as JSON, including metadata and pricing.",
                "operationId": "getProductConfig",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID of the product",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Product configuration"
                    },
                    "404": {
                        "description": "Product not found"
                    }
                }
            },
            "put": {
                "tags": [
                    "Products"
                ],
                "summary": "Update product configuration",
                "description": "Updates the product configuration.",
                "operationId": "updateProductConfig",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID of the product",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Configuration updated successfully"
                    },
                    "404": {
                        "description": "Product config not found"
                    }
                }
            }
        },
        "/application/health": {
            "get": {
                "tags": [
                    "Core"
                ],
                "summary": "get heath status",
                "description": "Return health status",
                "operationId": "heatlth",
                "responses": {
                    "403": {
                        "description": "Key is invalid"
                    }
                }
            }
        },
        "/application/license": {
            "get": {
                "tags": [
                    "Core"
                ],
                "summary": "get license",
                "description": "Return license",
                "operationId": "License",
                "responses": {
                    "403": {
                        "description": "Key is invalid"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "ExportInvoiceRequest": {
                "title": "ExportInvoiceRequest",
                "description": "Request body for exporting invoices",
                "properties": {
                    "format": {
                        "description": "The format to export the invoices",
                        "type": "string",
                        "enum": [
                            "pdf",
                            "csv",
                            "xlsx"
                        ]
                    },
                    "date_from": {
                        "description": "The start date for the invoice export",
                        "type": "string",
                        "format": "date"
                    },
                    "date_to": {
                        "description": "The end date for the invoice export",
                        "type": "string",
                        "format": "date"
                    },
                    "status": {
                        "description": "The status of the invoices to export",
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "paid",
                                "unpaid",
                                "cancelled"
                            ]
                        }
                    }
                },
                "type": "object"
            },
            "InvoiceDraftRequest": {
                "title": "InvoiceDraftRequest",
                "description": "Invoice draft request",
                "required": [
                    "name",
                    "description",
                    "unit_price_ttc",
                    "unit_setup_ttc",
                    "quantity",
                    "related_id",
                    "related"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "description": {
                        "type": "string",
                        "maxLength": 1000
                    },
                    "unit_price_ttc": {
                        "type": "number",
                        "format": "float"
                    },
                    "unit_setup_ttc": {
                        "type": "number",
                        "format": "float"
                    },
                    "quantity": {
                        "type": "integer",
                        "minimum": 1
                    },
                    "related_id": {
                        "type": "integer"
                    },
                    "related": {
                        "type": "string",
                        "enum": [
                            "product",
                            "service",
                            "custom_item"
                        ]
                    },
                    "billing": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "StoreInvoiceRequest": {
                "title": "StoreInvoiceRequest",
                "description": "Request body for storing invoices",
                "properties": {
                    "customer_id": {
                        "description": "The ID of the customer",
                        "type": "integer"
                    },
                    "currency": {
                        "description": "The currency of the invoice",
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "UpdateInvoiceRequest": {
                "title": "UpdateInvoiceRequest",
                "description": "Request body for updating invoices",
                "properties": {
                    "status": {
                        "description": "The status of the invoice",
                        "type": "string",
                        "enum": [
                            "draft",
                            "sent",
                            "paid",
                            "cancelled"
                        ]
                    },
                    "notes": {
                        "description": "Additional notes for the invoice",
                        "type": "string"
                    },
                    "paymethod": {
                        "description": "The payment method used for the invoice",
                        "type": "string"
                    },
                    "fees": {
                        "description": "Any additional fees for the invoice",
                        "type": "number",
                        "format": "float"
                    },
                    "tax": {
                        "description": "The tax amount for the invoice",
                        "type": "number",
                        "format": "float"
                    },
                    "currency": {
                        "description": "The currency of the invoice",
                        "type": "string"
                    },
                    "due_date": {
                        "description": "The due date for the invoice",
                        "type": "string",
                        "format": "date"
                    },
                    "paid_at": {
                        "description": "The date the invoice was paid",
                        "type": "string",
                        "format": "date"
                    },
                    "balance": {
                        "description": "The remaining balance for the invoice",
                        "type": "number",
                        "format": "float"
                    },
                    "payment_method_id": {
                        "description": "The ID of the payment method used",
                        "type": "integer"
                    },
                    "billing_address": {
                        "description": "The billing address for the invoice",
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "external_id": {
                        "description": "An external ID for the invoice",
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "StoreCustomerRequest": {
                "required": [
                    "email",
                    "firstname",
                    "lastname",
                    "address",
                    "city",
                    "zipcode",
                    "region",
                    "country",
                    "locale"
                ],
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email",
                        "example": "john.doe@example.com"
                    },
                    "password": {
                        "type": "string",
                        "format": "password",
                        "example": "MyS3cretPwd!",
                        "nullable": true
                    },
                    "firstname": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "John"
                    },
                    "lastname": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Doe"
                    },
                    "address": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "123 Rue Principale"
                    },
                    "address2": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Appartement 4B",
                        "nullable": true
                    },
                    "city": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Paris"
                    },
                    "zipcode": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "75000"
                    },
                    "phone": {
                        "type": "string",
                        "maxLength": 15,
                        "example": "+33600000000",
                        "nullable": true
                    },
                    "region": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Île-de-France"
                    },
                    "verified": {
                        "type": "boolean",
                        "example": true,
                        "nullable": true
                    },
                    "balance": {
                        "type": "number",
                        "format": "float",
                        "example": 99.99
                    },
                    "locale": {
                        "type": "string",
                        "example": "fr"
                    },
                    "country": {
                        "type": "string",
                        "example": "FR"
                    },
                    "confirmed": {
                        "type": "boolean",
                        "example": true,
                        "nullable": true
                    },
                    "company_name": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Doe Enterprises",
                        "nullable": true
                    },
                    "billing_details": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Billing details here",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "UpdateCustomerRequest": {
                "properties": {
                    "email": {
                        "type": "string",
                        "format": "email",
                        "example": "john.doe@example.com"
                    },
                    "password": {
                        "type": "string",
                        "format": "password",
                        "example": "MyN3wS3cret!",
                        "nullable": true
                    },
                    "firstname": {
                        "type": "string",
                        "maxLength": 50,
                        "example": "John"
                    },
                    "lastname": {
                        "type": "string",
                        "maxLength": 50,
                        "example": "Doe"
                    },
                    "address": {
                        "type": "string",
                        "maxLength": 250,
                        "example": "456 Avenue République"
                    },
                    "address2": {
                        "type": "string",
                        "maxLength": 250,
                        "example": "Bâtiment B",
                        "nullable": true
                    },
                    "city": {
                        "type": "string",
                        "maxLength": 250,
                        "example": "Lyon"
                    },
                    "zipcode": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "69000"
                    },
                    "phone": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "+33700000000",
                        "nullable": true
                    },
                    "region": {
                        "type": "string",
                        "maxLength": 250,
                        "example": "Auvergne-Rhône-Alpes"
                    },
                    "verified": {
                        "type": "boolean",
                        "example": false,
                        "nullable": true
                    },
                    "balance": {
                        "type": "number",
                        "format": "float",
                        "example": 250.5
                    },
                    "country": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "FR"
                    },
                    "locale": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "fr"
                    },
                    "company_name": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Doe Industries",
                        "nullable": true
                    },
                    "billing_details": {
                        "type": "string",
                        "maxLength": 255,
                        "example": "Details de facturation ici",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "StoreServerRequest": {
                "title": "Provisioning Server Store",
                "description": "Fields required to create a new provisioning server.",
                "required": [
                    "name",
                    "hostname",
                    "address",
                    "type"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "example": "Node-Paris-01"
                    },
                    "ip": {
                        "type": "string",
                        "example": "192.168.0.10"
                    },
                    "port": {
                        "description": "Port used to connect to the server",
                        "type": "integer",
                        "example": 443
                    },
                    "username": {
                        "description": "Server login username",
                        "type": "string",
                        "example": "root"
                    },
                    "password": {
                        "description": "Server login password",
                        "type": "string",
                        "example": "securepassword"
                    },
                    "hostname": {
                        "description": "The hostname of the server",
                        "type": "string",
                        "example": "paris01.clientx.local"
                    },
                    "address": {
                        "description": "The provisioning connection address",
                        "type": "string",
                        "example": "node1.clientx.local"
                    },
                    "type": {
                        "description": "Type of server (e.g., pterodactyl, proxmox)",
                        "type": "string",
                        "example": "pterodactyl"
                    },
                    "status": {
                        "description": "Status of the server",
                        "type": "string",
                        "enum": [
                            "active",
                            "hidden",
                            "unreferenced"
                        ],
                        "example": "active"
                    },
                    "maxaccounts": {
                        "description": "Maximum number of services allowed on this server",
                        "type": "integer",
                        "example": 50,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "UpdateServerRequest": {
                "title": "Provisioning Server Update Input",
                "description": "Fields to update an existing provisioning server.",
                "properties": {
                    "name": {
                        "type": "string",
                        "example": "Node-Paris-01"
                    },
                    "ip": {
                        "type": "string",
                        "example": "192.168.0.10"
                    },
                    "port": {
                        "description": "Port used to connect to the server",
                        "type": "integer",
                        "example": 443
                    },
                    "username": {
                        "description": "Server login username",
                        "type": "string",
                        "example": "root",
                        "nullable": true
                    },
                    "password": {
                        "description": "Server login password",
                        "type": "string",
                        "example": "securepassword",
                        "nullable": true
                    },
                    "hostname": {
                        "description": "The hostname of the server",
                        "type": "string",
                        "example": "paris01.clientx.local"
                    },
                    "address": {
                        "description": "The provisioning connection address",
                        "type": "string",
                        "example": "node1.clientx.local"
                    },
                    "type": {
                        "description": "Type of server (e.g., pterodactyl, proxmox)",
                        "type": "string",
                        "example": "pterodactyl"
                    },
                    "status": {
                        "description": "Status of the server",
                        "type": "string",
                        "enum": [
                            "active",
                            "hidden",
                            "unreferenced"
                        ],
                        "example": "active"
                    },
                    "maxaccounts": {
                        "description": "Maximum number of services allowed on this server",
                        "type": "integer",
                        "example": 50,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "PricingRequest": {
                "title": "Store Pricing Request",
                "description": "Schema for creating or updating a pricing related to a product or service",
                "required": [
                    "related_id",
                    "related_type",
                    "currency"
                ],
                "properties": {
                    "related_id": {
                        "description": "ID of the related product/service",
                        "type": "integer",
                        "example": 123
                    },
                    "related_type": {
                        "description": "Type of the related entity (e.g. product, config_option)",
                        "type": "string",
                        "example": "product"
                    },
                    "currency": {
                        "description": "Currency code (ISO 4217)",
                        "type": "string",
                        "example": "EUR"
                    },
                    "onetime": {
                        "type": "number",
                        "format": "float",
                        "example": 99.99,
                        "nullable": true
                    },
                    "monthly": {
                        "type": "number",
                        "format": "float",
                        "example": 9.99,
                        "nullable": true
                    },
                    "quarterly": {
                        "type": "number",
                        "format": "float",
                        "example": 27.99,
                        "nullable": true
                    },
                    "semiannually": {
                        "type": "number",
                        "format": "float",
                        "example": 55.99,
                        "nullable": true
                    },
                    "annually": {
                        "type": "number",
                        "format": "float",
                        "example": 99.99,
                        "nullable": true
                    },
                    "biennially": {
                        "type": "number",
                        "format": "float",
                        "example": 189.99,
                        "nullable": true
                    },
                    "triennially": {
                        "type": "number",
                        "format": "float",
                        "example": 279.99,
                        "nullable": true
                    },
                    "setup_onetime": {
                        "type": "number",
                        "format": "float",
                        "example": 9.99,
                        "nullable": true
                    },
                    "setup_monthly": {
                        "type": "number",
                        "format": "float",
                        "example": 2.99,
                        "nullable": true
                    },
                    "setup_quarterly": {
                        "type": "number",
                        "format": "float",
                        "example": 5.99,
                        "nullable": true
                    },
                    "setup_semiannually": {
                        "type": "number",
                        "format": "float",
                        "example": 8.99,
                        "nullable": true
                    },
                    "setup_annually": {
                        "type": "number",
                        "format": "float",
                        "example": 12.99,
                        "nullable": true
                    },
                    "setup_biennially": {
                        "type": "number",
                        "format": "float",
                        "example": 22.99,
                        "nullable": true
                    },
                    "setup_triennially": {
                        "type": "number",
                        "format": "float",
                        "example": 32.99,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "StoreGroupRequest": {
                "required": [
                    "name",
                    "description",
                    "status",
                    "slug",
                    "sort_order"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "description": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "active",
                            "hidden",
                            "unreferenced"
                        ]
                    },
                    "slug": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "pinned": {
                        "type": "boolean",
                        "nullable": true
                    },
                    "image": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true
                    },
                    "parent_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "use_image_as_background": {
                        "type": "boolean",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "UpdateGroupRequest": {
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "description": {
                        "type": "string",
                        "maxLength": 1000
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "active",
                            "hidden",
                            "unreferenced"
                        ]
                    },
                    "slug": {
                        "type": "string",
                        "maxLength": 255
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "pinned": {
                        "type": "boolean",
                        "nullable": true
                    },
                    "image": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true
                    },
                    "remove_image": {
                        "type": "string",
                        "enum": [
                            "true",
                            "false"
                        ],
                        "nullable": true
                    },
                    "parent_id": {
                        "type": "integer",
                        "nullable": true
                    },
                    "use_image_as_background": {
                        "type": "string",
                        "enum": [
                            "true",
                            "false"
                        ],
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "ShopProductRequest": {
                "title": "Shop Product Request",
                "description": "Payload to create or update a product with associated pricing definitions",
                "required": [
                    "name",
                    "status",
                    "group_id",
                    "stock",
                    "type"
                ],
                "properties": {
                    "name": {
                        "type": "string",
                        "example": "VPS SSD 2 vCPU"
                    },
                    "description": {
                        "type": "string",
                        "example": "High performance VPS with SSD storage"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "active",
                            "hidden",
                            "unreferenced"
                        ],
                        "example": "active"
                    },
                    "group_id": {
                        "type": "integer",
                        "example": 1
                    },
                    "stock": {
                        "type": "integer",
                        "example": 20
                    },
                    "type": {
                        "type": "string",
                        "example": "vps"
                    },
                    "pinned": {
                        "type": "boolean",
                        "example": true
                    },
                    "pricing": {
                        "description": "Array of pricing definitions for the product",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ShopPricing"
                        }
                    },
                    "image": {
                        "description": "Product image file (jpeg, png, jpg, gif, svg)",
                        "type": "string",
                        "format": "binary",
                        "nullable": true
                    },
                    "remove_image": {
                        "description": "Flag to remove existing product image",
                        "type": "string",
                        "enum": [
                            "true",
                            "false"
                        ],
                        "example": "false"
                    }
                },
                "type": "object"
            },
            "Customer": {
                "title": "Customer",
                "description": "Customer model",
                "properties": {
                    "email": {
                        "description": "Customer email",
                        "type": "string"
                    },
                    "password": {
                        "description": "Customer password",
                        "type": "string"
                    },
                    "firstname": {
                        "description": "Customer firstname",
                        "type": "string"
                    },
                    "lastname": {
                        "description": "Customer lastname",
                        "type": "string"
                    },
                    "phone": {
                        "description": "Customer phone",
                        "type": "string"
                    },
                    "address": {
                        "description": "Customer address",
                        "type": "string"
                    },
                    "address2": {
                        "description": "Customer address line 2",
                        "type": "string"
                    },
                    "city": {
                        "description": "Customer city",
                        "type": "string"
                    },
                    "country": {
                        "description": "Customer country",
                        "type": "string"
                    },
                    "locale": {
                        "description": "Customer locale",
                        "type": "string"
                    },
                    "region": {
                        "description": "Customer region",
                        "type": "string"
                    },
                    "zipcode": {
                        "description": "Customer zipcode",
                        "type": "string"
                    },
                    "email_verified_at": {
                        "description": "Customer email verification timestamp",
                        "type": "string",
                        "format": "date-time"
                    },
                    "is_confirmed": {
                        "description": "Customer confirmation status",
                        "type": "boolean"
                    },
                    "is_deleted": {
                        "description": "Customer deletion status",
                        "type": "boolean"
                    },
                    "dark_mode": {
                        "description": "Customer theme mode",
                        "type": "boolean"
                    },
                    "last_login": {
                        "description": "Last login timestamp",
                        "type": "string",
                        "format": "date-time"
                    },
                    "last_ip": {
                        "description": "Last login IP address",
                        "type": "string"
                    },
                    "company_name": {
                        "description": "Customer company name",
                        "type": "string"
                    },
                    "billing_details": {
                        "description": "Customer billing details",
                        "type": "string"
                    },
                    "gdpr_compliment": {
                        "description": "Indicates if the customer has given GDPR consent",
                        "type": "boolean"
                    }
                },
                "type": "object"
            },
            "Admin": {
                "title": "Admin",
                "description": "Administrator user model",
                "required": [
                    "email",
                    "password",
                    "username",
                    "firstname",
                    "lastname"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "example": "admin@example.com"
                    },
                    "username": {
                        "type": "string",
                        "example": "adminmaster"
                    },
                    "firstname": {
                        "type": "string",
                        "example": "John"
                    },
                    "lastname": {
                        "type": "string",
                        "example": "Doe"
                    },
                    "email_verified_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-03-15T10:45:00Z",
                        "nullable": true
                    },
                    "last_login": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-12T09:00:00Z",
                        "nullable": true
                    },
                    "last_login_ip": {
                        "type": "string",
                        "format": "ipv4",
                        "example": "192.168.1.10",
                        "nullable": true
                    },
                    "signature": {
                        "type": "string",
                        "example": "Best regards,\\nThe Admin Team",
                        "nullable": true
                    },
                    "dark_mode": {
                        "type": "boolean",
                        "example": false
                    },
                    "expires_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2025-01-01T00:00:00Z",
                        "nullable": true
                    },
                    "locale": {
                        "type": "string",
                        "example": "en_US"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-01-10T15:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-10T12:00:00Z"
                    },
                    "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": null,
                        "nullable": true
                    },
                    "role": {
                        "$ref": "#/components/schemas/Role"
                    }
                },
                "type": "object"
            },
            "Permission": {
                "title": "Permission",
                "description": "System permission attached to an admin role",
                "required": [
                    "name",
                    "label"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 10
                    },
                    "name": {
                        "description": "Internal permission key",
                        "type": "string",
                        "example": "admin.manage_settings"
                    },
                    "label": {
                        "description": "Human-readable permission label (translated)",
                        "type": "string",
                        "example": "Manage settings"
                    },
                    "group": {
                        "description": "Optional group for permission grouping",
                        "type": "string",
                        "example": "Settings",
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-01-01T10:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-01T12:30:00Z"
                    }
                },
                "type": "object"
            },
            "Role": {
                "title": "Role",
                "description": "Admin role and associated permissions",
                "required": [
                    "name",
                    "level"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "type": "string",
                        "example": "Administrator"
                    },
                    "level": {
                        "type": "integer",
                        "example": 100
                    },
                    "is_admin": {
                        "description": "Grants all permissions automatically",
                        "type": "boolean",
                        "example": true
                    },
                    "is_default": {
                        "description": "Used as the default role when none is assigned",
                        "type": "boolean",
                        "example": false
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-01-10T15:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-10T12:00:00Z"
                    },
                    "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": null,
                        "nullable": true
                    },
                    "permissions": {
                        "description": "List of permissions attached to this role",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Permission"
                        }
                    }
                },
                "type": "object"
            },
            "CustomItem": {
                "title": "Custom Item",
                "description": "Custom product added to an invoice manually",
                "required": [
                    "name",
                    "unit_price"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 12
                    },
                    "name": {
                        "type": "string",
                        "example": "Custom Service Fee"
                    },
                    "description": {
                        "type": "string",
                        "example": "One-time service activation fee"
                    },
                    "unit_price": {
                        "type": "number",
                        "format": "float",
                        "example": 25
                    },
                    "unit_setupfees": {
                        "type": "number",
                        "format": "float",
                        "example": 5
                    }
                },
                "type": "object"
            },
            "Gateway": {
                "title": "Gateway",
                "description": "A payment gateway available for customer payments",
                "required": [
                    "uuid",
                    "name"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "uuid": {
                        "type": "string",
                        "example": "stripe"
                    },
                    "name": {
                        "type": "string",
                        "example": "Stripe"
                    },
                    "status": {
                        "type": "string",
                        "example": "active"
                    },
                    "minimal_amount": {
                        "type": "number",
                        "format": "float",
                        "example": 1
                    }
                },
                "type": "object"
            },
            "Invoice": {
                "title": "Invoice",
                "description": "A billing invoice issued to a customer",
                "required": [
                    "customer_id",
                    "total",
                    "currency",
                    "status"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1001
                    },
                    "uuid": {
                        "type": "string",
                        "example": "123e4567-e89b-12d3-a456-426614174000"
                    },
                    "customer_id": {
                        "type": "integer",
                        "example": 5
                    },
                    "billing_address": {
                        "type": "json",
                        "example": ""
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-05-15T00:00:00Z"
                    },
                    "total": {
                        "type": "number",
                        "format": "float",
                        "example": 99.99
                    },
                    "subtotal": {
                        "type": "number",
                        "format": "float",
                        "example": 83.33
                    },
                    "tax": {
                        "type": "number",
                        "format": "float",
                        "example": 16.66
                    },
                    "setupfees": {
                        "type": "number",
                        "format": "float",
                        "example": 10
                    },
                    "currency": {
                        "type": "string",
                        "example": "EUR"
                    },
                    "status": {
                        "type": "string",
                        "example": "pending"
                    },
                    "external_id": {
                        "type": "string",
                        "example": "ext-123456",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "example": "Payment pending confirmation.",
                        "nullable": true
                    },
                    "paymethod": {
                        "type": "string",
                        "example": "stripe"
                    },
                    "fees": {
                        "type": "number",
                        "format": "float",
                        "example": 2.5
                    },
                    "invoice_number": {
                        "type": "string",
                        "example": "CTX-2024-05-0001"
                    },
                    "paid_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-05-10T08:00:00Z",
                        "nullable": true
                    },
                    "payment_method_id": {
                        "type": "string",
                        "example": "pm_1J2Y3Z4A5B6C7D8E9F0G",
                        "nullable": true
                    },
                    "balance": {
                        "type": "number",
                        "format": "float",
                        "example": 0
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-05-01T12:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-05-10T09:00:00Z"
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InvoiceItem"
                        }
                    },
                    "customer": {
                        "$ref": "#/components/schemas/Customer"
                    }
                },
                "type": "object"
            },
            "InvoiceItem": {
                "title": "Invoice Item",
                "description": "A product or service included in an invoice",
                "required": [
                    "invoice_id",
                    "name",
                    "quantity",
                    "unit_price_ht"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 3001
                    },
                    "invoice_id": {
                        "type": "integer",
                        "example": 1001
                    },
                    "name": {
                        "type": "string",
                        "example": "Web Hosting - Premium"
                    },
                    "description": {
                        "type": "string",
                        "example": "Includes 10GB of storage and SSL certificate"
                    },
                    "quantity": {
                        "type": "integer",
                        "example": 1
                    },
                    "unit_price_ht": {
                        "type": "number",
                        "format": "float",
                        "example": 50
                    },
                    "unit_setup_ht": {
                        "type": "number",
                        "format": "float",
                        "example": 10
                    },
                    "unit_price_ttc": {
                        "type": "number",
                        "format": "float",
                        "example": 72
                    },
                    "unit_setup_ttc": {
                        "type": "number",
                        "format": "float",
                        "example": 12
                    },
                    "type": {
                        "type": "string",
                        "example": "service"
                    },
                    "related_id": {
                        "type": "integer",
                        "example": 5,
                        "nullable": true
                    },
                    "delivered_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-05-10T09:00:00Z",
                        "nullable": true
                    },
                    "cancelled_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": null,
                        "nullable": true
                    },
                    "refunded_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": null,
                        "nullable": true
                    },
                    "data": {
                        "description": "Custom data associated with this item",
                        "type": "object"
                    },
                    "discount": {
                        "description": "Optional discount structure for the item",
                        "type": "object"
                    },
                    "parent_id": {
                        "type": "integer",
                        "example": null,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "Upgrade": {
                "title": "Upgrade",
                "description": "An upgrade operation applied to a service",
                "required": [
                    "customer_id",
                    "service_id",
                    "old_product_id",
                    "new_product_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 42
                    },
                    "customer_id": {
                        "type": "integer",
                        "example": 1
                    },
                    "service_id": {
                        "type": "integer",
                        "example": 2
                    },
                    "old_product_id": {
                        "type": "integer",
                        "example": 5
                    },
                    "new_product_id": {
                        "type": "integer",
                        "example": 6
                    },
                    "invoice_id": {
                        "type": "integer",
                        "example": 1001
                    },
                    "upgraded": {
                        "type": "boolean",
                        "example": true
                    }
                },
                "type": "object"
            },
            "SupportAttachment": {
                "title": "Support Attachment",
                "description": "A file attached to a support ticket message",
                "required": [
                    "filename",
                    "path",
                    "mime",
                    "size",
                    "ticket_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 102
                    },
                    "filename": {
                        "type": "string",
                        "example": "screenshot.png"
                    },
                    "path": {
                        "type": "string",
                        "example": "helpdesk/attachments/1234/8732_screenshot.png"
                    },
                    "mime": {
                        "type": "string",
                        "example": "image/png"
                    },
                    "size": {
                        "description": "Size in bytes",
                        "type": "integer",
                        "example": 204800
                    },
                    "ticket_id": {
                        "type": "integer",
                        "example": 12
                    },
                    "message_id": {
                        "type": "integer",
                        "example": 87,
                        "nullable": true
                    },
                    "customer_id": {
                        "type": "integer",
                        "example": 5,
                        "nullable": true
                    },
                    "admin_id": {
                        "type": "integer",
                        "example": 2,
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-14T10:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-14T10:05:00Z"
                    },
                    "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": null,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "SupportComment": {
                "title": "Support Comment",
                "description": "Internal comment on a support ticket",
                "required": [
                    "ticket_id",
                    "admin_id",
                    "comment"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 14
                    },
                    "ticket_id": {
                        "type": "integer",
                        "example": 101
                    },
                    "admin_id": {
                        "type": "integer",
                        "example": 2
                    },
                    "comment": {
                        "type": "string",
                        "example": "This is an internal comment."
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-14T11:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-14T12:00:00Z"
                    },
                    "staff": {
                        "$ref": "#/components/schemas/Admin"
                    }
                },
                "type": "object"
            },
            "SupportDepartment": {
                "title": "Support Department",
                "description": "A support department that handles support tickets and groups staff subscribers.",
                "required": [
                    "name",
                    "description"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "type": "string",
                        "example": "Technical Support"
                    },
                    "description": {
                        "type": "string",
                        "example": "Handles all technical issues related to services."
                    },
                    "icon": {
                        "description": "Bootstrap icon class",
                        "type": "string",
                        "example": "bi bi-question-circle"
                    },
                    "staff_subscribers": {
                        "description": "List of admin IDs subscribed to this department",
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "example": [
                            2,
                            5,
                            9
                        ]
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-03-01T10:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-01T15:30:00Z"
                    },
                    "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": null,
                        "nullable": true
                    },
                    "tickets": {
                        "description": "List of tickets belonging to this department",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SupportTicket"
                        }
                    }
                },
                "type": "object"
            },
            "SupportMessage": {
                "title": "Support Message",
                "description": "Message sent on a support ticket",
                "required": [
                    "ticket_id",
                    "message"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 12
                    },
                    "ticket_id": {
                        "type": "integer",
                        "example": 101
                    },
                    "customer_id": {
                        "type": "integer",
                        "example": 5,
                        "nullable": true
                    },
                    "admin_id": {
                        "type": "integer",
                        "example": 2,
                        "nullable": true
                    },
                    "message": {
                        "type": "string",
                        "example": "Hello i have problem."
                    },
                    "read_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-13T15:30:00Z",
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-12T10:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-04-12T10:15:00Z"
                    },
                    "deleted_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": null,
                        "nullable": true
                    },
                    "customer": {
                        "$ref": "#/components/schemas/Customer"
                    },
                    "admin": {
                        "$ref": "#/components/schemas/Admin"
                    }
                },
                "type": "object"
            },
            "SupportTicket": {
                "title": "Support Ticket",
                "description": "Support ticket model",
                "required": [
                    "subject",
                    "priority",
                    "status",
                    "department_id",
                    "customer_id"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 101
                    },
                    "subject": {
                        "type": "string",
                        "example": "Problème de facturation"
                    },
                    "priority": {
                        "type": "string",
                        "enum": [
                            "low",
                            "medium",
                            "high"
                        ],
                        "example": "medium"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "open",
                            "closed",
                            "answered"
                        ],
                        "example": "open"
                    },
                    "department_id": {
                        "type": "integer",
                        "example": 3
                    },
                    "customer_id": {
                        "type": "integer",
                        "example": 5
                    },
                    "assigned_to": {
                        "type": "integer",
                        "example": 12,
                        "nullable": true
                    },
                    "staff_subscribers": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        },
                        "example": [
                            1,
                            2,
                            3
                        ]
                    },
                    "closed_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "close_reason": {
                        "type": "string",
                        "example": "Demande résolue",
                        "nullable": true
                    },
                    "closed_by": {
                        "type": "string",
                        "example": "admin",
                        "nullable": true
                    },
                    "closed_by_id": {
                        "type": "integer",
                        "example": 2,
                        "nullable": true
                    },
                    "related_type": {
                        "type": "string",
                        "enum": [
                            "service",
                            "invoice"
                        ],
                        "example": "service",
                        "nullable": true
                    },
                    "related_id": {
                        "type": "integer",
                        "example": 41,
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "uuid": {
                        "type": "string",
                        "example": "123e4567-e89b-12d3-a456-426614174000"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "customer": {
                        "$ref": "#/components/schemas/Customer"
                    },
                    "assignedTo": {
                        "$ref": "#/components/schemas/Admin"
                    },
                    "department": {
                        "$ref": "#/components/schemas/SupportDepartment"
                    },
                    "attachments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SupportAttachment"
                        }
                    },
                    "messages": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SupportMessage"
                        }
                    },
                    "comments": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SupportComment"
                        }
                    }
                },
                "type": "object"
            },
            "ProvisioningServer": {
                "title": "Provisioning Server",
                "description": "A server entity used for service provisioning, including credentials and technical specifications.",
                "required": [
                    "name",
                    "hostname",
                    "address",
                    "type"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 1
                    },
                    "name": {
                        "type": "string",
                        "example": "Node-Paris-01"
                    },
                    "hostname": {
                        "type": "string",
                        "example": "paris01.clientx.local"
                    },
                    "address": {
                        "type": "string",
                        "example": "192.168.0.10"
                    },
                    "port": {
                        "description": "Port used to communicate with the server",
                        "type": "integer",
                        "example": 443
                    },
                    "username": {
                        "type": "string",
                        "example": "root",
                        "nullable": true
                    },
                    "password": {
                        "type": "string",
                        "example": "s3cur3",
                        "nullable": true
                    },
                    "type": {
                        "description": "Type of the provisioning integration",
                        "type": "string",
                        "example": "pterodactyl"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "active",
                            "hidden",
                            "unreferenced"
                        ],
                        "example": "active"
                    },
                    "maxaccounts": {
                        "description": "Maximum number of accounts/services on this server",
                        "type": "integer",
                        "example": 100,
                        "nullable": true
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-01-01T10:00:00Z"
                    },
                    "updated_at": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-01-02T12:00:00Z"
                    }
                },
                "type": "object"
            },
            "ProvisioningService": {
                "title": "Service",
                "description": "service model",
                "properties": {
                    "customer_id": {
                        "description": "The ID of the associated customer",
                        "type": "integer",
                        "example": 123
                    },
                    "uuid": {
                        "description": "The UUID of the service",
                        "type": "string",
                        "example": "550e8400-e29b-41d4-a716-446655440000"
                    },
                    "name": {
                        "description": "The name of the service",
                        "type": "string",
                        "example": "Service name"
                    },
                    "type": {
                        "description": "The type of the service",
                        "type": "string",
                        "example": "proxmox"
                    },
                    "billing": {
                        "description": "The billing of the service",
                        "type": "string",
                        "example": "monthly"
                    },
                    "server_id": {
                        "description": "The ID of the associated server",
                        "type": "integer",
                        "example": 1
                    },
                    "product_id": {
                        "description": "The ID of the associated product (nullable)",
                        "type": "integer",
                        "example": 1
                    },
                    "invoice_id": {
                        "description": "The ID of the associated invoice for renewal (nullable)",
                        "type": "integer",
                        "example": 123
                    },
                    "status": {
                        "description": "The status of the service",
                        "type": "string",
                        "example": "active"
                    },
                    "expires_at": {
                        "description": "The expiration date of the service",
                        "type": "string",
                        "format": "date-time",
                        "example": "2021-01-01 00:00:00"
                    },
                    "suspended_at": {
                        "description": "The suspension date of the service",
                        "type": "string",
                        "format": "date-time",
                        "example": "2021-01-01 00:00:00"
                    },
                    "cancelled_at": {
                        "description": "The cancellation date of the service",
                        "type": "string",
                        "format": "date-time",
                        "example": "2021-01-01 00:00:00"
                    },
                    "cancelled_reason": {
                        "description": "The cancellation reason of the service",
                        "type": "string",
                        "example": "Service cancelled"
                    },
                    "notes": {
                        "description": "The notes of the service",
                        "type": "string",
                        "example": "Service notes"
                    },
                    "delivery_errors": {
                        "description": "The delivery errors of the service",
                        "type": "STRING",
                        "example": "Delivery errors"
                    },
                    "delivery_attempts": {
                        "description": "The delivery attempts of the service",
                        "type": "integer",
                        "example": 1
                    },
                    "renewals": {
                        "description": "The renewals of the service",
                        "type": "integer",
                        "example": 1
                    },
                    "trial_ends_at": {
                        "description": "The trial end date of the service",
                        "type": "string",
                        "format": "date-time",
                        "example": "2021-01-01 00:00:00"
                    },
                    "max_renewals": {
                        "description": "The maximum renewals of the service",
                        "type": "integer",
                        "example": 1
                    },
                    "data": {
                        "description": "The data of the service",
                        "type": "json",
                        "example": {
                            "key": "value"
                        }
                    },
                    "currency": {
                        "description": "The currency of the service",
                        "type": "string",
                        "example": "USD"
                    },
                    "suspend_reason": {
                        "description": "The suspension reason of the service",
                        "type": "string",
                        "example": "Service suspended"
                    }
                },
                "type": "object"
            },
            "ServiceRenewals": {
                "title": "Service Renewals",
                "description": "Information about a service renewal cycle",
                "required": [
                    "service_id",
                    "invoice_id",
                    "start_date",
                    "end_date"
                ],
                "properties": {
                    "id": {
                        "type": "integer",
                        "example": 87
                    },
                    "service_id": {
                        "type": "integer",
                        "example": 1
                    },
                    "invoice_id": {
                        "type": "integer",
                        "example": 1001
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-05-01T00:00:00Z"
                    },
                    "end_date": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2024-06-01T00:00:00Z"
                    },
                    "renewed_at": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "next_billing_on": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "period": {
                        "type": "string",
                        "example": "monthly"
                    },
                    "first_period": {
                        "type": "boolean",
                        "example": true
                    }
                },
                "type": "object"
            },
            "ShopGroup": {
                "title": "Shop group",
                "description": "Shop group model",
                "properties": {
                    "id": {
                        "description": "The id of the item",
                        "type": "integer",
                        "example": "10"
                    },
                    "name": {
                        "description": "The name of the item",
                        "type": "string",
                        "example": "Sample Item"
                    },
                    "slug": {
                        "description": "The URL-friendly slug for the item",
                        "type": "string",
                        "example": "sample-item"
                    },
                    "status": {
                        "description": "The status of the item (e.g., active, inactive)",
                        "type": "string",
                        "example": "active"
                    },
                    "description": {
                        "description": "A description or details about the item",
                        "type": "string",
                        "example": "This is a sample item description."
                    },
                    "sort_order": {
                        "description": "The order in which the item should be sorted",
                        "type": "integer",
                        "example": 1
                    },
                    "group_id": {
                        "description": "The id of the group to which the item belongs",
                        "type": "integer",
                        "example": 1,
                        "nullable": true
                    },
                    "pinned": {
                        "description": "Whether the item is pinned or not",
                        "type": "boolean",
                        "example": true
                    },
                    "image": {
                        "description": "The URL or path to the item's image",
                        "type": "string",
                        "example": "groups/filename.jpg"
                    },
                    "parent_id": {
                        "description": "The id of the parent group",
                        "type": "integer",
                        "example": 1,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "ShopPricing": {
                "title": "Shop pricing",
                "description": "Shop pricing model",
                "properties": {
                    "related_id": {
                        "description": "The ID of the associated item",
                        "type": "integer",
                        "example": 123
                    },
                    "related_type": {
                        "description": "The type of the associated item (e.g., product, service, etc.)",
                        "type": "string",
                        "example": "product"
                    },
                    "currency": {
                        "description": "The currency for pricing",
                        "type": "string",
                        "example": "USD"
                    },
                    "onetime": {
                        "description": "One-time payment amount",
                        "type": "number",
                        "format": "float",
                        "example": 99.99,
                        "nullable": true
                    },
                    "monthly": {
                        "description": "Monthly payment amount",
                        "type": "number",
                        "format": "float",
                        "example": 9.99,
                        "nullable": true
                    },
                    "quarterly": {
                        "description": "Quarterly payment amount",
                        "type": "number",
                        "format": "float",
                        "example": 24.99,
                        "nullable": true
                    },
                    "semiannually": {
                        "description": "Semi-annual payment amount",
                        "type": "number",
                        "format": "float",
                        "example": 49.99,
                        "nullable": true
                    },
                    "annually": {
                        "description": "Annual payment amount",
                        "type": "number",
                        "format": "float",
                        "example": 99.99,
                        "nullable": true
                    },
                    "biennially": {
                        "description": "Biennial payment amount",
                        "type": "number",
                        "format": "float",
                        "example": 199.99,
                        "nullable": true
                    },
                    "triennially": {
                        "description": "Triennial payment amount",
                        "type": "number",
                        "format": "float",
                        "example": 299.99,
                        "nullable": true
                    },
                    "setup_onetime": {
                        "description": "One-time setup fee amount",
                        "type": "number",
                        "format": "float",
                        "example": 19.99,
                        "nullable": true
                    },
                    "setup_monthly": {
                        "description": "Monthly setup fee amount",
                        "type": "number",
                        "format": "float",
                        "example": 4.99,
                        "nullable": true
                    },
                    "setup_quarterly": {
                        "description": "Quarterly setup fee amount",
                        "type": "number",
                        "format": "float",
                        "example": 9.99,
                        "nullable": true
                    },
                    "setup_semiannually": {
                        "description": "Semi-annual setup fee amount",
                        "type": "number",
                        "format": "float",
                        "example": 14.99,
                        "nullable": true
                    },
                    "setup_annually": {
                        "description": "Annual setup fee amount",
                        "type": "number",
                        "format": "float",
                        "example": 29.99,
                        "nullable": true
                    },
                    "setup_biennially": {
                        "description": "Biennial setup fee amount",
                        "type": "number",
                        "format": "float",
                        "example": 49.99,
                        "nullable": true
                    },
                    "setup_triennially": {
                        "description": "Triennial setup fee amount",
                        "type": "number",
                        "format": "float",
                        "example": 69.99,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "ShopProduct": {
                "title": "Shop product",
                "description": "Shop product model",
                "properties": {
                    "id": {
                        "description": "The id of the item",
                        "type": "integer",
                        "example": "10"
                    },
                    "name": {
                        "description": "The name of the item",
                        "type": "string",
                        "example": "Sample Item"
                    },
                    "status": {
                        "description": "The status of the item (e.g., Active, Hidden, Unreferenced)",
                        "type": "string",
                        "example": "active"
                    },
                    "description": {
                        "description": "A description or details about the item",
                        "type": "string",
                        "example": "This is a sample item description."
                    },
                    "sort_order": {
                        "description": "The order in which the item should be sorted",
                        "type": "integer",
                        "example": 1
                    },
                    "group_id": {
                        "description": "The ID of the group to which the item belongs",
                        "type": "integer",
                        "example": 123
                    },
                    "stock": {
                        "description": "The stock quantity of the item",
                        "type": "integer",
                        "example": 50
                    },
                    "type": {
                        "description": "The type of the product",
                        "type": "string",
                        "example": "pterodactyl"
                    },
                    "pinned": {
                        "description": "Whether the item is pinned or not",
                        "type": "boolean",
                        "example": true
                    },
                    "image": {
                        "description": "The image URL of the item",
                        "type": "string",
                        "example": "storage/products/sample.jpg"
                    }
                },
                "type": "object"
            }
        },
        "securitySchemes": {
            "sanctum": {
                "type": "apiKey",
                "description": "Enter token in format (Bearer <token>)",
                "name": "Authorization",
                "in": "header"
            }
        }
    },
    "tags": [
        {
            "name": "Authentication",
            "description": "Authentication endpoints for client API"
        },
        {
            "name": "Customer Invoices",
            "description": "Invoice endpoints for customer API"
        },
        {
            "name": "Customer Payment Methods",
            "description": "Payment method endpoints for client API"
        },
        {
            "name": "Customer Profile",
            "description": "Profile management endpoints for customer API"
        },
        {
            "name": "Customer Services",
            "description": "Service endpoints for customer API"
        },
        {
            "name": "Customer Tickets",
            "description": "Support ticket endpoints for customer API"
        },
        {
            "name": "Products",
            "description": "API Endpoints for store products"
        },
        {
            "name": "Groups",
            "description": "API Endpoints for store groups"
        },
        {
            "name": "Core",
            "description": "API Endpoints for core"
        },
        {
            "name": "Services",
            "description": "API Endpoints for services"
        },
        {
            "name": "Customers",
            "description": "API Endpoints for customers"
        },
        {
            "name": "Invoices",
            "description": "Invoices"
        },
        {
            "name": "Departments",
            "description": "Departments"
        },
        {
            "name": "Tickets",
            "description": "Tickets"
        },
        {
            "name": "Cancellation Reasons",
            "description": "Cancellation Reasons"
        },
        {
            "name": "Servers",
            "description": "Servers"
        },
        {
            "name": "Subdomain Hosts",
            "description": "Subdomain Hosts"
        },
        {
            "name": "Action Logs",
            "description": "Action Logs"
        },
        {
            "name": "Coupons",
            "description": "Coupons"
        }
    ],
    "security": [
        {
            "sanctum": []
        }
    ]
}