{
  "openapi": "3.0.0",
  "paths": {
    "/api/v1/business-category": {
      "get": {
        "operationId": "listBusinessCategories",
        "summary": "List all business categories (public)",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {}
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {}
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {}
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/BusinessCategory"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "BusinessCategory"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createBusinessCategory",
        "summary": "Create a new businesscategory",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BusinessCategoryDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/BusinessCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "BusinessCategory"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/business-category/{id}": {
      "get": {
        "operationId": "getBusinessCategory",
        "summary": "Get a single businesscategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/BusinessCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "BusinessCategory"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateBusinessCategory",
        "summary": "Update an existing businesscategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BusinessCategoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/BusinessCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "BusinessCategory"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteBusinessCategory",
        "summary": "Delete a businesscategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/BusinessCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "BusinessCategory"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/me/permissions": {
      "get": {
        "operationId": "MePermissionsController_myPermissions",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/users/me": {
      "get": {
        "operationId": "UserController_me",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/UserResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Users"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "UserController_updateUser",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/UserResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Users"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/roles": {
      "get": {
        "operationId": "RolesController_list",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        }
      },
      "post": {
        "operationId": "RolesController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/roles/{id}": {
      "get": {
        "operationId": "RolesController_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        }
      },
      "put": {
        "operationId": "RolesController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        }
      },
      "delete": {
        "operationId": "RolesController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/admin/bootstrap/roles": {
      "post": {
        "operationId": "RolesBootstrapController_backfillAll",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/admin/bootstrap/refresh-admin-permissions": {
      "post": {
        "operationId": "RolesBootstrapController_refreshAdminPermissions",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/admin/bootstrap/single/{businessId}": {
      "post": {
        "operationId": "RolesBootstrapController_bootstrapSingleBusiness",
        "parameters": [
          {
            "name": "businessId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/role-assignments/{userId}": {
      "get": {
        "operationId": "RoleAssignmentsController_getUserRoles",
        "parameters": [
          {
            "name": "userId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/role-assignments": {
      "post": {
        "operationId": "RoleAssignmentsController_assignRole",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          }
        }
      },
      "delete": {
        "operationId": "RoleAssignmentsController_unassignRole",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        }
      }
    },
    "/api/v1/business": {
      "get": {
        "operationId": "BusinessController_findMineBusiness",
        "summary": "Get the current user business",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Business"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Business"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "BusinessController_createBusiness",
        "summary": "Create business",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BusinessDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CreateBusinessResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Business"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/business/{id}": {
      "put": {
        "operationId": "BusinessController_updateBusiness",
        "summary": "Update business",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BusinessDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Business"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Business"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/business/{id}/settings": {
      "get": {
        "operationId": "BusinessController_getBusinessSettings",
        "summary": "Get business settings",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/SettingsDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Business"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "BusinessController_updateBusinessSettings",
        "summary": "Update business settings",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/SettingsDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Business"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/client-category": {
      "get": {
        "operationId": "listClientCategories",
        "summary": "List all clientcategories",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/ClientCategory"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ClientCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createClientCategory",
        "summary": "Create a new clientcategory",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientCategoryDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ClientCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ClientCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/client-category/{id}": {
      "get": {
        "operationId": "getClientCategory",
        "summary": "Get a single clientcategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ClientCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ClientCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateClientCategory",
        "summary": "Update an existing clientcategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientCategoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ClientCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ClientCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteClientCategory",
        "summary": "Delete a clientcategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ClientCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ClientCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/client/find/{OIB}": {
      "get": {
        "operationId": "ClientController_searchClient",
        "summary": "Search Client by OIB",
        "parameters": [
          {
            "name": "OIB",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Client"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Client"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/client": {
      "get": {
        "operationId": "listClients",
        "summary": "List all clients",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Client"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Client"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createClient",
        "summary": "Create a new client",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Client"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Client"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/client/{id}": {
      "get": {
        "operationId": "getClient",
        "summary": "Get a single client by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Client"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Client"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateClient",
        "summary": "Update an existing client by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClientDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Client"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Client"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteClient",
        "summary": "Delete a client by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Client"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Client"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/employee-category": {
      "get": {
        "operationId": "listEmployeeCategories",
        "summary": "List all employeecategories",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/EmployeeCategory"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "EmployeeCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createEmployeeCategory",
        "summary": "Create a new employeecategory",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeCategoryDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmployeeCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "EmployeeCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/employee-category/{id}": {
      "get": {
        "operationId": "getEmployeeCategory",
        "summary": "Get a single employeecategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmployeeCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "EmployeeCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateEmployeeCategory",
        "summary": "Update an existing employeecategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeCategoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmployeeCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "EmployeeCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteEmployeeCategory",
        "summary": "Delete a employeecategory by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmployeeCategory"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "EmployeeCategory"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/employee/invite": {
      "post": {
        "operationId": "EmployeeController_inviteEmployee",
        "summary": "Invite employee",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteEmployeeDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/InviteEmployeeResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Employee"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/employee": {
      "get": {
        "operationId": "listEmployees",
        "summary": "List all employees",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Employee"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Employee"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createEmployee",
        "summary": "Create a new employee",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Employee"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Employee"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Employee"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/employee/{id}": {
      "get": {
        "operationId": "getEmployee",
        "summary": "Get a single employee by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Employee"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Employee"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateEmployee",
        "summary": "Update an existing employee by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Employee"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Employee"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Employee"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteEmployee",
        "summary": "Delete a employee by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Employee"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Employee"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/business/{businessId}/integrations/eposlovanje/status": {
      "get": {
        "operationId": "EposlovanjeIntegrationController_getStatus",
        "summary": "Get ePoslovanje account status",
        "parameters": [
          {
            "name": "businessId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Account status retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EposlovanjeAccountStatusDto"
                }
              }
            }
          }
        },
        "tags": [
          "ePoslovanje Integration"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/business/{businessId}/integrations/eposlovanje/retry-registration": {
      "post": {
        "operationId": "EposlovanjeIntegrationController_retryRegistration",
        "summary": "Manually retry ePoslovanje registration",
        "parameters": [
          {
            "name": "businessId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Registration retry initiated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EposlovanjeAccountStatusDto"
                }
              }
            }
          }
        },
        "tags": [
          "ePoslovanje Integration"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/business/{businessId}/integrations/eposlovanje/test-connection": {
      "post": {
        "operationId": "EposlovanjeIntegrationController_testConnection",
        "summary": "Test ePoslovanje API connection",
        "parameters": [
          {
            "name": "businessId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connection test result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EposlovanjeAccountStatusDto"
                }
              }
            }
          }
        },
        "tags": [
          "ePoslovanje Integration"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/pdf/invoice": {
      "post": {
        "operationId": "PdfController_generateInvoicePdf",
        "summary": "Generate an invoice PDF",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateInvoicePdfDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "PDF"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/pdf/quote": {
      "post": {
        "operationId": "PdfController_generateQuotePdf",
        "summary": "Generate a quote PDF",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateQuotePdfDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "PDF"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/pdf/shipment": {
      "post": {
        "operationId": "PdfController_generateShipmentPdf",
        "summary": "Generate a shipment PDF",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateShipmentPdfDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "PDF"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/pdf/infoQuote": {
      "post": {
        "operationId": "PdfController_generateInfoQuotePdf",
        "summary": "Generate an information quote PDF",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateInfoQuotePdfDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "PDF"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice": {
      "get": {
        "operationId": "listInvoices",
        "summary": "List all invoices",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Invoice"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createInvoice",
        "summary": "Create a new invoice",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Invoice"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/issue": {
      "post": {
        "operationId": "InvoiceController_issueInvoice",
        "summary": "Issue invoice",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceIssueBodyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/InvoiceIssueResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/cancel": {
      "post": {
        "operationId": "InvoiceController_cancelInvoice",
        "summary": "Cancel invoice",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/InvoiceCancelResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/send-einvoice": {
      "post": {
        "operationId": "InvoiceController_sendEInvoice",
        "summary": "Pošalji izlazni e-račun na e-poslovanje",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/validate": {
      "post": {
        "operationId": "InvoiceController_validateInvoice",
        "summary": "Validiraj e-račun protiv CIUS-2025 pravila",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mode",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/resend-document": {
      "post": {
        "operationId": "InvoiceController_resendDocument",
        "summary": "Ponovno pošalji dokument e-računa",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/query-document": {
      "post": {
        "operationId": "InvoiceController_queryDocument",
        "summary": "Dohvati detalje e-računa",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/set-process-status": {
      "post": {
        "operationId": "InvoiceController_setDocumentProcessStatus",
        "summary": "Postavi process status e-računa",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/get-process-status": {
      "post": {
        "operationId": "InvoiceController_getDocumentProcessStatus",
        "summary": "Dohvati process status e-računa",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/get-status": {
      "post": {
        "operationId": "InvoiceController_getDocumentStatus",
        "summary": "Dohvati status e-računa",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/change-status": {
      "post": {
        "operationId": "InvoiceController_changeDocumentStatus",
        "summary": "Promijeni status e-računa",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/get-business-units": {
      "post": {
        "operationId": "InvoiceController_getBusinessUnits",
        "summary": "Dohvati poslovne jedinice",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/e-invoice/xml": {
      "get": {
        "operationId": "InvoiceController_downloadEInvoiceXml",
        "summary": "Preuzmi XML e-računa (ulazni e-račun preko e-poslovanja)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/test-visualization": {
      "get": {
        "operationId": "InvoiceController_testVisualization",
        "summary": "[DEBUG] Test ePoslovanje visualization API",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/barcode": {
      "get": {
        "operationId": "InvoiceController_getIncomingInvoiceBarcode",
        "summary": "Generate barcode on-the-fly for incoming invoice from current data",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/generate-pdf": {
      "post": {
        "operationId": "InvoiceController_generateIncomingInvoicePdf",
        "summary": "Generiraj PDF za incoming račun - vraća URL (jednako kao POST /pdf/invoice)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/incoming/manual": {
      "post": {
        "operationId": "InvoiceController_createManualIncoming",
        "summary": "Kreiraj ručni ulazni račun (direction=INCOMING, source=MANUAL)",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceManualIncomingDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/sync-eposlovanje": {
      "post": {
        "operationId": "InvoiceController_syncEposlovanje",
        "summary": "Pokreni sync s e-poslovanjem - automatski detektira prvi sync (365 dana) ili inkrementalni",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/refresh-status": {
      "post": {
        "operationId": "InvoiceController_refreshStatus",
        "summary": "Osvježi status pojedinog računa putem e-poslovanja",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/refresh-status-bulk": {
      "post": {
        "operationId": "InvoiceController_refreshStatusBulk",
        "summary": "Batch osvježenje statusa za skup ID-eva (vidljiva stranica)",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/ereporting/paid": {
      "post": {
        "operationId": "InvoiceController_ereportPaid",
        "summary": "e-Izvještavanje: označi račun kao plaćen (ne mijenja process status)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/ereporting/rejected": {
      "post": {
        "operationId": "InvoiceController_ereportRejected",
        "summary": "e-Izvještavanje: prijavi odbijenje/poništenje",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/ereporting/report": {
      "post": {
        "operationId": "InvoiceController_ereportDocument",
        "summary": "e-Izvještavanje: prijavi dokument (npr. ručni ulazni) bez remoteId",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/xml": {
      "get": {
        "operationId": "InvoiceController_downloadXml",
        "summary": "Download original UBL XML document",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}/original-pdf": {
      "get": {
        "operationId": "InvoiceController_downloadOriginalPdf",
        "summary": "Download original PDF from supplier (embedded in XML)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/invoice/{id}": {
      "get": {
        "operationId": "getInvoice",
        "summary": "Get a single invoice by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Invoice"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateInvoice",
        "summary": "Update an existing invoice by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Invoice"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteInvoice",
        "summary": "Delete a invoice by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Invoice"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Invoice"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/expense/{id}/submit": {
      "post": {
        "operationId": "ExpenseController_submitExpense",
        "summary": "Submit expense",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExpenseActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/expense/{id}/approve": {
      "post": {
        "operationId": "ExpenseController_approveExpense",
        "summary": "Approve expense",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExpenseActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/expense/{id}/reject": {
      "post": {
        "operationId": "ExpenseController_rejectExpense",
        "summary": "Reject expense",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExpenseActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/expense/{id}/reimburse": {
      "post": {
        "operationId": "ExpenseController_reimburseExpense",
        "summary": "Reimburse expense",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExpenseActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/expense/{id}/vat-deductible/{isVatDeductible}": {
      "post": {
        "operationId": "ExpenseController_setVatDeductible",
        "summary": "Set VAT deductibility (R1/R2)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isVatDeductible",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExpenseActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/expense": {
      "get": {
        "operationId": "listExpenses",
        "summary": "List all expenses",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Expense"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createExpense",
        "summary": "Create a new expense",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExpenseDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Expense"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/expense/{id}": {
      "get": {
        "operationId": "getExpense",
        "summary": "Get a single expense by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Expense"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateExpense",
        "summary": "Update an existing expense by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExpenseDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Expense"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteExpense",
        "summary": "Delete a expense by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Expense"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Expense"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/product": {
      "get": {
        "operationId": "listProducts",
        "summary": "List all products",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Product"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Product"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createProduct",
        "summary": "Create a new product",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Product"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Product"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/product/{id}": {
      "get": {
        "operationId": "getProduct",
        "summary": "Get a single product by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Product"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Product"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateProduct",
        "summary": "Update an existing product by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Product"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Product"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteProduct",
        "summary": "Delete a product by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Product"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Product"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/service": {
      "get": {
        "operationId": "listServices",
        "summary": "List all services",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Service"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Service"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createService",
        "summary": "Create a new service",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Service"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Service"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/service/{id}": {
      "get": {
        "operationId": "getService",
        "summary": "Get a single service by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Service"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Service"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateService",
        "summary": "Update an existing service by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Service"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Service"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteService",
        "summary": "Delete a service by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Service"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Service"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/location": {
      "get": {
        "operationId": "listLocations",
        "summary": "List all locations",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Location"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Location"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createLocation",
        "summary": "Create a new location",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Location"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Location"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/location/{id}": {
      "get": {
        "operationId": "getLocation",
        "summary": "Get a single location by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Location"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Location"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateLocation",
        "summary": "Update an existing location by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LocationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Location"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Location"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteLocation",
        "summary": "Delete a location by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Location"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Location"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/shipment/{id}/confirm": {
      "post": {
        "operationId": "ShipmentController_confirmShipment",
        "summary": "Confirm shipment",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ShipmentActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/shipment/{id}/ship": {
      "post": {
        "operationId": "ShipmentController_shipShipment",
        "summary": "Ship shipment",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ShipmentActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/shipment/{id}/deliver": {
      "post": {
        "operationId": "ShipmentController_deliverShipment",
        "summary": "Deliver shipment",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ShipmentActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/shipment/{id}/return": {
      "post": {
        "operationId": "ShipmentController_returnShipment",
        "summary": "Return shipment",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ShipmentActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/shipment/{id}/cancel": {
      "post": {
        "operationId": "ShipmentController_cancelShipment",
        "summary": "Cancel shipment",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ShipmentActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/shipment": {
      "get": {
        "operationId": "listShipments",
        "summary": "List all shipments",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Shipment"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createShipment",
        "summary": "Create a new shipment",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShipmentDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Shipment"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/shipment/{id}": {
      "get": {
        "operationId": "getShipment",
        "summary": "Get a single shipment by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Shipment"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateShipment",
        "summary": "Update an existing shipment by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShipmentDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Shipment"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteShipment",
        "summary": "Delete a shipment by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Shipment"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Shipment"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/quote/{id}/issue": {
      "post": {
        "operationId": "QuoteController_issueQuote",
        "summary": "Issue quote",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/QuoteActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/quote/{id}/respond": {
      "post": {
        "operationId": "QuoteController_respondQuote",
        "summary": "Respond to quote",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RespondQuoteDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/QuoteActionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/quote/convert-to-invoice": {
      "post": {
        "operationId": "QuoteController_convertToInvoice",
        "summary": "Convert quotes to invoice",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/QuoteConvertToInvoiceResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/quote/convert-info-quote-to-regular-quote": {
      "post": {
        "operationId": "QuoteController_convertInfoQuoteToRegularQuote",
        "summary": "Convert info quote to regular quote",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/QuoteConvertInfoResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/quote": {
      "get": {
        "operationId": "listQuotes",
        "summary": "List all quotes",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Quote"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createQuote",
        "summary": "Create a new quote",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Quote"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/quote/{id}": {
      "get": {
        "operationId": "getQuote",
        "summary": "Get a single quote by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Quote"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateQuote",
        "summary": "Update an existing quote by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Quote"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteQuote",
        "summary": "Delete a quote by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Quote"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Quote"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/ai-chat/chat": {
      "post": {
        "operationId": "AIChatController_chat",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatRequestDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIChat"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/ai-chat": {
      "post": {
        "operationId": "AIChatController_create",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIChat"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "get": {
        "operationId": "listAIChats",
        "summary": "List all aichats",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/AIChat"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIChat"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/ai-chat/{id}": {
      "get": {
        "operationId": "getAIChat",
        "summary": "Get a single aichat by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AIChat"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIChat"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateAIChat",
        "summary": "Update an existing aichat by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AIChatDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AIChat"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIChat"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteAIChat",
        "summary": "Delete a aichat by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AIChat"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIChat"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/ai-agent": {
      "get": {
        "operationId": "listAIAgents",
        "summary": "List all aiagents",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/AIAgent"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIAgent"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createAIAgent",
        "summary": "Create a new aiagent",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AIAgentDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AIAgent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIAgent"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/ai-agent/{id}": {
      "get": {
        "operationId": "getAIAgent",
        "summary": "Get a single aiagent by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AIAgent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIAgent"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateAIAgent",
        "summary": "Update an existing aiagent by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AIAgentDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AIAgent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIAgent"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteAIAgent",
        "summary": "Delete a aiagent by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AIAgent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "AIAgent"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/external-mail-connection/{id}/health": {
      "get": {
        "operationId": "ExternalMailConnectionController_getConnectionHealth",
        "summary": "Get health status of an external mail connection",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "External Mail Connections"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/external-mail-connection/{id}/reconnect": {
      "patch": {
        "operationId": "ExternalMailConnectionController_reconnect",
        "summary": "Reconnect an external mail connection with new password",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReconnectDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "External Mail Connections"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/external-mail-connection": {
      "get": {
        "operationId": "listExternalMailConnections",
        "summary": "List all externalmailconnections",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/ExternalMailConnectionResponseDto"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "External Mail Connections"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createExternalMailConnection",
        "summary": "Create a new externalmailconnection",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalMailConnection"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExternalMailConnectionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "External Mail Connections"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/external-mail-connection/{id}": {
      "get": {
        "operationId": "getExternalMailConnection",
        "summary": "Get a single externalmailconnection by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExternalMailConnectionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "External Mail Connections"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateExternalMailConnection",
        "summary": "Update an existing externalmailconnection by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalMailConnection"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExternalMailConnectionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "External Mail Connections"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteExternalMailConnection",
        "summary": "Delete a externalmailconnection by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ExternalMailConnectionResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "External Mail Connections"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account": {
      "post": {
        "operationId": "createMailAccount",
        "summary": "Create a new mailaccount",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MailAccount"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/MailAccount"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "get": {
        "operationId": "listMailAccounts",
        "summary": "List all mailaccounts",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/MailAccount"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/domain/{domainId}": {
      "get": {
        "operationId": "MailAccountController_getMailAccountsByDomain",
        "summary": "Get all mail accounts for a domain",
        "parameters": [
          {
            "name": "domainId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/business": {
      "get": {
        "operationId": "MailAccountController_getBusinessMailAccounts",
        "summary": "Get all mail accounts for the current business",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/{id}/auto-reply": {
      "patch": {
        "operationId": "MailAccountController_toggleAutoReply",
        "summary": "Toggle auto-reply for a mail account",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/{id}/forwarding": {
      "patch": {
        "operationId": "MailAccountController_setForwarding",
        "summary": "Set email forwarding",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/{id}/signature": {
      "patch": {
        "operationId": "MailAccountController_updateSignature",
        "summary": "Update email signature",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/{id}/deactivate": {
      "post": {
        "operationId": "MailAccountController_deactivate",
        "summary": "Deactivate a mail account",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/my-accounts": {
      "get": {
        "operationId": "MailAccountController_getMyMailAccounts",
        "summary": "Get mail accounts current user has access to",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/grant-access": {
      "post": {
        "operationId": "MailAccountController_grantAccess",
        "summary": "Grant user access to a mail account",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/revoke-access": {
      "delete": {
        "operationId": "MailAccountController_revokeAccess",
        "summary": "Revoke user access to a mail account",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/{mailAccountId}/users": {
      "get": {
        "operationId": "MailAccountController_getMailAccountUsers",
        "summary": "Get all users who have access to a mail account",
        "parameters": [
          {
            "name": "mailAccountId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/user-access/{userMailAccountId}": {
      "patch": {
        "operationId": "MailAccountController_updateUserAccess",
        "summary": "Update user access permissions for a mail account",
        "parameters": [
          {
            "name": "userMailAccountId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/{id}/connection": {
      "patch": {
        "operationId": "MailAccountController_updateExternalConnection",
        "summary": "Update external connection settings for a mail account",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateExternalConnectionRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/test-external-connection": {
      "post": {
        "operationId": "MailAccountController_testExternalConnection",
        "summary": "Test external IMAP/SMTP connection settings",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestExternalConnectionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/mail-account/{id}": {
      "get": {
        "operationId": "getMailAccount",
        "summary": "Get a single mailaccount by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/MailAccount"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateMailAccount",
        "summary": "Update an existing mailaccount by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MailAccount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/MailAccount"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteMailAccount",
        "summary": "Delete a mailaccount by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/MailAccount"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Mail Accounts"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/domain/{id}/verify": {
      "post": {
        "operationId": "DomainController_verifyDomain",
        "summary": "Check and update domain verification status with AWS SES",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Domain verification status checked"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Domain not found"
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Domain"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/domain/{id}/configuration": {
      "get": {
        "operationId": "DomainController_getDomainConfiguration",
        "summary": "Get DKIM/SPF and inbound MX configuration for this domain",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Domain configuration retrieved",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainConfigurationResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Domain not found"
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Domain"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/domain": {
      "get": {
        "operationId": "listDomains",
        "summary": "List all domains",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Domain"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Domain"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createDomain",
        "summary": "Create a new domain",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Domain"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Domain"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Domain"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/domain/{id}": {
      "get": {
        "operationId": "getDomain",
        "summary": "Get a single domain by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Domain"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Domain"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateDomain",
        "summary": "Update an existing domain by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Domain"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Domain"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Domain"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteDomain",
        "summary": "Delete a domain by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Domain"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Domain"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message": {
      "get": {
        "operationId": "EmailMessageController_getUserEmails",
        "summary": "Get user emails with pagination and filters",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "q",
            "required": false,
            "in": "query",
            "description": "Semantic search query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "direction",
            "required": false,
            "in": "query",
            "description": "Filter by email direction",
            "schema": {
              "enum": [
                "inbound",
                "outbound"
              ],
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "thread,mailAccount",
              "description": "Include related entities. Use comma-separated values."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "date:desc,from:asc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "mailAccountId:equals:uuid-here"
                },
                "complex": {
                  "value": "isRead:equals:bool(false),isStarred:equals:bool(true)"
                },
                "withLabels": {
                  "value": "labels:hasSome:array(INBOX,IMPORTANT)"
                },
                "withDate": {
                  "value": "date:gt:date(2024-01-01),date:lt:date(2024-12-31)"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/EmailMessage"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/send": {
      "post": {
        "operationId": "EmailMessageController_sendEmail",
        "summary": "Send an email",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendEmailDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/draft": {
      "post": {
        "operationId": "EmailMessageController_createDraft",
        "summary": "Save an email draft",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDraftDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/draft/{id}": {
      "patch": {
        "operationId": "EmailMessageController_updateDraft",
        "summary": "Update an email draft",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDraftDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "EmailMessageController_deleteDraft",
        "summary": "Delete an email draft",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "204. No content."
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/draft/{id}/send": {
      "post": {
        "operationId": "EmailMessageController_sendDraft",
        "summary": "Send an email draft",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/read": {
      "patch": {
        "operationId": "EmailMessageController_markAsRead",
        "summary": "Mark email as read/unread",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/star": {
      "patch": {
        "operationId": "EmailMessageController_toggleStar",
        "summary": "Star/unstar email",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/labels": {
      "patch": {
        "operationId": "EmailMessageController_updateLabels",
        "summary": "Update email labels",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/important": {
      "patch": {
        "operationId": "EmailMessageController_toggleImportant",
        "summary": "Mark email as important/unimportant",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/spam": {
      "patch": {
        "operationId": "EmailMessageController_markSpam",
        "summary": "Mark email as spam/not spam",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/trash": {
      "delete": {
        "operationId": "EmailMessageController_moveToTrash",
        "summary": "Move email to trash",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/restore": {
      "patch": {
        "operationId": "EmailMessageController_restoreFromTrash",
        "summary": "Restore email from trash",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}": {
      "delete": {
        "operationId": "EmailMessageController_permanentlyDelete",
        "summary": "Permanently delete email",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "204. No content."
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "get": {
        "operationId": "EmailMessageController_getEmail",
        "summary": "Get a single email by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/EmailMessage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/{id}/attachments/{attachmentId}/url": {
      "get": {
        "operationId": "EmailMessageController_getAttachmentUrl",
        "summary": "Get attachment download URL",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attachmentId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/suggest-recipients": {
      "get": {
        "operationId": "EmailMessageController_suggestRecipients",
        "summary": "Suggest recipient email addresses based on query",
        "parameters": [
          {
            "name": "q",
            "required": true,
            "in": "query",
            "description": "Search query for recipient suggestions",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/thread/{emailId}": {
      "get": {
        "operationId": "EmailMessageController_getEmailThread",
        "summary": "Get all emails in a thread by email ID",
        "parameters": [
          {
            "name": "emailId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ThreadResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/quota": {
      "get": {
        "operationId": "EmailMessageController_getSendingQuota",
        "summary": "Get email sending quota",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/unread-count": {
      "get": {
        "operationId": "EmailMessageController_getUnreadCounts",
        "summary": "Get unread email count by mail account",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/UnreadCountsResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/attachment/upload-url": {
      "post": {
        "operationId": "EmailMessageController_getAttachmentUploadUrl",
        "summary": "Get presigned POST for email attachment upload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentUploadUrlRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/AttachmentUploadUrlResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/email-message/admin/ses/quota": {
      "get": {
        "operationId": "EmailMessageController_getSesQuota",
        "summary": "Get SES account send limits/quota (admin only)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Email"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/platform-domain": {
      "get": {
        "operationId": "PlatformDomainController_listActiveDomains",
        "summary": "List active platform domains",
        "description": "Returns active and verified platform domains available for email account creation.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "List of active platform domains"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Platform Domain"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/platform-domain/check-availability": {
      "get": {
        "operationId": "PlatformDomainController_checkAvailability",
        "summary": "Check email availability on a platform domain",
        "description": "Checks if a username@domain combination is available for creation.",
        "parameters": [
          {
            "name": "username",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Availability check result"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Platform Domain"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event/date-range": {
      "get": {
        "operationId": "CalendarEventController_getEventsByDateRange",
        "summary": "Get calendar events by date range",
        "parameters": [
          {
            "name": "startDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mailAccountId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "eventType",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "employeeId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/CalendarEvent"
                      },
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event/upcoming": {
      "get": {
        "operationId": "CalendarEventController_getUpcomingEvents",
        "summary": "Get upcoming events for current user",
        "parameters": [
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/CalendarEvent"
                      },
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event/{id}/send-invitation": {
      "post": {
        "operationId": "CalendarEventController_sendInvitation",
        "summary": "Send calendar invitation email with ICS attachment",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendInvitationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event/ics/accept": {
      "post": {
        "operationId": "CalendarEventController_acceptInvitation",
        "summary": "Accept a calendar invitation — creates a CalendarEvent and booking data",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptInvitationDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event/ics/decline": {
      "post": {
        "operationId": "CalendarEventController_declineInvitation",
        "summary": "Decline a calendar invitation — generates a METHOD:REPLY DECLINED ICS response",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclineInvitationDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event/ics/parse": {
      "post": {
        "operationId": "CalendarEventController_parseIcs",
        "summary": "Parse an ICS string and return structured event data",
        "parameters": [],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event": {
      "get": {
        "operationId": "listCalendarEvents",
        "summary": "List all calendarevents",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/CalendarEvent"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createCalendarEvent",
        "summary": "Create a new calendarevent",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarEventDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarEvent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-event/{id}": {
      "get": {
        "operationId": "getCalendarEvent",
        "summary": "Get a single calendarevent by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarEvent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateCalendarEvent",
        "summary": "Update an existing calendarevent by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarEventDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarEvent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteCalendarEvent",
        "summary": "Delete a calendarevent by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarEvent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarEvent"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-booking/date-range": {
      "get": {
        "operationId": "CalendarBookingController_getBookingsByDateRange",
        "summary": "Get calendar bookings by date range",
        "parameters": [
          {
            "name": "startDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mailAccountId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "employeeId",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/CalendarBooking"
                      },
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-booking/pending": {
      "get": {
        "operationId": "CalendarBookingController_getPendingBookings",
        "summary": "Get pending bookings",
        "parameters": [
          {
            "name": "limit",
            "required": true,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/CalendarBooking"
                      },
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-booking/{id}/confirm": {
      "patch": {
        "operationId": "CalendarBookingController_confirmBooking",
        "summary": "Confirm a booking",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarBooking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-booking/{id}/cancel": {
      "patch": {
        "operationId": "CalendarBookingController_cancelBooking",
        "summary": "Cancel a booking",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarBooking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-booking/token/{token}": {
      "get": {
        "operationId": "CalendarBookingController_findByConfirmationToken",
        "summary": "Find booking by confirmation token",
        "parameters": [
          {
            "name": "token",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarBooking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-booking": {
      "get": {
        "operationId": "listCalendarBookings",
        "summary": "List all calendarbookings",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/CalendarBooking"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createCalendarBooking",
        "summary": "Create a new calendarbooking",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarBookingDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarBooking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/calendar-booking/{id}": {
      "get": {
        "operationId": "getCalendarBooking",
        "summary": "Get a single calendarbooking by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarBooking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateCalendarBooking",
        "summary": "Update an existing calendarbooking by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarBookingDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarBooking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteCalendarBooking",
        "summary": "Delete a calendarbooking by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/CalendarBooking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "CalendarBooking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/booking": {
      "get": {
        "operationId": "listBookings",
        "summary": "List all bookings",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/Booking"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Booking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createBooking",
        "summary": "Create a new booking",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookingDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Booking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Booking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/booking/{id}": {
      "get": {
        "operationId": "getBooking",
        "summary": "Get a single booking by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Booking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Booking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateBooking",
        "summary": "Update an existing booking by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookingDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Booking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Booking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteBooking",
        "summary": "Delete a booking by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Booking"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Booking"
        ],
        "security": [
          {
            "bearer": []
          },
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page/{id}/domain/configure": {
      "post": {
        "operationId": "LandingPageController_configureDomain",
        "summary": "Configure a custom domain for a landing page",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Landing page ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string"
                  }
                },
                "required": [
                  "domain"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Domain configuration with DNS records to create"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page/{id}/domain/verify": {
      "post": {
        "operationId": "LandingPageController_verifyDomain",
        "summary": "Verify DNS records for a custom domain",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Landing page ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Verification result"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page/{id}/domain/provision-certificate": {
      "post": {
        "operationId": "LandingPageController_provisionCertificate",
        "summary": "Request an ACM certificate for the custom domain",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Landing page ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Certificate ARN and DNS validation records"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page/{id}/domain/check-certificate": {
      "post": {
        "operationId": "LandingPageController_checkCertificateStatus",
        "summary": "Check ACM certificate issuance status",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Landing page ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "certificateArn": {
                    "type": "string"
                  }
                },
                "required": [
                  "certificateArn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Certificate status"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page/{id}/domain/activate": {
      "post": {
        "operationId": "LandingPageController_activateDomain",
        "summary": "Activate custom domain on CloudFront",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Landing page ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "certificateArn": {
                    "type": "string"
                  }
                },
                "required": [
                  "certificateArn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Domain activated"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page/{id}/preview": {
      "get": {
        "operationId": "LandingPageController_preview",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page": {
      "get": {
        "operationId": "listLandingPages",
        "summary": "List all landingpages",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "firstName:asc,lastName:desc",
              "description": "Sort fields using fieldName:asc or fieldName:desc format. Multiple fields can be comma-separated."
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "examples": {
                "simple": {
                  "value": "firstName:John"
                },
                "complex": {
                  "value": "createdAt:gt:int(18),email:contains:@gmail.com"
                },
                "withOr": {
                  "value": "OR:[id:in:array(1,2,3),updatedAt:equals:int(18)]"
                },
                "withNot": {
                  "value": "firstName:contains:Admin,NOT:roles:hasSome:CUSTOMER"
                }
              },
              "description": "Filter using Prisma operators. Supports operators: equals, contains, gt, gte, lt, lte, in, not, startsWith, endsWith, etc."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "items": {
                        "$ref": "#/components/schemas/LandingPage"
                      },
                      "type": "array"
                    },
                    "meta": {
                      "properties": {
                        "total": {
                          "type": "number"
                        },
                        "lastPage": {
                          "type": "number"
                        },
                        "currentPage": {
                          "type": "number"
                        },
                        "perPage": {
                          "type": "number"
                        },
                        "prev": {
                          "type": "number"
                        },
                        "next": {
                          "type": "number"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "post": {
        "operationId": "createLandingPage",
        "summary": "Create a new landingpage",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LandingPageDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/LandingPage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/landing-page/{id}": {
      "get": {
        "operationId": "getLandingPage",
        "summary": "Get a single landingpage by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "example": "profile,orders,address",
              "description": "Include related entities. Use comma-separated values. Use \"-\" prefix to exclude fields. Important note: if not provided it will be used the default include relations defined in the BE."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/LandingPage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateLandingPage",
        "summary": "Update an existing landingpage by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LandingPageDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/LandingPage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteLandingPage",
        "summary": "Delete a landingpage by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200. Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/LandingPage"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "LandingPage"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/subscription/create-checkout-session": {
      "post": {
        "operationId": "SubscriptionController_createCheckoutSession",
        "summary": "Create a Stripe checkout session for a subscription",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCheckoutSessionDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Checkout session created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutSessionResponseDto"
                }
              }
            }
          }
        },
        "tags": [
          "Subscription"
        ]
      }
    },
    "/api/v1/subscription/status": {
      "get": {
        "operationId": "SubscriptionController_getSubscriptionStatus",
        "summary": "Get current subscription status for the business",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Subscription status retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionStatusDto"
                }
              }
            }
          }
        },
        "tags": [
          "Subscription"
        ]
      }
    },
    "/api/v1/subscription/stripe-webhooks": {
      "post": {
        "operationId": "SubscriptionController_handleStripeWebhook",
        "summary": "Handle incoming Stripe webhooks",
        "parameters": [
          {
            "name": "stripe-signature",
            "required": true,
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook received"
          },
          "400": {
            "description": "Webhook error (e.g., signature verification failed)"
          }
        },
        "tags": [
          "Subscription"
        ]
      }
    },
    "/api/v1/reports/vat/sales-ledger": {
      "get": {
        "operationId": "ReportsController_getSalesLedger",
        "summary": "Sales ledger (IRA) za zadani period",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "required": false,
            "in": "query",
            "description": "Filter by client ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/sales-ledger/pdf": {
      "get": {
        "operationId": "ReportsController_getSalesLedgerPdf",
        "summary": "Download Sales ledger (IRA) as PDF",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "required": false,
            "in": "query",
            "description": "Filter by client ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/sales-ledger/csv": {
      "get": {
        "operationId": "ReportsController_getSalesLedgerCsv",
        "summary": "Download Sales ledger (IRA) as CSV",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "required": false,
            "in": "query",
            "description": "Filter by client ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/purchase-ledger": {
      "get": {
        "operationId": "ReportsController_getPurchaseLedger",
        "summary": "Purchase ledger (URA) za zadani period",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "required": false,
            "in": "query",
            "description": "Filter by supplier ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/purchase-ledger/pdf": {
      "get": {
        "operationId": "ReportsController_getPurchaseLedgerPdf",
        "summary": "Download Purchase ledger (URA) as PDF",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "required": false,
            "in": "query",
            "description": "Filter by supplier ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/purchase-ledger/csv": {
      "get": {
        "operationId": "ReportsController_getPurchaseLedgerCsv",
        "summary": "Download Purchase ledger (URA) as CSV",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "required": false,
            "in": "query",
            "description": "Filter by supplier ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/summary": {
      "get": {
        "operationId": "ReportsController_getVatSummary",
        "summary": "VAT summary - rekapitulacija PDV-a za zadani period",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/summary/pdf": {
      "get": {
        "operationId": "ReportsController_getVatSummaryPdf",
        "summary": "Download VAT summary as PDF",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/summary/csv": {
      "get": {
        "operationId": "ReportsController_getVatSummaryCsv",
        "summary": "Download VAT summary as CSV",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/ppo-pd": {
      "get": {
        "operationId": "ReportsController_getPpoPd",
        "summary": "PPO-PD obrazac - PDV prijava",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/ppo-pd/pdf": {
      "get": {
        "operationId": "ReportsController_getPpoPdPdf",
        "summary": "Download PPO-PD as PDF",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/ppo-pd/csv": {
      "get": {
        "operationId": "ReportsController_getPpoPdCsv",
        "summary": "Download PPO-PD as CSV",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/vat/ppo-pd/xml": {
      "get": {
        "operationId": "ReportsController_getPpoPdXml",
        "summary": "Download PPO-PD as XML (for ePorezna)",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/einvoices": {
      "get": {
        "operationId": "ReportsController_getEInvoiceReport",
        "summary": "E-invoices & Fiscalization 2.0 report",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "direction",
            "required": false,
            "in": "query",
            "description": "Filter by direction",
            "schema": {
              "$ref": "#/components/schemas/InvoiceDirection"
            }
          },
          {
            "name": "eBusinessStatus",
            "required": false,
            "in": "query",
            "description": "Filter by e-poslovanje business status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/receivables/open": {
      "get": {
        "operationId": "ReportsController_getOpenReceivables",
        "summary": "Open receivables - otvorena potraživanja",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "required": false,
            "in": "query",
            "description": "Filter by client ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asOfDate",
            "required": false,
            "in": "query",
            "description": "Datum za izračun dospijeća i aging-a; default = danas ako nije zadano",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/reports/payables/open": {
      "get": {
        "operationId": "ReportsController_getOpenPayables",
        "summary": "Open payables - otvorene obveze",
        "parameters": [
          {
            "name": "from",
            "required": true,
            "in": "query",
            "description": "Report start date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "to",
            "required": true,
            "in": "query",
            "description": "Report end date",
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "required": false,
            "in": "query",
            "description": "Filter by supplier ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asOfDate",
            "required": false,
            "in": "query",
            "description": "Datum za izračun dospijeća i aging-a; default = danas ako nije zadano",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Reports"
        ]
      }
    },
    "/api/v1/api-key": {
      "post": {
        "operationId": "createApiKey",
        "summary": "Create a new API key",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiKeyDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ApiKey"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "get": {
        "operationId": "listApiKeys",
        "summary": "List all API keys for the current business",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "orderBy",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "where",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ApiKey"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/api-key/{id}": {
      "get": {
        "operationId": "getApiKey",
        "summary": "Get a single API key by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ApiKey"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateApiKey",
        "summary": "Update an existing API key",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateApiKeyDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ApiKey"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteApiKey",
        "summary": "Revoke an API key (soft-delete)",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "ApiKey"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/health": {
      "get": {
        "operationId": "HealthController_check",
        "parameters": [],
        "responses": {
          "200": {
            "description": "The Health Check is successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "info": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {},
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "The Health Check is not successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "error"
                    },
                    "info": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        },
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/health/memory": {
      "get": {
        "operationId": "HealthController_checkMemory",
        "parameters": [],
        "responses": {
          "200": {
            "description": "The Health Check is successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "info": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {},
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "The Health Check is not successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "error"
                    },
                    "info": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        },
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/health/disk": {
      "get": {
        "operationId": "HealthController_checkDisk",
        "parameters": [],
        "responses": {
          "200": {
            "description": "The Health Check is successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "ok"
                    },
                    "info": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {},
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "The Health Check is not successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "example": "error"
                    },
                    "info": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "error": {
                      "type": "object",
                      "example": {
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "example": {
                        "database": {
                          "status": "up"
                        },
                        "redis": {
                          "status": "down",
                          "message": "Could not connect"
                        }
                      },
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/capabilities": {
      "get": {
        "operationId": "DiscoveryController_getCapabilities",
        "summary": "Get API capabilities",
        "description": "Returns machine-readable JSON listing all entities, available actions, event types, and permission model. Designed for AI agent discovery.",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "Discovery"
        ]
      }
    },
    "/api/v1/auth/sign-up": {
      "post": {
        "operationId": "AuthController_create",
        "summary": "User registration",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignUpDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201. Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "$ref": "#/components/schemas/UserResponseDto"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/v1/auth/sign-in": {
      "post": {
        "operationId": "AuthController_signIn",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignInDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/v1/auth/token/refresh": {
      "post": {
        "operationId": "AuthController_refreshToken",
        "parameters": [],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/v1/auth/logout": {
      "post": {
        "operationId": "AuthController_logout",
        "parameters": [],
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/auth/activate": {
      "post": {
        "operationId": "AuthController_activateAccount",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivateAccountDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/v1/auth/resend-activation": {
      "post": {
        "operationId": "AuthController_resendActivationCode",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResendActivationCodeDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/v1/auth/password-reset/request": {
      "post": {
        "operationId": "AuthController_requestPasswordReset",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestPasswordResetDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/v1/auth/password-reset/confirm": {
      "post": {
        "operationId": "AuthController_resetPassword",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/api/v1/image/upload-url": {
      "post": {
        "operationId": "ImageController_getUploadUrl",
        "summary": "Get presigned URL for image upload",
        "description": "Returns a presigned URL for direct S3 upload. Frontend should use this URL to upload images directly to S3.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns presigned URL and post fields for S3 upload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresignedUrlResponse"
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Image"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/image/upload": {
      "post": {
        "operationId": "ImageController_uploadImage",
        "summary": "Upload an image",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Image uploaded successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageEntity"
                }
              }
            }
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Image"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/image/sign-urls": {
      "post": {
        "operationId": "ImageController_getSignedUrls",
        "summary": "Get signed URLs for multiple image keys",
        "description": "Returns signed URLs for the provided image keys",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Returns mapping of image keys to signed URLs"
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Image"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/contact": {
      "post": {
        "operationId": "ContactController_sendContactForm",
        "summary": "Send contact form from landing page",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendContactFormDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "contact"
        ]
      }
    },
    "/api/v1/webhook": {
      "post": {
        "operationId": "createWebhook",
        "summary": "Create a new webhook",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Webhook"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "get": {
        "operationId": "listWebhooks",
        "summary": "List all webhooks for the current business",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Webhook"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/webhook/{id}": {
      "get": {
        "operationId": "getWebhook",
        "summary": "Get a single webhook by ID",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Webhook"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "put": {
        "operationId": "updateWebhook",
        "summary": "Update a webhook",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWebhookDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Webhook"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      },
      "delete": {
        "operationId": "deleteWebhook",
        "summary": "Deactivate a webhook",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Webhook"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/webhook/{id}/deliveries": {
      "get": {
        "operationId": "listWebhookDeliveries",
        "summary": "List delivery logs for a webhook",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "perPage",
            "required": false,
            "in": "query",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Webhook"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    },
    "/api/v1/webhook/{id}/test": {
      "post": {
        "operationId": "testWebhook",
        "summary": "Send a test event to the webhook URL",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          },
          "400": {
            "description": "400. Bad Request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 400000,
                      "message": "Bad request",
                      "details": "The request you are trying to make is invalid."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401. Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 401000,
                      "message": "Unauthorized resource",
                      "details": "The resource you are trying to access is unauthorized."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403. Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 403000,
                      "message": "Forbidden",
                      "details": "You do not have permission to perform this action."
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404. Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 404000,
                      "message": "Not found",
                      "details": "The resource you are trying to access does not exist."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422. Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 422000,
                      "message": "Validation failed",
                      "details": [
                        {
                          "field": "email",
                          "message": "email must be a valid email address"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "429. Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 429000,
                      "message": "Too many requests",
                      "details": "Rate limit exceeded. Try again later."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "500. Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "success": false,
                    "error": {
                      "code": 500000,
                      "message": "Internal server error",
                      "details": "Something went wrong."
                    }
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Webhook"
        ],
        "security": [
          {
            "bearer": []
          }
        ]
      }
    }
  },
  "info": {
    "title": "InCRM API",
    "description": "Multi-tenant SaaS CRM platform API.\n\n**Base URL:** `https://api.incrm.app/api/v1/`\n\n**Authentication:** Bearer JWT token via `Authorization: Bearer <token>`. Obtain tokens via `POST /api/v1/auth/sign-in`.\n\n**Response envelope:** All responses are wrapped in `{ success: boolean, data: T, meta?: PaginationMeta }`.\nError responses use `{ success: false, error: { code: number, message: string, details?: any } }`.\n\n**Pagination:** List endpoints accept `page` and `perPage` query params. Response includes `meta` with `total`, `lastPage`, `currentPage`, `perPage`, `prev`, `next`.\n\n**Rate limiting:** 50 requests/minute per IP. Headers: `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`.",
    "version": "1.0",
    "contact": {},
    "x-ai-hints": {
      "authentication": "Use X-Api-Key header for machine-to-machine. Use Bearer JWT for user-context requests.",
      "pagination": "All list endpoints support ?page=1&perPage=20. Follow meta.next until null for full traversal.",
      "filtering": "Use ?where=field:operator:value syntax. Operators: gt, gte, lt, lte, contains, startsWith, endsWith.",
      "idempotency": "POST endpoints are not idempotent. PUT endpoints are idempotent.",
      "destructive_operations": [
        "DELETE /client/{id}",
        "DELETE /invoice/{id}"
      ],
      "recommended_first_call": "GET /api/v1/capabilities"
    }
  },
  "tags": [],
  "servers": [],
  "components": {
    "securitySchemes": {
      "bearer": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "in": "header",
        "type": "http"
      }
    },
    "schemas": {
      "BusinessCategoryDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "visibleFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "slug",
          "visibleFeatures"
        ]
      },
      "Roles": {
        "type": "string",
        "enum": [
          "incrmAdmin"
        ]
      },
      "UserResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "maxLength": 18
          },
          "firstName": {
            "type": "string",
            "nullable": true,
            "maxLength": 18
          },
          "lastName": {
            "type": "string",
            "nullable": true,
            "maxLength": 18
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "avatar": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Roles"
            }
          },
          "isVerified": {
            "type": "boolean"
          },
          "businessId": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "phone",
          "firstName",
          "lastName",
          "email",
          "avatar",
          "roles",
          "isVerified",
          "businessId",
          "employeeId"
        ]
      },
      "UserDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "activationCode": {
            "type": "string",
            "nullable": true
          },
          "activationCodeExpiry": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "resetPasswordToken": {
            "type": "string",
            "nullable": true
          },
          "resetPasswordTokenExpiry": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CreateRoleDto": {
        "type": "object",
        "properties": {}
      },
      "UpdateRoleDto": {
        "type": "object",
        "properties": {}
      },
      "ConnectBusinessCategoryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        }
      },
      "BusinessBusinessCategoryRelationInputDto": {
        "type": "object",
        "properties": {
          "create": {
            "$ref": "#/components/schemas/BusinessCategoryDto"
          },
          "connect": {
            "$ref": "#/components/schemas/ConnectBusinessCategoryDto"
          }
        }
      },
      "ConnectBusinessDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "businessSlug": {
            "type": "string"
          }
        }
      },
      "EmployeeCategoryBusinessRelationInputDto": {
        "type": "object",
        "properties": {
          "connect": {
            "$ref": "#/components/schemas/ConnectBusinessDto"
          }
        },
        "required": [
          "connect"
        ]
      },
      "EmployeeCategoryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colour": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "colour",
          "createdAt",
          "updatedAt"
        ]
      },
      "ConnectEmployeeCategoryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "BusinessEmployeeCategoriesRelationInputDto": {
        "type": "object",
        "properties": {
          "create": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeCategoryDto"
            }
          },
          "connect": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectEmployeeCategoryDto"
            }
          }
        }
      },
      "Currencies": {
        "type": "string",
        "enum": [
          "HRK",
          "USD",
          "EUR",
          "GBP",
          "JPY",
          "CNY",
          "INR",
          "AUD",
          "CAD",
          "CHF",
          "NZD",
          "ALL",
          "BAM",
          "BGN",
          "CZK",
          "DKK",
          "HUF",
          "ISK",
          "MKD",
          "NOK",
          "PLN",
          "RSD",
          "SEK",
          "TRY",
          "UAH",
          "AED",
          "AFN",
          "BDT",
          "HKD",
          "IDR",
          "ILS",
          "KRW",
          "KZT",
          "LKR",
          "MYR",
          "PHP",
          "PKR",
          "SGD",
          "THB",
          "TWD",
          "VND",
          "EGP",
          "KES",
          "MAD",
          "NGN",
          "ZAR",
          "BHD",
          "IRR",
          "JOD",
          "KWD",
          "OMR",
          "QAR",
          "SAR",
          "ARS",
          "BRL",
          "CLP",
          "COP",
          "MXN",
          "PEN",
          "UYU",
          "BTC",
          "ETH",
          "USDT",
          "BNB",
          "SOL",
          "XRP",
          "USDC",
          "ADA",
          "AVAX",
          "DOGE",
          "DOT",
          "MATIC",
          "LINK",
          "UNI",
          "ATOM",
          "LTC",
          "XLM",
          "ALGO",
          "NEAR",
          "FTM",
          "MANA",
          "SAND",
          "AAVE",
          "MKR",
          "COMP",
          "SNX",
          "YFI",
          "CAKE",
          "SUSHI",
          "CRV"
        ]
      },
      "Countries": {
        "type": "string",
        "enum": [
          "AL",
          "AU",
          "AT",
          "BE",
          "BA",
          "BG",
          "CA",
          "HR",
          "CY",
          "CZ",
          "DK",
          "EE",
          "FI",
          "FR",
          "DE",
          "GR",
          "HU",
          "IS",
          "IE",
          "IT",
          "XK",
          "LV",
          "LI",
          "LT",
          "LU",
          "MT",
          "ME",
          "NL",
          "NZ",
          "MK",
          "NO",
          "PL",
          "PT",
          "RO",
          "RS",
          "SK",
          "SI",
          "ES",
          "SE",
          "CH",
          "TR",
          "UA",
          "GB",
          "US"
        ]
      },
      "BankAccountDto": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string",
            "nullable": true
          },
          "iban": {
            "type": "string",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "nullable": true
          },
          "sortCode": {
            "type": "string",
            "nullable": true
          },
          "swift": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "accountOpeningDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountClosingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "AddressDto": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "nullable": true,
            "$ref": "#/components/schemas/Countries"
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "stateCode": {
            "type": "string",
            "nullable": true
          },
          "route": {
            "type": "string",
            "nullable": true
          },
          "streetNumber": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ContactPersonDto": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "position": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CompanyInfoDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "fullName": {
            "type": "string",
            "nullable": true
          },
          "slogan": {
            "type": "string",
            "nullable": true
          },
          "PIN": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "dateOfEstablishment": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "NACECode6201": {
            "type": "string",
            "nullable": true
          },
          "registrationAuthority": {
            "type": "string",
            "nullable": true
          },
          "businessLogo": {
            "type": "string",
            "nullable": true
          },
          "businessType": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currencies"
          },
          "country": {
            "$ref": "#/components/schemas/Countries"
          },
          "vatNumber": {
            "type": "string",
            "nullable": true
          },
          "isVatRegistered": {
            "type": "boolean",
            "default": false,
            "nullable": true
          },
          "isTaxInclusive": {
            "type": "boolean",
            "default": false,
            "nullable": true
          },
          "isSoleProprietorship": {
            "type": "boolean",
            "default": false,
            "nullable": true
          },
          "responsiblePersonFullName": {
            "type": "string",
            "nullable": true
          },
          "companyLegalForm": {
            "type": "string",
            "nullable": true
          },
          "bankAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankAccountDto"
            }
          },
          "address": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDto"
              }
            ]
          },
          "contactPersons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactPersonDto"
            }
          }
        },
        "required": [
          "name",
          "currency",
          "country"
        ]
      },
      "BusinessQuotasDto": {
        "type": "object",
        "properties": {}
      },
      "BusinessDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "businessSlug": {
            "type": "string"
          },
          "companyInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "availableFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "quotas": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessQuotasDto"
              }
            ]
          },
          "stripeCustomerId": {
            "type": "string",
            "nullable": true
          },
          "stripeSubscriptionId": {
            "type": "string",
            "nullable": true
          },
          "subscribedPlanId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionStatus": {
            "type": "string",
            "nullable": true
          },
          "subscriptionCurrentPeriodEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ClientCategoryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colour": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "colour",
          "createdAt",
          "updatedAt"
        ]
      },
      "ClientDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Primary email address of the client."
          },
          "companyInfo": {
            "description": "Embedded company details (name, OIB/tax ID, address) if the client is a business entity.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "clientCategoryId": {
            "type": "string",
            "description": "ID of the client category. If omitted, the first available category for the business is used automatically."
          }
        },
        "required": [
          "email"
        ]
      },
      "InviteEmployeeDto": {
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "string"
          }
        },
        "required": [
          "employeeId"
        ]
      },
      "DocumentMetadataTemplateDto": {
        "type": "object",
        "properties": {
          "documentMetadataTemplateName": {
            "type": "string"
          },
          "fileTemplateName": {
            "type": "string",
            "nullable": true
          },
          "isProtected": {
            "type": "boolean",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "additionalInfo": {
            "type": "string",
            "nullable": true
          },
          "paymentTerms": {
            "type": "string",
            "nullable": true
          },
          "taxDisclaimer": {
            "type": "string",
            "nullable": true
          },
          "documentFooter": {
            "type": "string",
            "nullable": true
          },
          "brandingColor": {
            "type": "string",
            "nullable": true
          },
          "labels": {
            "type": "object",
            "nullable": true
          }
        },
        "required": [
          "documentMetadataTemplateName",
          "fileTemplateName",
          "isProtected",
          "locale",
          "title",
          "additionalInfo",
          "paymentTerms",
          "taxDisclaimer",
          "documentFooter",
          "brandingColor",
          "labels"
        ]
      },
      "DiscountDto": {
        "type": "object",
        "properties": {
          "discountRate": {
            "type": "number",
            "format": "float"
          },
          "name": {
            "type": "string"
          },
          "discountType": {
            "type": "string",
            "description": "\"percentage\" (default) or \"fixed\". Fixed means discountAmount is an absolute currency value.",
            "nullable": true
          },
          "discountAmount": {
            "type": "number",
            "description": "Absolute discount amount (used when discountType is \"fixed\").",
            "format": "float",
            "nullable": true
          }
        },
        "required": [
          "discountRate",
          "name",
          "discountType",
          "discountAmount"
        ]
      },
      "InvoiceDirection": {
        "type": "string",
        "enum": [
          "INCOMING",
          "OUTGOING"
        ]
      },
      "InvoiceSource": {
        "type": "string",
        "enum": [
          "MANUAL",
          "E_POSLOVANJE",
          "EMAIL_PDF_OCR"
        ]
      },
      "InvoiceExternalIdsDto": {
        "type": "object",
        "properties": {
          "supplierSystemId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "supplierSystemId"
        ]
      },
      "InvoiceStatusHistoryItemDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "code",
          "at",
          "source",
          "note"
        ]
      },
      "EReportingEventDto": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "at": {
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "payload": {
            "type": "object",
            "nullable": true
          }
        },
        "required": [
          "kind",
          "at",
          "note",
          "payload"
        ]
      },
      "InvoiceStatus": {
        "type": "string",
        "enum": [
          "Draft",
          "Issued",
          "PartiallyPaid",
          "Paid",
          "Canceled"
        ]
      },
      "PaymentStatus": {
        "type": "string",
        "enum": [
          "NotPaid",
          "PartlyPaid",
          "Paid"
        ]
      },
      "PaymentType": {
        "type": "string",
        "enum": [
          "cash",
          "creditCard",
          "bankTransfer",
          "creditTransfer",
          "directDebit",
          "paymentByBankCheque"
        ]
      },
      "InvoiceTypeCode": {
        "type": "string",
        "enum": [
          "CommercialInvoice",
          "CreditNote",
          "DebitNote",
          "CorrectedInvoice",
          "ProformaInvoice",
          "PartialInvoice",
          "MeteredServicesInvoice",
          "PrepaymentInvoice",
          "LeasingInvoice"
        ]
      },
      "BusinessProcess": {
        "type": "string",
        "enum": [
          "ContractOrderInvoicing",
          "PeriodicContractInvoicing",
          "UnforeseenOrderInvoicing",
          "AdvancePayment",
          "SpotPayment",
          "PreDeliveryPayment",
          "InvoiceWithDespatchAdviceRef",
          "InvoiceWithDespatchAndReceivingRef",
          "CreditOrNegativeInvoicing",
          "CorrectiveInvoicing",
          "PartialAndFinalInvoicing",
          "SelfBilling"
        ]
      },
      "BusinessCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "visibleFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "businesses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Business"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "visibleFeatures",
          "createdAt",
          "updatedAt"
        ]
      },
      "ProductVariantDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unitPrice": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "discountRate": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "kpdCode": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "pictures",
          "unitPrice",
          "discountRate",
          "kpdCode"
        ]
      },
      "UnitsOfMeasure": {
        "type": "string",
        "enum": [
          "l",
          "pcs",
          "m",
          "m2",
          "m3",
          "cm",
          "mm",
          "km",
          "kg",
          "t",
          "g",
          "mg",
          "ml",
          "pkg",
          "box",
          "set",
          "pair",
          "h",
          "day",
          "mo",
          "qua",
          "year"
        ]
      },
      "BookingStatus": {
        "type": "string",
        "enum": [
          "Pending",
          "Confirmed",
          "Active",
          "Declined",
          "Cancelled",
          "Completed",
          "NoShow"
        ]
      },
      "ServiceVariantDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unitPrice": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "isPrepay": {
            "type": "boolean"
          },
          "discountRate": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "kpdCode": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "pictures",
          "unitPrice",
          "isPrepay",
          "discountRate",
          "kpdCode"
        ]
      },
      "Service": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique service identifier (MongoDB ObjectId)."
          },
          "name": {
            "type": "string",
            "description": "Service name displayed to customers."
          },
          "description": {
            "type": "string",
            "description": "Detailed service description.",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "variants": {
            "description": "Array of service variants with different pricing tiers.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceVariantDto"
            }
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "unitPrice": {
            "type": "number",
            "description": "Service price per unit.",
            "format": "float"
          },
          "vatRate": {
            "type": "number",
            "description": "VAT rate as a decimal (e.g. 0.25 for 25%).",
            "format": "float"
          },
          "unitOfMeasure": {
            "description": "Unit of measurement (HOUR, DAY, PCS, etc.).",
            "nullable": true,
            "$ref": "#/components/schemas/UnitsOfMeasure"
          },
          "locationIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Location ObjectId reference (circular ref removed for docs)."
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string",
            "description": "ID of the business (tenant) this service belongs to."
          },
          "bookings": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Booking ObjectId reference (circular ref removed for docs)."
            }
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the service was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the service was last updated.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "pictures",
          "variants",
          "currency",
          "unitPrice",
          "vatRate",
          "unitOfMeasure",
          "locationIds",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "Location": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "latitude": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "additionalPictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "address": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDto"
              }
            ]
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            }
          },
          "serviceIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "bookings": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Booking ObjectId reference (circular ref removed for docs)."
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "latitude",
          "longitude",
          "name",
          "description",
          "pictures",
          "additionalPictures",
          "address",
          "serviceIds",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "QuoteStatus": {
        "type": "string",
        "enum": [
          "Draft",
          "Issued",
          "Accepted",
          "Declined",
          "Expired"
        ]
      },
      "DocumentTemplate": {
        "type": "string",
        "enum": [
          "simple",
          "informativeQuote"
        ]
      },
      "LineItemType": {
        "type": "string",
        "enum": [
          "Product",
          "Service",
          "Other"
        ]
      },
      "LineItemDto": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "descriptionDetails": {
            "type": "string",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "nullable": true
          },
          "locationUrl": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "float"
          },
          "unitPrice": {
            "type": "number",
            "format": "float"
          },
          "unitOfMeasure": {
            "type": "string",
            "nullable": true
          },
          "vatRate": {
            "type": "number",
            "format": "float"
          },
          "vatAmount": {
            "type": "number",
            "format": "float"
          },
          "discountRate": {
            "type": "number",
            "format": "float"
          },
          "discountAmount": {
            "type": "number",
            "format": "float"
          },
          "lineTotal": {
            "type": "number",
            "format": "float"
          },
          "additionalPictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "lineType": {
            "$ref": "#/components/schemas/LineItemType"
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "serviceId": {
            "type": "string",
            "nullable": true
          },
          "shipmentId": {
            "type": "string",
            "nullable": true
          },
          "expenseId": {
            "type": "string",
            "nullable": true
          },
          "kpdCode": {
            "type": "string",
            "nullable": true
          },
          "vatCategoryCode": {
            "type": "string",
            "nullable": true
          },
          "taxExemptionReasonCode": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "description",
          "descriptionDetails",
          "sku",
          "locationUrl",
          "quantity",
          "unitPrice",
          "unitOfMeasure",
          "vatRate",
          "vatAmount",
          "discountRate",
          "discountAmount",
          "lineTotal",
          "additionalPictures",
          "pictures",
          "lineType",
          "productId",
          "serviceId",
          "shipmentId",
          "expenseId",
          "kpdCode",
          "vatCategoryCode",
          "taxExemptionReasonCode"
        ]
      },
      "AdditionalPageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "title",
          "content",
          "pageNumber",
          "createdAt",
          "updatedAt"
        ]
      },
      "Quote": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique quote identifier (MongoDB ObjectId)."
          },
          "reference": {
            "type": "string",
            "description": "Quote reference number (e.g. QT-2025-001)."
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "paymentType": {
            "nullable": true,
            "$ref": "#/components/schemas/PaymentType"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "customFooter": {
            "type": "string",
            "nullable": true
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "vatRate": {
            "type": "number",
            "format": "float"
          },
          "vatAmount": {
            "type": "number",
            "format": "float"
          },
          "linesDiscountAmount": {
            "type": "number",
            "format": "float"
          },
          "linesTotal": {
            "type": "number",
            "format": "float"
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountDto"
            }
          },
          "subTotal": {
            "type": "number",
            "format": "float"
          },
          "grandTotal": {
            "type": "number",
            "description": "Final total amount including VAT and discounts.",
            "format": "float"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the quote was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the quote was last updated.",
            "format": "date-time"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "dateRequested": {
            "type": "string",
            "format": "date-time"
          },
          "dateDesired": {
            "type": "string",
            "format": "date-time"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiryDate": {
            "type": "string",
            "description": "Expiration date after which the quote can no longer be accepted.",
            "format": "date-time",
            "nullable": true
          },
          "sentDates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          },
          "status": {
            "description": "Current quote status: Draft, Sent, Accepted, Declined, Expired, Converted.",
            "$ref": "#/components/schemas/QuoteStatus"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "documentTemplate": {
            "$ref": "#/components/schemas/DocumentTemplate"
          },
          "terms": {
            "type": "string",
            "nullable": true
          },
          "createdBy": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Employee ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "createdById": {
            "type": "string",
            "nullable": true
          },
          "client": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Client ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "clientId": {
            "type": "string",
            "description": "ID of the client this quote is for.",
            "nullable": true
          },
          "convertedToInvoiceIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "convertedToInvoices": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Invoice ObjectId reference (circular ref removed for docs)."
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string",
            "description": "ID of the business (tenant) this quote belongs to."
          },
          "parentQuoteId": {
            "type": "string",
            "nullable": true
          },
          "parentQuote": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Quote ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "childQuotes": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Quote ObjectId reference (circular ref removed for docs)."
            }
          },
          "bookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Booking"
            }
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          },
          "additionalPages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalPageDto"
            }
          }
        },
        "required": [
          "id",
          "reference",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "documentMetadata",
          "paymentType",
          "type",
          "customFooter",
          "pdfLink",
          "currency",
          "vatRate",
          "vatAmount",
          "linesDiscountAmount",
          "linesTotal",
          "discounts",
          "subTotal",
          "grandTotal",
          "createdAt",
          "updatedAt",
          "title",
          "description",
          "dateRequested",
          "dateDesired",
          "startDate",
          "expiryDate",
          "sentDates",
          "status",
          "attachments",
          "documentTemplate",
          "terms",
          "createdById",
          "clientId",
          "convertedToInvoiceIds",
          "businessId",
          "parentQuoteId",
          "lineItems",
          "additionalPages"
        ]
      },
      "ToolResultDto": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "body": {
            "type": "object"
          }
        },
        "required": [
          "message",
          "body"
        ]
      },
      "ToolInvocationDto": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string"
          },
          "toolCallId": {
            "type": "string"
          },
          "toolName": {
            "type": "string"
          },
          "args": {
            "type": "object"
          },
          "result": {
            "$ref": "#/components/schemas/ToolResultDto"
          }
        },
        "required": [
          "state",
          "toolCallId",
          "toolName",
          "args",
          "result"
        ]
      },
      "MessageEntityContextDto": {
        "type": "object",
        "properties": {
          "entityType": {
            "type": "string"
          },
          "entityId": {
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "entityType",
          "entityId",
          "displayName"
        ]
      },
      "MessageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "toolInvocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ToolInvocationDto"
            }
          },
          "revisionId": {
            "type": "string",
            "nullable": true
          },
          "entityContext": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageEntityContextDto"
            }
          }
        },
        "required": [
          "id",
          "role",
          "content",
          "createdAt",
          "toolInvocations",
          "revisionId",
          "entityContext"
        ]
      },
      "AIChat": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageDto"
            }
          },
          "tagline": {
            "type": "string",
            "nullable": true
          },
          "user": {
            "type": "string",
            "description": "User ObjectId reference (circular ref removed for docs)."
          },
          "userId": {
            "type": "string"
          },
          "business": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Business ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "businessId": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "messages",
          "tagline",
          "userId",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "MailAccountProviderType": {
        "type": "string",
        "enum": [
          "SES",
          "EXTERNAL",
          "PLATFORM"
        ]
      },
      "DomainStatus": {
        "type": "string",
        "enum": [
          "Pending",
          "Verified",
          "Failed"
        ]
      },
      "Domain": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DomainStatus"
          },
          "isHostedByUs": {
            "type": "boolean"
          },
          "dkimRecords": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "spfRecord": {
            "type": "string",
            "nullable": true
          },
          "dkimSelector": {
            "type": "string",
            "nullable": true
          },
          "inboundMxRecord": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "businessVerificationToken": {
            "type": "string",
            "nullable": true
          },
          "sesIdentityArn": {
            "type": "string",
            "nullable": true
          },
          "sesVerificationToken": {
            "type": "string",
            "nullable": true
          },
          "sesConfigurationSet": {
            "type": "string",
            "nullable": true
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "mailAccounts": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "MailAccount ObjectId reference (circular ref removed for docs)."
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "isHostedByUs",
          "dkimRecords",
          "spfRecord",
          "dkimSelector",
          "inboundMxRecord",
          "notes",
          "businessVerificationToken",
          "sesIdentityArn",
          "sesVerificationToken",
          "sesConfigurationSet",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "ConnectionSecurityType": {
        "type": "string",
        "enum": [
          "SSL_TLS",
          "STARTTLS",
          "NONE"
        ]
      },
      "ExternalConnectionStatus": {
        "type": "string",
        "enum": [
          "ACTIVE",
          "CREDENTIALS_INVALID",
          "CONNECTION_ERROR",
          "SYNCING",
          "DISABLED"
        ]
      },
      "ExternalMailConnection": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "imapHost": {
            "type": "string"
          },
          "imapPort": {
            "type": "integer",
            "format": "int32"
          },
          "imapSecurity": {
            "$ref": "#/components/schemas/ConnectionSecurityType"
          },
          "smtpHost": {
            "type": "string"
          },
          "smtpPort": {
            "type": "integer",
            "format": "int32"
          },
          "smtpSecurity": {
            "$ref": "#/components/schemas/ConnectionSecurityType"
          },
          "username": {
            "type": "string"
          },
          "initialSyncDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lastSyncedUid": {
            "type": "string",
            "nullable": true
          },
          "lastSyncedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "initialSyncDone": {
            "type": "boolean"
          },
          "uidValidity": {
            "type": "string",
            "nullable": true
          },
          "connectionStatus": {
            "$ref": "#/components/schemas/ExternalConnectionStatus"
          },
          "lastErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "lastErrorAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "mailAccount": {
            "type": "string",
            "description": "MailAccount ObjectId reference (circular ref removed for docs)."
          },
          "mailAccountId": {
            "type": "string"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "imapHost",
          "imapPort",
          "imapSecurity",
          "smtpHost",
          "smtpPort",
          "smtpSecurity",
          "username",
          "initialSyncDays",
          "lastSyncedUid",
          "lastSyncedDate",
          "initialSyncDone",
          "uidValidity",
          "connectionStatus",
          "lastErrorMessage",
          "lastErrorAt",
          "mailAccountId",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "EmailAttachmentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "filename": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "s3Key": {
            "type": "string"
          },
          "s3Bucket": {
            "type": "string",
            "nullable": true
          },
          "checksum": {
            "type": "string",
            "nullable": true
          },
          "isInline": {
            "type": "boolean",
            "nullable": true
          },
          "contentId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "filename",
          "contentType",
          "size",
          "s3Key",
          "s3Bucket",
          "checksum",
          "isInline",
          "contentId"
        ]
      },
      "EmailMessage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "messageId": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cc": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bcc": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "replyTo": {
            "type": "string",
            "nullable": true
          },
          "textContent": {
            "type": "string",
            "nullable": true
          },
          "htmlContent": {
            "type": "string",
            "nullable": true
          },
          "snippet": {
            "type": "string",
            "nullable": true
          },
          "threadRootId": {
            "type": "string",
            "nullable": true
          },
          "inReplyTo": {
            "type": "string",
            "nullable": true
          },
          "references": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "size": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "priority": {
            "type": "string",
            "nullable": true
          },
          "isRead": {
            "type": "boolean"
          },
          "isStarred": {
            "type": "boolean"
          },
          "isImportant": {
            "type": "boolean"
          },
          "isSpam": {
            "type": "boolean"
          },
          "isDeleted": {
            "type": "boolean"
          },
          "isSentBySystem": {
            "type": "boolean"
          },
          "isDraft": {
            "type": "boolean"
          },
          "lastReadByUserId": {
            "type": "string",
            "nullable": true
          },
          "lastReadAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastStarredByUserId": {
            "type": "string",
            "nullable": true
          },
          "lastStarredAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastImportantByUserId": {
            "type": "string",
            "nullable": true
          },
          "lastImportantAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastSpamByUserId": {
            "type": "string",
            "nullable": true
          },
          "lastSpamAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastDeletedByUserId": {
            "type": "string",
            "nullable": true
          },
          "lastDeletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailAttachmentDto"
            }
          },
          "aiSummary": {
            "type": "string",
            "nullable": true
          },
          "aiTags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sentiment": {
            "type": "string",
            "nullable": true
          },
          "externalMessageUid": {
            "type": "string",
            "nullable": true
          },
          "providerType": {
            "$ref": "#/components/schemas/MailAccountProviderType"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "mailAccount": {
            "type": "string",
            "description": "MailAccount ObjectId reference (circular ref removed for docs)."
          },
          "mailAccountId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "messageId",
          "subject",
          "from",
          "to",
          "cc",
          "bcc",
          "replyTo",
          "textContent",
          "htmlContent",
          "snippet",
          "threadRootId",
          "inReplyTo",
          "references",
          "date",
          "size",
          "priority",
          "isRead",
          "isStarred",
          "isImportant",
          "isSpam",
          "isDeleted",
          "isSentBySystem",
          "isDraft",
          "lastReadByUserId",
          "lastReadAt",
          "lastStarredByUserId",
          "lastStarredAt",
          "lastImportantByUserId",
          "lastImportantAt",
          "lastSpamByUserId",
          "lastSpamAt",
          "lastDeletedByUserId",
          "lastDeletedAt",
          "labels",
          "attachments",
          "aiSummary",
          "aiTags",
          "sentiment",
          "externalMessageUid",
          "providerType",
          "businessId",
          "mailAccountId",
          "createdAt",
          "updatedAt"
        ]
      },
      "CalendarEventType": {
        "type": "string",
        "enum": [
          "Event",
          "Todo",
          "Booking",
          "Meeting",
          "Reminder"
        ]
      },
      "CalendarEventStatus": {
        "type": "string",
        "enum": [
          "Pending",
          "Confirmed",
          "Cancelled",
          "Completed"
        ]
      },
      "RecurrenceFrequency": {
        "type": "string",
        "enum": [
          "None",
          "Daily",
          "Weekly",
          "Monthly",
          "Yearly"
        ]
      },
      "RecurrenceRuleDto": {
        "type": "object",
        "properties": {
          "frequency": {
            "$ref": "#/components/schemas/RecurrenceFrequency"
          },
          "interval": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "occurrences": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "daysOfWeek": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "dayOfMonth": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "monthOfYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "required": [
          "frequency",
          "interval",
          "endDate",
          "occurrences",
          "daysOfWeek",
          "dayOfMonth",
          "monthOfYear"
        ]
      },
      "CalendarBooking": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/BookingStatus"
          },
          "calendarEvent": {
            "type": "string",
            "description": "CalendarEvent ObjectId reference (circular ref removed for docs)."
          },
          "calendarEventId": {
            "type": "string"
          },
          "organizerName": {
            "type": "string"
          },
          "organizerEmail": {
            "type": "string"
          },
          "attendeeName": {
            "type": "string",
            "nullable": true
          },
          "attendeeEmail": {
            "type": "string"
          },
          "attendeePhone": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "meetingUrl": {
            "type": "string",
            "nullable": true
          },
          "mailAccountId": {
            "type": "string",
            "nullable": true
          },
          "mailAccount": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "MailAccount ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "client": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Client ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "employee": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Employee ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "bookingNotes": {
            "type": "string",
            "nullable": true
          },
          "cancellationReason": {
            "type": "string",
            "nullable": true
          },
          "confirmationToken": {
            "type": "string",
            "nullable": true
          },
          "reminderSentAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "confirmedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "startDate",
          "endDate",
          "duration",
          "status",
          "calendarEventId",
          "organizerName",
          "organizerEmail",
          "attendeeName",
          "attendeeEmail",
          "attendeePhone",
          "location",
          "meetingUrl",
          "mailAccountId",
          "clientId",
          "employeeId",
          "businessId",
          "bookingNotes",
          "cancellationReason",
          "confirmationToken",
          "reminderSentAt",
          "confirmedAt",
          "cancelledAt",
          "createdAt",
          "updatedAt"
        ]
      },
      "CalendarEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "eventType": {
            "$ref": "#/components/schemas/CalendarEventType"
          },
          "status": {
            "$ref": "#/components/schemas/CalendarEventStatus"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "isAllDay": {
            "type": "boolean"
          },
          "isRecurring": {
            "type": "boolean"
          },
          "recurrenceRule": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurrenceRuleDto"
              }
            ]
          },
          "parentEventId": {
            "type": "string",
            "nullable": true
          },
          "parentEvent": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "CalendarEvent ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "childEvents": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "CalendarEvent ObjectId reference (circular ref removed for docs)."
            }
          },
          "attendeeEmails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mailAccountId": {
            "type": "string",
            "nullable": true
          },
          "mailAccount": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "MailAccount ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "client": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Client ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "employee": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Employee ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "business": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Business ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "businessId": {
            "type": "string",
            "nullable": true
          },
          "createdBy": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "User ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "createdById": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "reminder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarBooking"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "location",
          "eventType",
          "status",
          "startDate",
          "endDate",
          "isAllDay",
          "isRecurring",
          "recurrenceRule",
          "parentEventId",
          "attendeeEmails",
          "mailAccountId",
          "clientId",
          "employeeId",
          "businessId",
          "createdById",
          "color",
          "reminder",
          "notes",
          "attachments",
          "createdAt",
          "updatedAt"
        ]
      },
      "MailAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "signatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isActive": {
            "type": "boolean"
          },
          "providerType": {
            "$ref": "#/components/schemas/MailAccountProviderType"
          },
          "autoReplyEnabled": {
            "type": "boolean"
          },
          "autoReplySubject": {
            "type": "string",
            "nullable": true
          },
          "autoReplyMessage": {
            "type": "string",
            "nullable": true
          },
          "forwardToEnabled": {
            "type": "boolean"
          },
          "forwardTo": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Domain"
              }
            ]
          },
          "domainId": {
            "type": "string",
            "nullable": true
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "externalConnection": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalMailConnection"
              }
            ]
          },
          "userAccess": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "UserMailAccount ObjectId reference (circular ref removed for docs)."
            }
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailMessage"
            }
          },
          "calendarEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarEvent"
            }
          },
          "calendarBookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarBooking"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "email",
          "displayName",
          "signatures",
          "isActive",
          "providerType",
          "autoReplyEnabled",
          "autoReplySubject",
          "autoReplyMessage",
          "forwardToEnabled",
          "forwardTo",
          "domainId",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "UserMailAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user": {
            "type": "string",
            "description": "User ObjectId reference (circular ref removed for docs)."
          },
          "userId": {
            "type": "string"
          },
          "mailAccount": {
            "$ref": "#/components/schemas/MailAccount"
          },
          "mailAccountId": {
            "type": "string"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "canRead": {
            "type": "boolean"
          },
          "canSend": {
            "type": "boolean"
          },
          "canManage": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "userId",
          "mailAccountId",
          "businessId",
          "canRead",
          "canSend",
          "canManage",
          "createdAt",
          "updatedAt"
        ]
      },
      "ApiKey": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "keyHash": {
            "type": "string"
          },
          "keyPrefix": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastUsedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "user": {
            "type": "string",
            "description": "User ObjectId reference (circular ref removed for docs)."
          },
          "userId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "keyHash",
          "keyPrefix",
          "scopes",
          "expiresAt",
          "lastUsedAt",
          "isActive",
          "businessId",
          "userId",
          "createdAt",
          "updatedAt"
        ]
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Roles"
            }
          },
          "isVerified": {
            "type": "boolean"
          },
          "activationCode": {
            "type": "string",
            "nullable": true
          },
          "activationCodeExpiry": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "resetPasswordToken": {
            "type": "string",
            "nullable": true
          },
          "resetPasswordTokenExpiry": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "business": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Business ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "businessId": {
            "type": "string",
            "nullable": true
          },
          "chats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AIChat"
            }
          },
          "mailAccountAccess": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserMailAccount"
            }
          },
          "calendarEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarEvent"
            }
          },
          "bookings": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Booking ObjectId reference (circular ref removed for docs)."
            }
          },
          "apiKeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiKey"
            }
          }
        },
        "required": [
          "id",
          "email",
          "phone",
          "firstName",
          "lastName",
          "password",
          "roles",
          "isVerified",
          "activationCode",
          "activationCodeExpiry",
          "resetPasswordToken",
          "resetPasswordTokenExpiry",
          "createdAt",
          "updatedAt",
          "employeeId",
          "businessId"
        ]
      },
      "Booking": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "description": "Booking title or summary."
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the booking.",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start date and time of the booking.",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "End date and time of the booking.",
            "format": "date-time"
          },
          "status": {
            "description": "Current booking status: Pending, Confirmed, Active, Completed, Cancelled.",
            "$ref": "#/components/schemas/BookingStatus"
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "client": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Client ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "employee": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Employee ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Location"
              }
            ]
          },
          "serviceId": {
            "type": "string",
            "nullable": true
          },
          "service": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Service"
              }
            ]
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "product": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Product"
              }
            ]
          },
          "quoteId": {
            "type": "string",
            "nullable": true
          },
          "quote": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Quote ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "invoiceId": {
            "type": "string",
            "nullable": true
          },
          "invoice": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Invoice ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "createdBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          },
          "createdById": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "startDate",
          "endDate",
          "status",
          "clientId",
          "employeeId",
          "locationId",
          "serviceId",
          "productId",
          "quoteId",
          "invoiceId",
          "notes",
          "color",
          "reference",
          "businessId",
          "createdById",
          "createdAt",
          "updatedAt"
        ]
      },
      "Product": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique product identifier (MongoDB ObjectId)."
          },
          "name": {
            "type": "string",
            "description": "Product name displayed to customers."
          },
          "description": {
            "type": "string",
            "description": "Detailed product description.",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "variants": {
            "description": "Array of product variants with different prices/options.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariantDto"
            }
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "unitPrice": {
            "type": "number",
            "description": "Average unit price (calculated from variants).",
            "format": "float"
          },
          "vatRate": {
            "type": "number",
            "description": "VAT rate as a decimal (e.g. 0.25 for 25%).",
            "format": "float"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string",
            "description": "ID of the business (tenant) this product belongs to."
          },
          "unitOfMeasure": {
            "description": "Unit of measurement (PCS, KG, L, M, etc.).",
            "nullable": true,
            "$ref": "#/components/schemas/UnitsOfMeasure"
          },
          "bookings": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Booking ObjectId reference (circular ref removed for docs)."
            }
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the product was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the product was last updated.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "pictures",
          "variants",
          "currency",
          "unitPrice",
          "vatRate",
          "businessId",
          "unitOfMeasure",
          "createdAt",
          "updatedAt"
        ]
      },
      "ExpenseStatus": {
        "type": "string",
        "enum": [
          "Draft",
          "Submitted",
          "Approved",
          "Rejected",
          "Reimbursed"
        ]
      },
      "Expense": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "customFooter": {
            "type": "string",
            "nullable": true
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currencies"
          },
          "vatRate": {
            "type": "number",
            "format": "float"
          },
          "vatAmount": {
            "type": "number",
            "format": "float"
          },
          "linesDiscountAmount": {
            "type": "number",
            "format": "float"
          },
          "linesTotal": {
            "type": "number",
            "format": "float"
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountDto"
            }
          },
          "subTotal": {
            "type": "number",
            "format": "float"
          },
          "grandTotal": {
            "type": "number",
            "format": "float"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "expenseDate": {
            "type": "string",
            "format": "date-time"
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          },
          "isVatDeductible": {
            "type": "boolean"
          },
          "paymentType": {
            "$ref": "#/components/schemas/PaymentType"
          },
          "status": {
            "$ref": "#/components/schemas/ExpenseStatus"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "supplierOib": {
            "type": "string",
            "nullable": true
          },
          "supplierName": {
            "type": "string",
            "nullable": true
          },
          "createdBy": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Employee ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "createdById": {
            "type": "string",
            "nullable": true
          },
          "client": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Client ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "invoice": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Invoice ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "invoiceId": {
            "type": "string",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          }
        },
        "required": [
          "id",
          "reference",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "documentMetadata",
          "customFooter",
          "pdfLink",
          "currency",
          "vatRate",
          "vatAmount",
          "linesDiscountAmount",
          "linesTotal",
          "discounts",
          "subTotal",
          "grandTotal",
          "createdAt",
          "updatedAt",
          "title",
          "description",
          "expenseDate",
          "transactionDate",
          "isBillable",
          "isVatDeductible",
          "paymentType",
          "status",
          "attachments",
          "supplierOib",
          "supplierName",
          "createdById",
          "clientId",
          "businessId",
          "invoiceId",
          "lineItems"
        ]
      },
      "ShipmentStatus": {
        "type": "string",
        "enum": [
          "Draft",
          "Confirmed",
          "Shipped",
          "Delivered",
          "Returned",
          "Canceled"
        ]
      },
      "Shipment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ShipmentStatus"
          },
          "issuedDate": {
            "type": "string",
            "format": "date-time"
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "client": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Client ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "employee": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Employee ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "reference",
          "title",
          "description",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "status",
          "issuedDate",
          "pdfLink",
          "documentMetadata",
          "clientId",
          "employeeId",
          "businessId",
          "lineItems",
          "createdAt",
          "updatedAt"
        ]
      },
      "AIAgent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "systemPrompt": {
            "type": "string"
          },
          "capabilities": {
            "type": "string"
          },
          "tools": {
            "type": "object"
          },
          "businessIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "businesses": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Business ObjectId reference (circular ref removed for docs)."
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "systemPrompt",
          "capabilities",
          "tools",
          "businessIds",
          "createdAt",
          "updatedAt"
        ]
      },
      "ReferenceSettingsDto": {
        "type": "object",
        "properties": {
          "prefix": {
            "type": "string",
            "nullable": true
          },
          "suffix": {
            "type": "string",
            "nullable": true
          },
          "currentCounter": {
            "type": "integer",
            "format": "int32"
          },
          "counterLength": {
            "type": "integer",
            "format": "int32"
          },
          "useRandomNumber": {
            "type": "boolean"
          }
        },
        "required": [
          "prefix",
          "suffix",
          "currentCounter",
          "counterLength",
          "useRandomNumber"
        ]
      },
      "Settings": {
        "type": "object",
        "properties": {
          "businessId": {
            "type": "string"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "infoQuoteMetadataTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
            }
          },
          "quoteMetadataTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
            }
          },
          "invoiceMetadataTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
            }
          },
          "shipmentMetadataTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
            }
          },
          "quoteReferenceSettings": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReferenceSettingsDto"
              }
            ]
          },
          "invoiceReferenceSettings": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReferenceSettingsDto"
              }
            ]
          },
          "infoQuoteReferenceSettings": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ReferenceSettingsDto"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "businessId",
          "infoQuoteMetadataTemplates",
          "quoteMetadataTemplates",
          "invoiceMetadataTemplates",
          "shipmentMetadataTemplates",
          "quoteReferenceSettings",
          "invoiceReferenceSettings",
          "infoQuoteReferenceSettings",
          "createdAt",
          "updatedAt"
        ]
      },
      "SubscriptionEventLog": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "fromPlanId": {
            "type": "string",
            "nullable": true
          },
          "toPlanId": {
            "type": "string",
            "nullable": true
          },
          "stripeEventId": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "businessId",
          "eventType",
          "fromPlanId",
          "toPlanId",
          "stripeEventId",
          "message",
          "details",
          "createdAt"
        ]
      },
      "WebhookDeliveryStatus": {
        "type": "string",
        "enum": [
          "PENDING",
          "SUCCESS",
          "FAILED",
          "RETRYING"
        ]
      },
      "WebhookDelivery": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "payload": {
            "type": "object"
          },
          "responseStatus": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "responseBody": {
            "type": "string",
            "nullable": true
          },
          "attempt": {
            "type": "integer",
            "format": "int32"
          },
          "nextRetryAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/WebhookDeliveryStatus"
          },
          "webhook": {
            "type": "string",
            "description": "Webhook ObjectId reference (circular ref removed for docs)."
          },
          "webhookId": {
            "type": "string"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "event",
          "payload",
          "responseStatus",
          "responseBody",
          "attempt",
          "nextRetryAt",
          "status",
          "webhookId",
          "businessId",
          "createdAt"
        ]
      },
      "Webhook": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string"
          },
          "secretHash": {
            "type": "string"
          },
          "secretPrefix": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isActive": {
            "type": "boolean"
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "deliveries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookDelivery"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "description",
          "url",
          "secretHash",
          "secretPrefix",
          "events",
          "isActive",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "LandingPageStatus": {
        "type": "string",
        "enum": [
          "Generating",
          "GeneratingFailed",
          "Draft",
          "Building",
          "Published",
          "BuildFailed"
        ]
      },
      "LandingPage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique landing page identifier (MongoDB ObjectId)."
          },
          "name": {
            "type": "string",
            "description": "Display name of the landing page."
          },
          "slug": {
            "type": "string",
            "description": "URL-safe slug, unique per business. Used in published URL ({slug}.pages.incrm.app)."
          },
          "status": {
            "description": "Current build/publish status of the landing page.",
            "$ref": "#/components/schemas/LandingPageStatus"
          },
          "pageCode": {
            "type": "object",
            "description": "JSON map of generated file contents (e.g. { \"index.html\": \"...\", \"styles.css\": \"...\" }).",
            "nullable": true
          },
          "languages": {
            "description": "Language codes supported by this landing page.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "lastBuildAt": {
            "type": "string",
            "description": "Timestamp of the last successful build.",
            "format": "date-time",
            "nullable": true
          },
          "buildVersion": {
            "type": "integer",
            "description": "Incremental build version counter.",
            "format": "int32"
          },
          "publishedUrl": {
            "type": "string",
            "description": "Public URL where the page is accessible after publishing.",
            "nullable": true
          },
          "previewUrl": {
            "type": "string",
            "description": "Preview URL for draft/unpublished pages.",
            "nullable": true
          },
          "customDomain": {
            "type": "string",
            "description": "Custom domain connected to this landing page.",
            "nullable": true
          },
          "domainStatus": {
            "type": "string",
            "description": "Verification status of the custom domain (e.g. pending, verified, failed).",
            "nullable": true
          },
          "domainVerificationToken": {
            "type": "string",
            "description": "Token used for DNS-based domain ownership verification.",
            "nullable": true
          },
          "seoTitle": {
            "type": "string",
            "description": "SEO title tag for the landing page.",
            "nullable": true
          },
          "seoDescription": {
            "type": "string",
            "description": "SEO meta description for the landing page.",
            "nullable": true
          },
          "ogImageUrl": {
            "type": "string",
            "description": "Open Graph image URL for social media previews.",
            "nullable": true
          },
          "aiChatId": {
            "type": "string",
            "description": "Reference to the AI chat session that generated this page.",
            "nullable": true
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string",
            "description": "ID of the business (tenant) this landing page belongs to."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "status",
          "pageCode",
          "languages",
          "lastBuildAt",
          "buildVersion",
          "publishedUrl",
          "previewUrl",
          "customDomain",
          "domainStatus",
          "domainVerificationToken",
          "seoTitle",
          "seoDescription",
          "ogImageUrl",
          "aiChatId",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "Business": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "businessSlug": {
            "type": "string"
          },
          "companyInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "availableFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "quotas": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessQuotasDto"
              }
            ]
          },
          "stripeCustomerId": {
            "type": "string",
            "nullable": true
          },
          "stripeSubscriptionId": {
            "type": "string",
            "nullable": true
          },
          "subscribedPlanId": {
            "type": "string",
            "nullable": true
          },
          "subscriptionStatus": {
            "type": "string",
            "nullable": true
          },
          "subscriptionCurrentPeriodEnd": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "businessCategory": {
            "type": "string",
            "description": "BusinessCategory ObjectId reference (circular ref removed for docs)."
          },
          "businessCategoryId": {
            "type": "string"
          },
          "clientCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientCategory"
            }
          },
          "employeeCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeCategory"
            }
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Product"
            }
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Service"
            }
          },
          "clients": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Client"
            }
          },
          "employees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Employee"
            }
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "quotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quote"
            }
          },
          "expenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Expense"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipment"
            }
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            }
          },
          "chats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AIChat"
            }
          },
          "agents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AIAgent"
            }
          },
          "agentIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "domains": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Domain"
            }
          },
          "settings": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Settings"
              }
            ]
          },
          "subscriptionEventLogs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionEventLog"
            }
          },
          "mailAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MailAccount"
            }
          },
          "userMailAccounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserMailAccount"
            }
          },
          "emailMessages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailMessage"
            }
          },
          "externalMailConnections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalMailConnection"
            }
          },
          "calendarEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarEvent"
            }
          },
          "calendarBookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarBooking"
            }
          },
          "bookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Booking"
            }
          },
          "webhooks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Webhook"
            }
          },
          "webhookDeliveries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookDelivery"
            }
          },
          "apiKeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiKey"
            }
          },
          "landingPages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LandingPage"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "email",
          "businessSlug",
          "companyInfo",
          "availableFeatures",
          "quotas",
          "stripeCustomerId",
          "stripeSubscriptionId",
          "subscribedPlanId",
          "subscriptionStatus",
          "subscriptionCurrentPeriodEnd",
          "businessCategoryId",
          "agentIds",
          "createdAt",
          "updatedAt"
        ]
      },
      "ClientCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colour": {
            "type": "string"
          },
          "clients": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Client"
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "colour",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "Client": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique client identifier (MongoDB ObjectId)."
          },
          "email": {
            "type": "string",
            "description": "Primary email address of the client."
          },
          "companyInfo": {
            "description": "Embedded company details (name, OIB/tax ID, address) if the client is a business entity.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "clientCategory": {
            "type": "string",
            "description": "ClientCategory ObjectId reference (circular ref removed for docs)."
          },
          "clientCategoryId": {
            "type": "string",
            "description": "ID of the client category. If omitted, the first available category for the business is used automatically."
          },
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          },
          "quotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quote"
            }
          },
          "expenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Expense"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipment"
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string",
            "description": "ID of the business (tenant) this client belongs to. Automatically set from authentication context."
          },
          "calendarEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarEvent"
            }
          },
          "calendarBookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarBooking"
            }
          },
          "bookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Booking"
            }
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the client was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the client was last updated.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "email",
          "companyInfo",
          "clientCategoryId",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "Invoice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique invoice identifier (MongoDB ObjectId)."
          },
          "reference": {
            "type": "string",
            "description": "Invoice reference number (e.g. INV-2025-001)."
          },
          "einvoiceId": {
            "type": "string",
            "nullable": true
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "customFooter": {
            "type": "string",
            "nullable": true
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "vatRate": {
            "type": "number",
            "description": "VAT rate as a decimal (e.g. 0.25 for 25%).",
            "format": "float"
          },
          "vatAmount": {
            "type": "number",
            "description": "Total VAT amount calculated on the invoice.",
            "format": "float"
          },
          "linesDiscountAmount": {
            "type": "number",
            "format": "float"
          },
          "linesTotal": {
            "type": "number",
            "format": "float"
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountDto"
            }
          },
          "subTotal": {
            "type": "number",
            "description": "Subtotal before VAT.",
            "format": "float"
          },
          "grandTotal": {
            "type": "number",
            "description": "Final total amount including VAT and discounts.",
            "format": "float"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the invoice was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the invoice was last updated.",
            "format": "date-time"
          },
          "direction": {
            "description": "OUTGOING (sent to clients) or INCOMING (received from suppliers).",
            "$ref": "#/components/schemas/InvoiceDirection"
          },
          "source": {
            "$ref": "#/components/schemas/InvoiceSource"
          },
          "isElectronic": {
            "type": "boolean"
          },
          "ePoslovanjeId": {
            "type": "string",
            "nullable": true
          },
          "externalIds": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/InvoiceExternalIdsDto"
              }
            ]
          },
          "eTransportStatus": {
            "type": "string",
            "nullable": true
          },
          "eBusinessStatus": {
            "type": "string",
            "nullable": true
          },
          "eStatusUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "eLastErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "xmlContent": {
            "type": "string",
            "nullable": true
          },
          "originalPdfS3Key": {
            "type": "string",
            "nullable": true
          },
          "fiscalizationStatus": {
            "type": "string",
            "nullable": true
          },
          "fiscalizationJir": {
            "type": "string",
            "nullable": true
          },
          "fiscalizationUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "statusText": {
            "type": "string",
            "nullable": true
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceStatusHistoryItemDto"
            }
          },
          "remoteModifiedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "issueYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reportingHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EReportingEventDto"
            }
          },
          "reportingLastSentAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "supplierOib": {
            "type": "string",
            "nullable": true
          },
          "customerOib": {
            "type": "string",
            "nullable": true
          },
          "supplierName": {
            "type": "string",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "issueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfEstablishment": {
            "type": "string",
            "description": "Date when the invoice was established/created.",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "description": "Payment due date.",
            "format": "date-time"
          },
          "invoiceIssueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paymentDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "serviceDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "serviceStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "serviceEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "sentDates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          },
          "status": {
            "description": "Current invoice status: Draft, Sent, Paid, Overdue, Cancelled.",
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "paymentStatus": {
            "description": "Payment status tracking.",
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "paymentType": {
            "nullable": true,
            "$ref": "#/components/schemas/PaymentType"
          },
          "barcodeImage": {
            "type": "string"
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time"
          },
          "invoiceTypeCode": {
            "nullable": true,
            "$ref": "#/components/schemas/InvoiceTypeCode"
          },
          "invoiceBusinessProcess": {
            "nullable": true,
            "$ref": "#/components/schemas/BusinessProcess"
          },
          "reversedInvoiceId": {
            "type": "string",
            "nullable": true
          },
          "createdBy": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Employee"
              }
            ]
          },
          "createdById": {
            "type": "string",
            "nullable": true
          },
          "client": {
            "nullable": true,
            "allOf": [
              {
                "type": "string",
                "description": "Client ObjectId reference (circular ref removed for docs)."
              }
            ]
          },
          "clientId": {
            "type": "string",
            "description": "ID of the client this invoice is addressed to.",
            "nullable": true
          },
          "convertedFromQuoteIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "convertedFromQuotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quote"
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string",
            "description": "ID of the business (tenant) this invoice belongs to."
          },
          "expenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Expense"
            }
          },
          "bookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Booking"
            }
          },
          "lineItems": {
            "description": "Array of line items with description, quantity, unit price, and discount.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          },
          "additionalPages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalPageDto"
            }
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "supplierIban": {
            "type": "string",
            "nullable": true
          },
          "paymentModel": {
            "type": "string",
            "nullable": true
          },
          "paymentReference": {
            "type": "string",
            "nullable": true
          },
          "paymentDescription": {
            "type": "string",
            "nullable": true
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "reference",
          "einvoiceId",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "documentMetadata",
          "customFooter",
          "pdfLink",
          "currency",
          "vatRate",
          "vatAmount",
          "linesDiscountAmount",
          "linesTotal",
          "discounts",
          "subTotal",
          "grandTotal",
          "createdAt",
          "updatedAt",
          "direction",
          "source",
          "isElectronic",
          "ePoslovanjeId",
          "externalIds",
          "eTransportStatus",
          "eBusinessStatus",
          "eStatusUpdatedAt",
          "eLastErrorMessage",
          "xmlContent",
          "originalPdfS3Key",
          "fiscalizationStatus",
          "fiscalizationJir",
          "fiscalizationUpdatedAt",
          "statusText",
          "statusHistory",
          "remoteModifiedAt",
          "issueYear",
          "reportingHistory",
          "reportingLastSentAt",
          "supplierOib",
          "customerOib",
          "supplierName",
          "customerName",
          "number",
          "issueDate",
          "dateOfEstablishment",
          "dueDate",
          "invoiceIssueDate",
          "paymentDate",
          "serviceDate",
          "serviceStartDate",
          "serviceEndDate",
          "sentDates",
          "status",
          "paymentStatus",
          "paymentType",
          "barcodeImage",
          "transactionDate",
          "invoiceTypeCode",
          "invoiceBusinessProcess",
          "reversedInvoiceId",
          "createdById",
          "clientId",
          "convertedFromQuoteIds",
          "businessId",
          "lineItems",
          "additionalPages",
          "pictures",
          "supplierIban",
          "paymentModel",
          "paymentReference",
          "paymentDescription",
          "attachments"
        ]
      },
      "Employee": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "businessTitle": {
            "type": "string",
            "nullable": true
          },
          "profileImage": {
            "type": "string",
            "nullable": true
          },
          "personalAddress": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDto"
              }
            ]
          },
          "userId": {
            "type": "string",
            "nullable": true
          },
          "employeeCategory": {
            "$ref": "#/components/schemas/EmployeeCategory"
          },
          "employeeCategoryId": {
            "type": "string"
          },
          "createdInvoices": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Invoice ObjectId reference (circular ref removed for docs)."
            }
          },
          "createdQuotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Quote"
            }
          },
          "createdExpenses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Expense"
            }
          },
          "createdShipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Shipment"
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "calendarEvents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarEvent"
            }
          },
          "calendarBookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CalendarBooking"
            }
          },
          "bookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Booking"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "firstName",
          "lastName",
          "email",
          "phone",
          "businessTitle",
          "profileImage",
          "personalAddress",
          "userId",
          "employeeCategoryId",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "EmployeeCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "colour": {
            "type": "string"
          },
          "employees": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Employee ObjectId reference (circular ref removed for docs)."
            }
          },
          "business": {
            "type": "string",
            "description": "Business ObjectId reference (circular ref removed for docs)."
          },
          "businessId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "colour",
          "businessId",
          "createdAt",
          "updatedAt"
        ]
      },
      "EposlovanjeAccountStatusDto": {
        "type": "object",
        "properties": {}
      },
      "PDFFileEntity": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "fileName": {
            "type": "string"
          },
          "fileTemplateName": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "urlValidUntil": {
            "type": "string"
          },
          "documentId": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "fileName",
          "fileTemplateName",
          "generatedAt",
          "urlValidUntil",
          "documentId"
        ]
      },
      "InvoiceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique invoice identifier (MongoDB ObjectId)."
          },
          "reference": {
            "type": "string",
            "description": "Invoice reference number (e.g. INV-2025-001)."
          },
          "einvoiceId": {
            "type": "string",
            "nullable": true
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "customFooter": {
            "type": "string",
            "nullable": true
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "vatRate": {
            "type": "number",
            "description": "VAT rate as a decimal (e.g. 0.25 for 25%).",
            "format": "float"
          },
          "vatAmount": {
            "type": "number",
            "description": "Total VAT amount calculated on the invoice.",
            "format": "float"
          },
          "linesDiscountAmount": {
            "type": "number",
            "format": "float"
          },
          "linesTotal": {
            "type": "number",
            "format": "float"
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountDto"
            }
          },
          "subTotal": {
            "type": "number",
            "description": "Subtotal before VAT.",
            "format": "float"
          },
          "grandTotal": {
            "type": "number",
            "description": "Final total amount including VAT and discounts.",
            "format": "float"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the invoice was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the invoice was last updated.",
            "format": "date-time"
          },
          "direction": {
            "description": "OUTGOING (sent to clients) or INCOMING (received from suppliers).",
            "$ref": "#/components/schemas/InvoiceDirection"
          },
          "source": {
            "$ref": "#/components/schemas/InvoiceSource"
          },
          "isElectronic": {
            "type": "boolean"
          },
          "ePoslovanjeId": {
            "type": "string",
            "nullable": true
          },
          "externalIds": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/InvoiceExternalIdsDto"
              }
            ]
          },
          "eTransportStatus": {
            "type": "string",
            "nullable": true
          },
          "eBusinessStatus": {
            "type": "string",
            "nullable": true
          },
          "eStatusUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "eLastErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "xmlContent": {
            "type": "string",
            "nullable": true
          },
          "originalPdfS3Key": {
            "type": "string",
            "nullable": true
          },
          "fiscalizationStatus": {
            "type": "string",
            "nullable": true
          },
          "fiscalizationJir": {
            "type": "string",
            "nullable": true
          },
          "fiscalizationUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "statusText": {
            "type": "string",
            "nullable": true
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceStatusHistoryItemDto"
            }
          },
          "remoteModifiedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "issueYear": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reportingHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EReportingEventDto"
            }
          },
          "reportingLastSentAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "supplierOib": {
            "type": "string",
            "nullable": true
          },
          "customerOib": {
            "type": "string",
            "nullable": true
          },
          "supplierName": {
            "type": "string",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "issueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateOfEstablishment": {
            "type": "string",
            "description": "Date when the invoice was established/created.",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "description": "Payment due date.",
            "format": "date-time"
          },
          "invoiceIssueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paymentDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "serviceDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "serviceStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "serviceEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "sentDates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          },
          "status": {
            "description": "Current invoice status: Draft, Sent, Paid, Overdue, Cancelled.",
            "$ref": "#/components/schemas/InvoiceStatus"
          },
          "paymentStatus": {
            "description": "Payment status tracking.",
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "paymentType": {
            "nullable": true,
            "$ref": "#/components/schemas/PaymentType"
          },
          "barcodeImage": {
            "type": "string"
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time"
          },
          "invoiceTypeCode": {
            "nullable": true,
            "$ref": "#/components/schemas/InvoiceTypeCode"
          },
          "invoiceBusinessProcess": {
            "nullable": true,
            "$ref": "#/components/schemas/BusinessProcess"
          },
          "reversedInvoiceId": {
            "type": "string",
            "nullable": true
          },
          "lineItems": {
            "description": "Array of line items with description, quantity, unit price, and discount.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          },
          "additionalPages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalPageDto"
            }
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "supplierIban": {
            "type": "string",
            "nullable": true
          },
          "paymentModel": {
            "type": "string",
            "nullable": true
          },
          "paymentReference": {
            "type": "string",
            "nullable": true
          },
          "paymentDescription": {
            "type": "string",
            "nullable": true
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "reference",
          "einvoiceId",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "documentMetadata",
          "customFooter",
          "pdfLink",
          "currency",
          "vatRate",
          "vatAmount",
          "linesDiscountAmount",
          "linesTotal",
          "discounts",
          "subTotal",
          "grandTotal",
          "createdAt",
          "updatedAt",
          "direction",
          "source",
          "isElectronic",
          "ePoslovanjeId",
          "externalIds",
          "eTransportStatus",
          "eBusinessStatus",
          "eStatusUpdatedAt",
          "eLastErrorMessage",
          "xmlContent",
          "originalPdfS3Key",
          "fiscalizationStatus",
          "fiscalizationJir",
          "fiscalizationUpdatedAt",
          "statusText",
          "statusHistory",
          "remoteModifiedAt",
          "issueYear",
          "reportingHistory",
          "reportingLastSentAt",
          "supplierOib",
          "customerOib",
          "supplierName",
          "customerName",
          "number",
          "issueDate",
          "dateOfEstablishment",
          "dueDate",
          "invoiceIssueDate",
          "paymentDate",
          "serviceDate",
          "serviceStartDate",
          "serviceEndDate",
          "sentDates",
          "status",
          "paymentStatus",
          "paymentType",
          "barcodeImage",
          "transactionDate",
          "invoiceTypeCode",
          "invoiceBusinessProcess",
          "reversedInvoiceId",
          "lineItems",
          "additionalPages",
          "pictures",
          "supplierIban",
          "paymentModel",
          "paymentReference",
          "paymentDescription",
          "attachments"
        ]
      },
      "GenerateInvoicePdfDto": {
        "type": "object",
        "properties": {
          "invoice": {
            "$ref": "#/components/schemas/InvoiceDto"
          }
        },
        "required": [
          "invoice"
        ]
      },
      "QuoteDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique quote identifier (MongoDB ObjectId)."
          },
          "reference": {
            "type": "string",
            "description": "Quote reference number (e.g. QT-2025-001)."
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "paymentType": {
            "nullable": true,
            "$ref": "#/components/schemas/PaymentType"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "customFooter": {
            "type": "string",
            "nullable": true
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "vatRate": {
            "type": "number",
            "format": "float"
          },
          "vatAmount": {
            "type": "number",
            "format": "float"
          },
          "linesDiscountAmount": {
            "type": "number",
            "format": "float"
          },
          "linesTotal": {
            "type": "number",
            "format": "float"
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountDto"
            }
          },
          "subTotal": {
            "type": "number",
            "format": "float"
          },
          "grandTotal": {
            "type": "number",
            "description": "Final total amount including VAT and discounts.",
            "format": "float"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the quote was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the quote was last updated.",
            "format": "date-time"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "dateRequested": {
            "type": "string",
            "format": "date-time"
          },
          "dateDesired": {
            "type": "string",
            "format": "date-time"
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiryDate": {
            "type": "string",
            "description": "Expiration date after which the quote can no longer be accepted.",
            "format": "date-time",
            "nullable": true
          },
          "sentDates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          },
          "status": {
            "description": "Current quote status: Draft, Sent, Accepted, Declined, Expired, Converted.",
            "$ref": "#/components/schemas/QuoteStatus"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "documentTemplate": {
            "$ref": "#/components/schemas/DocumentTemplate"
          },
          "terms": {
            "type": "string",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          },
          "additionalPages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalPageDto"
            }
          }
        },
        "required": [
          "id",
          "reference",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "documentMetadata",
          "paymentType",
          "type",
          "customFooter",
          "pdfLink",
          "currency",
          "vatRate",
          "vatAmount",
          "linesDiscountAmount",
          "linesTotal",
          "discounts",
          "subTotal",
          "grandTotal",
          "createdAt",
          "updatedAt",
          "title",
          "description",
          "dateRequested",
          "dateDesired",
          "startDate",
          "expiryDate",
          "sentDates",
          "status",
          "attachments",
          "documentTemplate",
          "terms",
          "lineItems",
          "additionalPages"
        ]
      },
      "GenerateQuotePdfDto": {
        "type": "object",
        "properties": {
          "quote": {
            "$ref": "#/components/schemas/QuoteDto"
          }
        },
        "required": [
          "quote"
        ]
      },
      "ShipmentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ShipmentStatus"
          },
          "issuedDate": {
            "type": "string",
            "format": "date-time"
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "reference",
          "title",
          "description",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "status",
          "issuedDate",
          "pdfLink",
          "documentMetadata",
          "lineItems",
          "createdAt",
          "updatedAt"
        ]
      },
      "GenerateShipmentPdfDto": {
        "type": "object",
        "properties": {
          "shipment": {
            "$ref": "#/components/schemas/ShipmentDto"
          }
        },
        "required": [
          "shipment"
        ]
      },
      "GenerateInfoQuotePdfDto": {
        "type": "object",
        "properties": {
          "infoQuote": {
            "$ref": "#/components/schemas/QuoteDto"
          }
        },
        "required": [
          "infoQuote"
        ]
      },
      "InvoiceIssueBodyDto": {
        "type": "object",
        "properties": {
          "sendEInvoice": {
            "type": "boolean",
            "description": "If true, send invoice as e-invoice (ERAČUN) after issuing. If e-invoice fails, issue is rolled back.",
            "default": true
          }
        }
      },
      "InvoiceManualIncomingDto": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "string",
            "description": "Internal reference number (e.g. INC-00123)"
          },
          "number": {
            "type": "string",
            "description": "Supplier invoice number (from their document)"
          },
          "issueDate": {
            "type": "string",
            "description": "Issue date",
            "example": "2025-01-15"
          },
          "dueDate": {
            "type": "string",
            "description": "Due date"
          },
          "supplierOib": {
            "type": "string",
            "description": "Supplier tax ID (OIB)",
            "example": "12345678901"
          },
          "supplierName": {
            "type": "string",
            "description": "Supplier name"
          },
          "customerOib": {
            "type": "string",
            "description": "Customer tax ID (our OIB)"
          },
          "customerName": {
            "type": "string",
            "description": "Customer name (our company)"
          },
          "currency": {
            "type": "string",
            "description": "Currency",
            "example": "EUR"
          },
          "total": {
            "type": "number",
            "description": "Total invoice amount (grandTotal)",
            "example": 100.25
          },
          "supplierIban": {
            "type": "string",
            "description": "Supplier IBAN (for payment)",
            "example": "HR1234567890123456789"
          },
          "paymentModel": {
            "type": "string",
            "description": "Payment model (e.g. HR00, HR01)",
            "example": "HR00"
          },
          "paymentReference": {
            "type": "string",
            "description": "Payment reference or Payment ID",
            "example": "1234567"
          },
          "paymentDescription": {
            "type": "string",
            "description": "Payment description / note"
          },
          "lineItems": {
            "description": "Line items (invoice breakdown). Optional - can be parsed from attachments later.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "vatRate": {
            "type": "number",
            "description": "VAT rate (percentage)",
            "example": 25
          },
          "vatAmount": {
            "type": "number",
            "description": "VAT amount",
            "example": 25
          },
          "linesTotal": {
            "type": "number",
            "description": "Lines total (before VAT and discounts)"
          },
          "linesDiscountAmount": {
            "type": "number",
            "description": "Lines discount amount"
          },
          "subTotal": {
            "type": "number",
            "description": "Sub-total (after discounts, before VAT)"
          },
          "discounts": {
            "description": "Discounts applied to invoice. Optional.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "attachmentIds": {
            "description": "Attachment IDs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "clientId": {
            "type": "string",
            "description": "Client ID (existing supplier/client)"
          },
          "clientInfo": {
            "type": "object",
            "description": "Client company info snapshot (CompanyInfo type). Auto-populated if clientId provided."
          },
          "notes": {
            "type": "string",
            "description": "Internal notes/remarks about this invoice (for accounting purposes)",
            "maxLength": 2000
          }
        },
        "required": [
          "number",
          "issueDate",
          "supplierOib",
          "supplierName",
          "total"
        ]
      },
      "ExpenseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "clientInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "businessInfo": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CompanyInfoDto"
              }
            ]
          },
          "issuedBy": {
            "type": "string",
            "nullable": true
          },
          "documentMetadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/DocumentMetadataTemplateDto"
              }
            ]
          },
          "customFooter": {
            "type": "string",
            "nullable": true
          },
          "pdfLink": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currencies"
          },
          "vatRate": {
            "type": "number",
            "format": "float"
          },
          "vatAmount": {
            "type": "number",
            "format": "float"
          },
          "linesDiscountAmount": {
            "type": "number",
            "format": "float"
          },
          "linesTotal": {
            "type": "number",
            "format": "float"
          },
          "discounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountDto"
            }
          },
          "subTotal": {
            "type": "number",
            "format": "float"
          },
          "grandTotal": {
            "type": "number",
            "format": "float"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "expenseDate": {
            "type": "string",
            "format": "date-time"
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isBillable": {
            "type": "boolean"
          },
          "isVatDeductible": {
            "type": "boolean"
          },
          "paymentType": {
            "$ref": "#/components/schemas/PaymentType"
          },
          "status": {
            "$ref": "#/components/schemas/ExpenseStatus"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "supplierOib": {
            "type": "string",
            "nullable": true
          },
          "supplierName": {
            "type": "string",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItemDto"
            }
          }
        },
        "required": [
          "id",
          "reference",
          "clientInfo",
          "businessInfo",
          "issuedBy",
          "documentMetadata",
          "customFooter",
          "pdfLink",
          "currency",
          "vatRate",
          "vatAmount",
          "linesDiscountAmount",
          "linesTotal",
          "discounts",
          "subTotal",
          "grandTotal",
          "createdAt",
          "updatedAt",
          "title",
          "description",
          "expenseDate",
          "transactionDate",
          "isBillable",
          "isVatDeductible",
          "paymentType",
          "status",
          "attachments",
          "supplierOib",
          "supplierName",
          "lineItems"
        ]
      },
      "ProductDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique product identifier (MongoDB ObjectId)."
          },
          "name": {
            "type": "string",
            "description": "Product name displayed to customers."
          },
          "description": {
            "type": "string",
            "description": "Detailed product description.",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "variants": {
            "description": "Array of product variants with different prices/options.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVariantDto"
            }
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "unitPrice": {
            "type": "number",
            "description": "Average unit price (calculated from variants).",
            "format": "float"
          },
          "vatRate": {
            "type": "number",
            "description": "VAT rate as a decimal (e.g. 0.25 for 25%).",
            "format": "float"
          },
          "unitOfMeasure": {
            "description": "Unit of measurement (PCS, KG, L, M, etc.).",
            "nullable": true,
            "$ref": "#/components/schemas/UnitsOfMeasure"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the product was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the product was last updated.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "pictures",
          "variants",
          "currency",
          "unitPrice",
          "vatRate",
          "unitOfMeasure",
          "createdAt",
          "updatedAt"
        ]
      },
      "ServiceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique service identifier (MongoDB ObjectId)."
          },
          "name": {
            "type": "string",
            "description": "Service name displayed to customers."
          },
          "description": {
            "type": "string",
            "description": "Detailed service description.",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "variants": {
            "description": "Array of service variants with different pricing tiers.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceVariantDto"
            }
          },
          "currency": {
            "description": "ISO 4217 currency code (EUR, USD, HRK, etc.).",
            "$ref": "#/components/schemas/Currencies"
          },
          "unitPrice": {
            "type": "number",
            "description": "Service price per unit.",
            "format": "float"
          },
          "vatRate": {
            "type": "number",
            "description": "VAT rate as a decimal (e.g. 0.25 for 25%).",
            "format": "float"
          },
          "unitOfMeasure": {
            "description": "Unit of measurement (HOUR, DAY, PCS, etc.).",
            "nullable": true,
            "$ref": "#/components/schemas/UnitsOfMeasure"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when the service was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when the service was last updated.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "pictures",
          "variants",
          "currency",
          "unitPrice",
          "vatRate",
          "unitOfMeasure",
          "createdAt",
          "updatedAt"
        ]
      },
      "LocationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "latitude": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "pictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "additionalPictures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "address": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressDto"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "latitude",
          "longitude",
          "name",
          "description",
          "pictures",
          "additionalPictures",
          "address",
          "createdAt",
          "updatedAt"
        ]
      },
      "RespondQuoteDto": {
        "type": "object",
        "properties": {
          "response": {
            "type": "string"
          }
        },
        "required": [
          "response"
        ]
      },
      "BrowserContextDto": {
        "type": "object",
        "properties": {
          "userAgent": {
            "type": "string",
            "description": "Browser user agent string"
          },
          "currentUrl": {
            "type": "string",
            "description": "Current page URL in the frontend"
          },
          "consoleErrors": {
            "description": "Recent console errors from the browser",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "viewportSize": {
            "type": "string",
            "description": "Browser viewport size, e.g. \"1920x1080\""
          }
        }
      },
      "EntityContextDto": {
        "type": "object",
        "properties": {
          "entityType": {
            "type": "string",
            "description": "Entity type (resource key), e.g. \"clients\", \"invoices\""
          },
          "entityId": {
            "type": "string",
            "description": "Entity ID (MongoDB ObjectId string)"
          }
        },
        "required": [
          "entityType",
          "entityId"
        ]
      },
      "ChatRequestDto": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "content": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "browserContext": {
            "description": "Browser context metadata for bug reports",
            "allOf": [
              {
                "$ref": "#/components/schemas/BrowserContextDto"
              }
            ]
          },
          "entityContext": {
            "description": "Entity context references attached via @mentions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityContextDto"
            }
          },
          "model": {
            "type": "string",
            "description": "LLM model identifier (e.g. \"claude-sonnet-4-20250514\", \"gpt-4o\"). Defaults to claude-sonnet-4-20250514."
          }
        },
        "required": [
          "messages"
        ]
      },
      "AIChatDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageDto"
            }
          },
          "tagline": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "messages",
          "tagline",
          "createdAt",
          "updatedAt"
        ]
      },
      "AIAgentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "systemPrompt": {
            "type": "string"
          },
          "capabilities": {
            "type": "string"
          },
          "tools": {
            "type": "object"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "systemPrompt",
          "capabilities",
          "tools",
          "createdAt",
          "updatedAt"
        ]
      },
      "ReconnectDto": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "description": "New password for the external mail connection"
          }
        },
        "required": [
          "password"
        ]
      },
      "ExternalConnectionDto": {
        "type": "object",
        "properties": {
          "imapHost": {
            "type": "string"
          },
          "imapPort": {
            "type": "number"
          },
          "imapSecurity": {
            "type": "string"
          },
          "smtpHost": {
            "type": "string"
          },
          "smtpPort": {
            "type": "number"
          },
          "smtpSecurity": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "initialSyncDays": {
            "type": "integer",
            "description": "Days of history to import on initial sync (0 = all)"
          }
        },
        "required": [
          "imapHost",
          "imapPort",
          "imapSecurity",
          "smtpHost",
          "smtpPort",
          "smtpSecurity",
          "username",
          "password"
        ]
      },
      "CreateMailAccountRequestDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "signatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "providerType": {
            "default": "SES",
            "$ref": "#/components/schemas/MailAccountProviderType"
          },
          "autoReplyEnabled": {
            "type": "boolean",
            "default": false
          },
          "autoReplySubject": {
            "type": "string",
            "nullable": true
          },
          "autoReplyMessage": {
            "type": "string",
            "nullable": true
          },
          "forwardToEnabled": {
            "type": "boolean",
            "default": false
          },
          "forwardTo": {
            "type": "string",
            "nullable": true
          },
          "externalConnection": {
            "$ref": "#/components/schemas/ExternalConnectionDto"
          }
        },
        "required": [
          "email",
          "signatures"
        ]
      },
      "UpdateExternalConnectionRequestDto": {
        "type": "object",
        "properties": {
          "imapHost": {
            "type": "string"
          },
          "imapPort": {
            "type": "number"
          },
          "imapSecurity": {
            "type": "string"
          },
          "smtpHost": {
            "type": "string"
          },
          "smtpPort": {
            "type": "number"
          },
          "smtpSecurity": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string",
            "description": "New password. Only sent when updating credentials."
          }
        }
      },
      "TestExternalConnectionDto": {
        "type": "object",
        "properties": {
          "imapHost": {
            "type": "string",
            "description": "IMAP server hostname"
          },
          "imapPort": {
            "type": "number",
            "description": "IMAP server port"
          },
          "imapSecurity": {
            "type": "string",
            "description": "IMAP security mode (SSL_TLS, STARTTLS, NONE)"
          },
          "smtpHost": {
            "type": "string",
            "description": "SMTP server hostname"
          },
          "smtpPort": {
            "type": "number",
            "description": "SMTP server port"
          },
          "smtpSecurity": {
            "type": "string",
            "description": "SMTP security mode (SSL_TLS, STARTTLS, NONE)"
          },
          "username": {
            "type": "string",
            "description": "Account username (usually the email address)"
          },
          "password": {
            "type": "string",
            "description": "Account password or app-specific password"
          }
        },
        "required": [
          "imapHost",
          "imapPort",
          "imapSecurity",
          "smtpHost",
          "smtpPort",
          "smtpSecurity",
          "username",
          "password"
        ]
      },
      "VerificationStatusDto": {
        "type": "object",
        "properties": {
          "verified": {
            "type": "boolean"
          },
          "dkimVerified": {
            "type": "boolean"
          }
        },
        "required": [
          "verified",
          "dkimVerified"
        ]
      },
      "DetailedVerificationStatusDto": {
        "type": "object",
        "properties": {
          "domainVerification": {
            "type": "string",
            "enum": [
              "verified",
              "pending",
              "failed",
              "not_configured"
            ]
          },
          "businessOwnership": {
            "type": "string",
            "enum": [
              "verified",
              "pending",
              "failed",
              "not_configured"
            ]
          },
          "dkimVerification": {
            "type": "string",
            "enum": [
              "verified",
              "pending",
              "failed",
              "not_configured"
            ]
          },
          "dkimRecords": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "token": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "verified",
                    "pending",
                    "failed"
                  ]
                }
              }
            }
          },
          "mailFromDomain": {
            "type": "string",
            "enum": [
              "verified",
              "pending",
              "failed",
              "not_configured"
            ]
          },
          "mailFromMx": {
            "type": "string",
            "enum": [
              "verified",
              "pending",
              "failed",
              "not_configured"
            ]
          },
          "mailFromSpf": {
            "type": "string",
            "enum": [
              "verified",
              "pending",
              "failed",
              "not_configured"
            ]
          },
          "inboundMx": {
            "type": "string",
            "enum": [
              "verified",
              "pending",
              "failed",
              "not_configured"
            ]
          }
        },
        "required": [
          "domainVerification",
          "businessOwnership",
          "dkimVerification",
          "dkimRecords",
          "mailFromDomain",
          "mailFromMx",
          "mailFromSpf",
          "inboundMx"
        ]
      },
      "BusinessOwnershipDto": {
        "type": "object",
        "properties": {
          "verificationToken": {
            "type": "string"
          },
          "requiredTxtRecord": {
            "type": "string"
          },
          "txtRecordValue": {
            "type": "string"
          }
        },
        "required": [
          "requiredTxtRecord"
        ]
      },
      "RecommendedDnsRecordsDto": {
        "type": "object",
        "properties": {
          "domainVerification": {
            "type": "string"
          },
          "domainVerificationValue": {
            "type": "string"
          },
          "businessOwnership": {
            "type": "string"
          },
          "businessOwnershipValue": {
            "type": "string"
          },
          "dkimRecords": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          },
          "mx": {
            "type": "string"
          },
          "mailFromMx": {
            "type": "string"
          },
          "mailFromSpf": {
            "type": "string"
          }
        },
        "required": [
          "domainVerification",
          "businessOwnership",
          "dkimRecords",
          "mx",
          "mailFromMx",
          "mailFromSpf"
        ]
      },
      "DomainConfigurationResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "Pending",
              "Verified",
              "Failed"
            ]
          },
          "isHostedByUs": {
            "type": "boolean"
          },
          "dkimRecords": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "spfRecord": {
            "type": "string"
          },
          "dkimSelector": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "businessVerificationToken": {
            "type": "string"
          },
          "businessId": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "verificationStatus": {
            "$ref": "#/components/schemas/VerificationStatusDto"
          },
          "mailFromStatus": {
            "type": "object"
          },
          "detailedVerificationStatus": {
            "$ref": "#/components/schemas/DetailedVerificationStatusDto"
          },
          "businessOwnership": {
            "$ref": "#/components/schemas/BusinessOwnershipDto"
          },
          "recommendedDnsRecords": {
            "$ref": "#/components/schemas/RecommendedDnsRecordsDto"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "isHostedByUs",
          "dkimRecords",
          "businessId",
          "createdAt",
          "updatedAt",
          "verificationStatus",
          "detailedVerificationStatus",
          "businessOwnership",
          "recommendedDnsRecords"
        ]
      },
      "SendEmailAttachmentDto": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "description": "Filename as shown in UI"
          },
          "contentType": {
            "type": "string",
            "description": "MIME content type, e.g. application/pdf"
          },
          "s3Key": {
            "type": "string",
            "description": "S3 key for the uploaded attachment"
          },
          "contentId": {
            "type": "string",
            "description": "Content ID for inline images: <cid>"
          },
          "size": {
            "type": "number",
            "description": "File size in bytes (for quick UX checks)"
          },
          "inline": {
            "type": "boolean",
            "description": "True when contentId is present (inline attachment)"
          }
        },
        "required": [
          "filename",
          "s3Key"
        ]
      },
      "SendEmailDto": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Email address that user has access to"
          },
          "to": {
            "description": "Recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cc": {
            "description": "CC recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bcc": {
            "description": "BCC recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subject": {
            "type": "string",
            "description": "Email subject"
          },
          "textContent": {
            "type": "string",
            "description": "Plain text content"
          },
          "htmlContent": {
            "type": "string",
            "description": "HTML content"
          },
          "attachments": {
            "description": "Email attachments",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SendEmailAttachmentDto"
            }
          },
          "inReplyTo": {
            "type": "string",
            "description": "Message ID this is replying to (for threading)"
          },
          "references": {
            "description": "Message IDs in the thread (for threading)",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "signature": {
            "type": "string",
            "description": "User signature to append"
          }
        },
        "required": [
          "from",
          "to",
          "subject"
        ]
      },
      "CreateDraftDto": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Sender email address (must be an address the user can send from)"
          },
          "to": {
            "description": "Recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cc": {
            "description": "CC recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bcc": {
            "description": "BCC recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subject": {
            "type": "string",
            "description": "Email subject"
          },
          "textContent": {
            "type": "string",
            "description": "Plain text content"
          },
          "htmlContent": {
            "type": "string",
            "description": "HTML content"
          },
          "attachments": {
            "description": "Email attachments",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SendEmailAttachmentDto"
            }
          },
          "inReplyTo": {
            "type": "string",
            "description": "Message ID this is replying to (for threading)"
          },
          "references": {
            "description": "Message IDs in the thread (for threading)",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "signature": {
            "type": "string",
            "description": "User signature to append"
          }
        },
        "required": [
          "from"
        ]
      },
      "UpdateDraftDto": {
        "type": "object",
        "properties": {
          "to": {
            "description": "Recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cc": {
            "description": "CC recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bcc": {
            "description": "BCC recipient email addresses",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subject": {
            "type": "string",
            "description": "Email subject"
          },
          "textContent": {
            "type": "string",
            "description": "Plain text content"
          },
          "htmlContent": {
            "type": "string",
            "description": "HTML content"
          },
          "attachments": {
            "description": "Email attachments",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SendEmailAttachmentDto"
            }
          },
          "signature": {
            "type": "string",
            "description": "User signature to append"
          }
        }
      },
      "AttachmentUploadUrlRequestDto": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "description": "Filename of the attachment to upload",
            "example": "document.pdf"
          },
          "contentType": {
            "type": "string",
            "description": "MIME type of the attachment",
            "example": "application/pdf"
          }
        },
        "required": [
          "filename"
        ]
      },
      "InvitationAttendeeDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Attendee email address"
          },
          "name": {
            "type": "string",
            "description": "Attendee display name"
          }
        },
        "required": [
          "email"
        ]
      },
      "SendInvitationDto": {
        "type": "object",
        "properties": {
          "fromEmail": {
            "type": "string",
            "description": "Email address to send the invitation from"
          },
          "attendees": {
            "description": "List of attendees to invite",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvitationAttendeeDto"
            }
          },
          "message": {
            "type": "string",
            "description": "Custom message to include in the invitation email"
          }
        },
        "required": [
          "fromEmail",
          "attendees"
        ]
      },
      "AcceptInvitationDto": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "UID from the ICS event"
          },
          "title": {
            "type": "string",
            "description": "Event title/summary"
          },
          "description": {
            "type": "string",
            "description": "Event description"
          },
          "location": {
            "type": "string",
            "description": "Event location"
          },
          "startDate": {
            "type": "string",
            "description": "Event start date"
          },
          "endDate": {
            "type": "string",
            "description": "Event end date"
          },
          "organizerEmail": {
            "type": "string",
            "description": "Organizer email"
          },
          "organizerName": {
            "type": "string",
            "description": "Organizer name"
          },
          "mailAccountId": {
            "type": "string",
            "description": "Mail account ID to associate"
          }
        },
        "required": [
          "uid",
          "title",
          "startDate",
          "endDate",
          "organizerEmail"
        ]
      },
      "DeclineInvitationDto": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "UID from the ICS event"
          },
          "title": {
            "type": "string",
            "description": "Event title/summary"
          },
          "startDate": {
            "type": "string",
            "description": "Event start date"
          },
          "endDate": {
            "type": "string",
            "description": "Event end date"
          },
          "organizerEmail": {
            "type": "string",
            "description": "Organizer email address"
          },
          "organizerName": {
            "type": "string",
            "description": "Organizer name"
          },
          "declinerEmail": {
            "type": "string",
            "description": "Decliner email address (your email)"
          },
          "declinerName": {
            "type": "string",
            "description": "Decliner name"
          }
        },
        "required": [
          "uid",
          "title",
          "startDate",
          "endDate",
          "organizerEmail",
          "declinerEmail"
        ]
      },
      "CalendarEventDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "eventType": {
            "default": "Event",
            "$ref": "#/components/schemas/CalendarEventType"
          },
          "status": {
            "default": "Pending",
            "$ref": "#/components/schemas/CalendarEventStatus"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "isAllDay": {
            "type": "boolean",
            "default": false
          },
          "isRecurring": {
            "type": "boolean",
            "default": false
          },
          "recurrenceRule": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/RecurrenceRuleDto"
              }
            ]
          },
          "parentEventId": {
            "type": "string",
            "nullable": true
          },
          "attendeeEmails": {
            "default": [],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mailAccountId": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "reminder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "attachments": {
            "default": [],
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "title",
          "startDate",
          "endDate"
        ]
      },
      "CalendarBookingDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "default": "Pending",
            "$ref": "#/components/schemas/BookingStatus"
          },
          "calendarEventId": {
            "type": "string"
          },
          "organizerName": {
            "type": "string"
          },
          "organizerEmail": {
            "type": "string"
          },
          "attendeeName": {
            "type": "string",
            "nullable": true
          },
          "attendeeEmail": {
            "type": "string"
          },
          "attendeePhone": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "meetingUrl": {
            "type": "string",
            "nullable": true
          },
          "mailAccountId": {
            "type": "string",
            "nullable": true
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "bookingNotes": {
            "type": "string",
            "nullable": true
          },
          "cancellationReason": {
            "type": "string",
            "nullable": true
          },
          "confirmationToken": {
            "type": "string",
            "nullable": true
          },
          "reminderSentAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "confirmedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "title",
          "startDate",
          "endDate",
          "duration",
          "calendarEventId",
          "organizerName",
          "organizerEmail",
          "attendeeEmail"
        ]
      },
      "BookingDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Booking title or summary."
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the booking.",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start date and time of the booking.",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "End date and time of the booking.",
            "format": "date-time"
          },
          "status": {
            "description": "Current booking status: Pending, Confirmed, Active, Completed, Cancelled.",
            "default": "Pending",
            "$ref": "#/components/schemas/BookingStatus"
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "serviceId": {
            "type": "string",
            "nullable": true
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "quoteId": {
            "type": "string",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "color": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "title",
          "startDate",
          "endDate"
        ]
      },
      "LandingPageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique landing page identifier (MongoDB ObjectId)."
          },
          "name": {
            "type": "string",
            "description": "Display name of the landing page."
          },
          "slug": {
            "type": "string",
            "description": "URL-safe slug, unique per business. Used in published URL ({slug}.pages.incrm.app)."
          },
          "status": {
            "description": "Current build/publish status of the landing page.",
            "$ref": "#/components/schemas/LandingPageStatus"
          },
          "pageCode": {
            "type": "object",
            "description": "JSON map of generated file contents (e.g. { \"index.html\": \"...\", \"styles.css\": \"...\" }).",
            "nullable": true
          },
          "languages": {
            "description": "Language codes supported by this landing page.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "lastBuildAt": {
            "type": "string",
            "description": "Timestamp of the last successful build.",
            "format": "date-time",
            "nullable": true
          },
          "buildVersion": {
            "type": "integer",
            "description": "Incremental build version counter.",
            "format": "int32"
          },
          "publishedUrl": {
            "type": "string",
            "description": "Public URL where the page is accessible after publishing.",
            "nullable": true
          },
          "previewUrl": {
            "type": "string",
            "description": "Preview URL for draft/unpublished pages.",
            "nullable": true
          },
          "customDomain": {
            "type": "string",
            "description": "Custom domain connected to this landing page.",
            "nullable": true
          },
          "domainStatus": {
            "type": "string",
            "description": "Verification status of the custom domain (e.g. pending, verified, failed).",
            "nullable": true
          },
          "domainVerificationToken": {
            "type": "string",
            "description": "Token used for DNS-based domain ownership verification.",
            "nullable": true
          },
          "seoTitle": {
            "type": "string",
            "description": "SEO title tag for the landing page.",
            "nullable": true
          },
          "seoDescription": {
            "type": "string",
            "description": "SEO meta description for the landing page.",
            "nullable": true
          },
          "ogImageUrl": {
            "type": "string",
            "description": "Open Graph image URL for social media previews.",
            "nullable": true
          },
          "aiChatId": {
            "type": "string",
            "description": "Reference to the AI chat session that generated this page.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "status",
          "pageCode",
          "languages",
          "lastBuildAt",
          "buildVersion",
          "publishedUrl",
          "previewUrl",
          "customDomain",
          "domainStatus",
          "domainVerificationToken",
          "seoTitle",
          "seoDescription",
          "ogImageUrl",
          "aiChatId",
          "createdAt",
          "updatedAt"
        ]
      },
      "CreateCheckoutSessionDto": {
        "type": "object",
        "properties": {
          "featureIds": {
            "description": "Array of feature IDs the business wants to subscribe to.",
            "example": [
              "products",
              "invoices",
              "email-inbox"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "businessId": {
            "type": "string",
            "description": "The ID of the business for which the checkout session is being created.",
            "example": "clxqk3h2g0000o5gkkdh78e1h"
          },
          "stripeCustomerId": {
            "type": "string",
            "description": "Optional Stripe Customer ID if it already exists.",
            "example": "cus_xxxxxxxxxxxxxx"
          }
        },
        "required": [
          "featureIds",
          "businessId"
        ]
      },
      "CheckoutSessionResponseDto": {
        "type": "object",
        "properties": {
          "checkoutUrl": {
            "type": "string",
            "description": "The URL for the Stripe Checkout session.",
            "example": "https://checkout.stripe.com/pay/cs_test_..."
          }
        },
        "required": [
          "checkoutUrl"
        ]
      },
      "SubscriptionStatusDto": {
        "type": "object",
        "properties": {
          "availableFeatures": {
            "description": "Array of feature IDs the business is currently subscribed to.",
            "example": [
              "products",
              "invoices"
            ],
            "nullable": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subscriptionStatus": {
            "type": "string",
            "description": "Current status of the Stripe subscription (e.g., active, past_due, canceled).",
            "example": "active",
            "nullable": true
          },
          "subscriptionCurrentPeriodEnd": {
            "format": "date-time",
            "type": "string",
            "description": "Date when the current subscription period ends.",
            "example": "2024-12-31T23:59:59.000Z",
            "nullable": true
          },
          "hasActiveSubscription": {
            "type": "boolean",
            "description": "Indicates if the business has an active subscription with a valid period end date.",
            "example": true
          }
        },
        "required": [
          "availableFeatures",
          "subscriptionStatus",
          "subscriptionCurrentPeriodEnd",
          "hasActiveSubscription"
        ]
      },
      "CreateApiKeyDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Display name for the API key"
          },
          "scopes": {
            "description": "Permission scopes for the key. Empty array inherits full user permissions.",
            "example": [
              "clients.read",
              "invoices.read"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date for the key. Null means no expiration.",
            "nullable": true
          }
        },
        "required": [
          "name"
        ]
      },
      "UpdateApiKeyDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Display name for the API key"
          },
          "scopes": {
            "description": "Permission scopes for the key. Empty array inherits full user permissions.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date for the key. Null means no expiration.",
            "nullable": true
          }
        }
      },
      "SignUpDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "password": {
            "type": "string",
            "default": "string!12345"
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "SignInDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string",
            "default": "string!12345"
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "ActivateAccountDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "activationCode": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "activationCode"
        ]
      },
      "ResendActivationCodeDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ]
      },
      "RequestPasswordResetDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ]
      },
      "ResetPasswordDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "newPassword": {
            "type": "string",
            "default": "string!12345"
          }
        },
        "required": [
          "token",
          "newPassword"
        ]
      },
      "PresignedPost": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "fields": {
            "type": "object"
          }
        },
        "required": [
          "url",
          "fields"
        ]
      },
      "PresignedUrlResponse": {
        "type": "object",
        "properties": {
          "presignedPost": {
            "$ref": "#/components/schemas/PresignedPost"
          },
          "fileUrl": {
            "type": "string"
          },
          "fileName": {
            "type": "string"
          }
        },
        "required": [
          "presignedPost",
          "fileUrl",
          "fileName"
        ]
      },
      "ImageEntity": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "fileName": {
            "type": "string"
          },
          "mimeType": {
            "type": "string"
          },
          "uploadedAt": {
            "type": "string"
          },
          "urlValidUntil": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "fileName",
          "mimeType",
          "uploadedAt",
          "urlValidUntil"
        ]
      },
      "SendContactFormDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Ime Prezime"
          },
          "email": {
            "type": "string",
            "example": "email@example.com"
          },
          "company": {
            "type": "string",
            "example": "Tvrtka d.o.o."
          },
          "phone": {
            "type": "string",
            "example": "+385 91 234 5678"
          },
          "message": {
            "type": "string",
            "example": "Zanima me više informacija o InCRM..."
          }
        },
        "required": [
          "name",
          "email",
          "message"
        ]
      },
      "CreateWebhookDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "example": "https://partner.example.com/webhooks/incrm"
          },
          "events": {
            "example": [
              "client.created",
              "invoice.updated"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string",
            "example": "Notify partner on client changes"
          }
        },
        "required": [
          "url",
          "events"
        ]
      },
      "UpdateWebhookDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isActive": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "CreateBusinessResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for CreateBusinessResponseDto.",
        "additionalProperties": true
      },
      "SettingsDto": {
        "type": "object",
        "description": "Auto-generated stub for SettingsDto.",
        "additionalProperties": true
      },
      "InviteEmployeeResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for InviteEmployeeResponseDto.",
        "additionalProperties": true
      },
      "InvoiceIssueResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for InvoiceIssueResponseDto.",
        "additionalProperties": true
      },
      "InvoiceCancelResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for InvoiceCancelResponseDto.",
        "additionalProperties": true
      },
      "ExpenseActionResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for ExpenseActionResponseDto.",
        "additionalProperties": true
      },
      "ShipmentActionResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for ShipmentActionResponseDto.",
        "additionalProperties": true
      },
      "QuoteActionResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for QuoteActionResponseDto.",
        "additionalProperties": true
      },
      "QuoteConvertToInvoiceResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for QuoteConvertToInvoiceResponseDto.",
        "additionalProperties": true
      },
      "QuoteConvertInfoResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for QuoteConvertInfoResponseDto.",
        "additionalProperties": true
      },
      "ExternalMailConnectionResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for ExternalMailConnectionResponseDto.",
        "additionalProperties": true
      },
      "ThreadResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for ThreadResponseDto.",
        "additionalProperties": true
      },
      "UnreadCountsResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for UnreadCountsResponseDto.",
        "additionalProperties": true
      },
      "AttachmentUploadUrlResponseDto": {
        "type": "object",
        "description": "Auto-generated stub for AttachmentUploadUrlResponseDto.",
        "additionalProperties": true
      }
    }
  }
}