{
  "openapi": "3.0.4",
  "info": {
    "title": "Northwind CRUD",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://data-northwind.indigo.design"
    }
  ],
  "paths": {
    "/Auth/Login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/Auth/Register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/Auth/LoginObject": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthDto"
                }
              }
            }
          }
        }
      }
    },
    "/Auth/RegisterObject": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthDto"
                }
              }
            }
          }
        }
      }
    },
    "/Categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Categories"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDetailsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDetailsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDetailsDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Categories/GetCategoriesWithSkip": {
      "get": {
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Categories/GetCategoriesWithPage": {
      "get": {
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Categories/GetCategoriesCount": {
      "get": {
        "tags": [
          "Categories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Categories/{id}": {
      "get": {
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Categories/{id}/Details": {
      "get": {
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDetailsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDetailsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDetailsDto"
                }
              }
            }
          }
        }
      }
    },
    "/Categories/{id}/Products": {
      "get": {
        "tags": [
          "Categories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Customers": {
      "get": {
        "tags": [
          "Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Customers/GetCustomersWithSkip": {
      "get": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Customers/GetCustomersWithPage": {
      "get": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Customers/GetCustomersCount": {
      "get": {
        "tags": [
          "Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Customers/WithOrders": {
      "get": {
        "tags": [
          "Customers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerWithOrdersDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerWithOrdersDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerWithOrdersDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Customers/{id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Customers/{id}/Orders": {
      "get": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Customers/{id}/Orders/WithDetails": {
      "get": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderWithDetailsDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderWithDetailsDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderWithDetailsDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Employees": {
      "get": {
        "tags": [
          "Employees"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Employees"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Employees/GetAllAuthorized": {
      "get": {
        "tags": [
          "Employees"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Employees/GetEmployeesWithSkip": {
      "get": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Employees/GetPagedEmployeesWithPage": {
      "get": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Employees/GetEmployeesCount": {
      "get": {
        "tags": [
          "Employees"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Employees/GetEmployeesCountAuthorized": {
      "get": {
        "tags": [
          "Employees"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Employees/{id}": {
      "get": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Employees/{id}/Superior": {
      "get": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeDto"
                }
              }
            }
          }
        }
      }
    },
    "/Employees/{id}/Subordinates": {
      "get": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Employees/{id}/Orders": {
      "get": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Employees/{id}/Teritories": {
      "get": {
        "tags": [
          "Employees"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Employees/Teritory": {
      "post": {
        "tags": [
          "Employees"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeTerritoryDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeTerritoryDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeTerritoryDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeTerritoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeTerritoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeTerritoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmployeeTerritoryDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Orders": {
      "get": {
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Orders/GetPagedOrders": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Orders/GetPagedOrdersWithPage": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Orders/GetOrdersCount": {
      "get": {
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Orders/{id}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OrderDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Orders/{id}/Details": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDetailDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDetailDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDetailDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Orders/{id}/Customer": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              }
            }
          }
        }
      }
    },
    "/Orders/{id}/Employee": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              }
            }
          }
        }
      }
    },
    "/Orders/{id}/Shipper": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerDto"
                }
              }
            }
          }
        }
      }
    },
    "/Orders/{id}/Products": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Orders/retrieve/{ordersToRetrieve}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "ordersToRetrieve",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Products": {
      "get": {
        "tags": [
          "Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Products"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Products/GetAllAuthorized": {
      "get": {
        "tags": [
          "Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Products/GetPagedProducts": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Products/GetPagedProductsWithPage": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Products/GetProductsCount": {
      "get": {
        "tags": [
          "Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Products/GetProductsCountAuthorized": {
      "get": {
        "tags": [
          "Products"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Products/{id}": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Products/{id}/Category": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryDto"
                }
              }
            }
          }
        }
      }
    },
    "/Products/{id}/OrderDetails": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDetailDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDetailDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDetailDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Products/{id}/Supplier": {
      "get": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              }
            }
          }
        }
      }
    },
    "/QueryBuilder/ExecuteQuery": {
      "post": {
        "tags": [
          "QueryBuilder"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Query"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryBuilderResult"
                }
              }
            }
          }
        }
      }
    },
    "/Regions": {
      "get": {
        "tags": [
          "Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Regions"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              }
            }
          }
        }
      }
    },
    "/Regions/GetPagedRegions": {
      "get": {
        "tags": [
          "Regions"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Regions/GetPagedRegionsWithPage": {
      "get": {
        "tags": [
          "Regions"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Regions/GetRegionsCount": {
      "get": {
        "tags": [
          "Regions"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Regions/{id}": {
      "get": {
        "tags": [
          "Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegionDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegionDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Regions/{id}/Territories": {
      "get": {
        "tags": [
          "Regions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TerritoryDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TerritoryDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TerritoryDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Sales/ByCategory": {
      "get": {
        "tags": [
          "Sales"
        ],
        "parameters": [
          {
            "name": "categoryName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderYear",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Sales/ByCountry/{country}": {
      "get": {
        "tags": [
          "Sales"
        ],
        "parameters": [
          {
            "name": "country",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date in YYYY-MM-DD format",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date in YYYY-MM-DD format",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Sales/ByYear/{year}": {
      "get": {
        "tags": [
          "Sales"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startMounth",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "endMounth",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SalesDto"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Shippers": {
      "get": {
        "tags": [
          "Shippers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShipperDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShipperDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShipperDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Shippers"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Shippers/GetPagedShippersWithSkip": {
      "get": {
        "tags": [
          "Shippers"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Shippers/GetPagedShippersWithPage": {
      "get": {
        "tags": [
          "Shippers"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Shippers/GetShippersCount": {
      "get": {
        "tags": [
          "Shippers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Shippers/{id}": {
      "get": {
        "tags": [
          "Shippers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Shippers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ShipperDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Shippers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipperDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Shippers/{id}/Orders": {
      "get": {
        "tags": [
          "Shippers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Suppliers": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SupplierDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SupplierDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SupplierDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Suppliers"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Suppliers/GetPagedSuppliers": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Suppliers/GetPagedSuppliersWithPage": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Suppliers/GetSuppliersCount": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Suppliers/{id}": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Suppliers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SupplierDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Suppliers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SupplierDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Suppliers/{id}/Products": {
      "get": {
        "tags": [
          "Suppliers"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Territories": {
      "get": {
        "tags": [
          "Territories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TerritoryDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TerritoryDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TerritoryDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Territories"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Territories/GetPagedTerritories": {
      "get": {
        "tags": [
          "Territories"
        ],
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before starting to fetch them. If this parameter is not provided, fetching starts from the beginning.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of records to fetch. If this parameter is not provided, all records are fetched.",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Territories/GetPagedTerritoriesWithPage": {
      "get": {
        "tags": [
          "Territories"
        ],
        "parameters": [
          {
            "name": "pageIndex",
            "in": "query",
            "description": "The page index of records to fetch. If this parameter is not provided, fetching starts from the beginning (page 0).",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The maximum number of records to fetch per page. If this parameter is not provided, all records are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "A comma-separated list of fields to order the records by, along with the sort direction (e.g., 'field1 asc, field2 desc').",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDtoPagedResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDtoPagedResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDtoPagedResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Territories/GetTerritoriesCount": {
      "get": {
        "tags": [
          "Territories"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/Territories/{id}": {
      "get": {
        "tags": [
          "Territories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Territories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TerritoryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Territories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TerritoryDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/Territories/{id}/Employees": {
      "get": {
        "tags": [
          "Territories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmployeeDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Territories/{id}/Region": {
      "get": {
        "tags": [
          "Territories"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegionDto"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddressDto": {
        "type": "object",
        "properties": {
          "street": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "city": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "region": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "country": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "pattern": "^\\+?[0-9][0-9\\-]{1,14}$",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CategoryDetailsDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "description": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "name": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string"
          },
          "picture": {
            "pattern": "^(http[s]?://.*\\.(?:jpg|jpeg|png|gif))$",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CategoryDto": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "description": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "name": {
            "maxLength": 50,
            "minLength": 3,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CategoryDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CategoryDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CountResultDto": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CustomerDto": {
        "required": [
          "companyName"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "companyName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "contactName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "contactTitle": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/AddressDto"
          }
        },
        "additionalProperties": false
      },
      "CustomerDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CustomerWithOrdersDto": {
        "required": [
          "companyName"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "companyName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "contactName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "contactTitle": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/AddressDto"
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderWithDetailsDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmployeeDto": {
        "required": [
          "lastName"
        ],
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "integer",
            "description": "Number automatically assigned to new employee.",
            "format": "int32",
            "readOnly": true
          },
          "lastName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Employee's last name."
          },
          "firstName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Employee's first name.",
            "nullable": true
          },
          "title": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Employee's title",
            "nullable": true
          },
          "titleOfCourtesy": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Title used in salutations",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "description": "Employee's birth date",
            "format": "date",
            "nullable": true
          },
          "hireDate": {
            "type": "string",
            "description": "Employee's hire date",
            "format": "date",
            "nullable": true
          },
          "addressId": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/AddressDto"
          },
          "notes": {
            "maxLength": 1000,
            "minLength": 0,
            "type": "string",
            "description": "General information about employee's background.",
            "nullable": true
          },
          "avatarUrl": {
            "pattern": "^https?:\\/\\/.+\\..+",
            "type": "string",
            "description": "Employee's avatar url.",
            "nullable": true
          },
          "reportsTo": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Employee's supervisor.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "EmployeeDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "EmployeeTerritoryDto": {
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "integer",
            "format": "int32"
          },
          "territoryId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FilterType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32"
      },
      "LoginDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderDetailDto": {
        "required": [
          "orderId"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int32"
          },
          "productId": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "discount": {
            "type": "number",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "OrderDto": {
        "required": [
          "customerId"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "customerId": {
            "minLength": 1,
            "type": "string"
          },
          "employeeId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "shipperId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "orderDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "requiredDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "shipVia": {
            "$ref": "#/components/schemas/Shipping"
          },
          "freight": {
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "shipName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "completed": {
            "type": "boolean"
          },
          "shipAddress": {
            "$ref": "#/components/schemas/AddressDto"
          }
        },
        "additionalProperties": false
      },
      "OrderDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "OrderWithDetailsDto": {
        "required": [
          "customerId"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "customerId": {
            "minLength": 1,
            "type": "string"
          },
          "employeeId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "shipperId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "orderDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "requiredDate": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "shipVia": {
            "$ref": "#/components/schemas/Shipping"
          },
          "freight": {
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "shipName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "completed": {
            "type": "boolean"
          },
          "shipAddress": {
            "$ref": "#/components/schemas/AddressDto"
          },
          "orderDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDetailDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductDto": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "supplierId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "categoryId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "quantityPerUnit": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "unitPrice": {
            "minimum": 0,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "unitsInStock": {
            "maximum": 1000000000,
            "minimum": 0,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "unitsOnOrder": {
            "maximum": 1000000,
            "minimum": 0,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reorderLevel": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "discontinued": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ProductDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Query": {
        "type": "object",
        "properties": {
          "entity": {
            "type": "string",
            "nullable": true
          },
          "returnFields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "operator": {
            "$ref": "#/components/schemas/FilterType"
          },
          "filteringOperands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueryFilter"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QueryBuilderResult": {
        "type": "object",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressDto"
            },
            "nullable": true
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CategoryDto"
            },
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductDto"
            },
            "nullable": true
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegionDto"
            },
            "nullable": true
          },
          "territories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TerritoryDto"
            },
            "nullable": true
          },
          "employees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmployeeDto"
            },
            "nullable": true
          },
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerDto"
            },
            "nullable": true
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDto"
            },
            "nullable": true
          },
          "orderDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDetailDto"
            },
            "nullable": true
          },
          "shippers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipperDto"
            },
            "nullable": true
          },
          "suppliers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupplierDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QueryFilter": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string",
            "nullable": true
          },
          "ignoreCase": {
            "type": "boolean",
            "nullable": true
          },
          "condition": {
            "$ref": "#/components/schemas/QueryFilterCondition"
          },
          "searchVal": {
            "nullable": true
          },
          "searchTree": {
            "$ref": "#/components/schemas/Query"
          },
          "operator": {
            "$ref": "#/components/schemas/FilterType"
          },
          "filteringOperands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueryFilter"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QueryFilterCondition": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "isUnary": {
            "type": "boolean"
          },
          "iconName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegionDto": {
        "type": "object",
        "properties": {
          "regionId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "regionDescription": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegionDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegionDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RegisterDto": {
        "required": [
          "confirmedPassword",
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "minLength": 1,
            "type": "string"
          },
          "confirmedPassword": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SalesDto": {
        "required": [
          "productId"
        ],
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int32"
          },
          "quantitySold": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "saleAmount": {
            "maximum": 1000000,
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ShipperDto": {
        "required": [
          "companyName"
        ],
        "type": "object",
        "properties": {
          "shipperId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "companyName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "phone": {
            "pattern": "^\\+?[1-9]\\d{1,14}$",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShipperDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipperDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Shipping": {
        "enum": [
          "SeaFreight",
          "GroundTransport",
          "AirCargo",
          "Mail"
        ],
        "type": "string"
      },
      "SupplierDto": {
        "required": [
          "companyName"
        ],
        "type": "object",
        "properties": {
          "supplierId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "companyName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "contactName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "contactTitle": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "address": {
            "maxLength": 250,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "city": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "region": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "country": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "phone": {
            "pattern": "^\\+?[1-9]\\d{1,14}$",
            "type": "string",
            "nullable": true
          },
          "fax": {
            "pattern": "^\\+?[1-9]\\d{1,14}$",
            "type": "string",
            "nullable": true
          },
          "homePage": {
            "pattern": "^https?:\\/\\/[^\\s$.?#].[^\\s]*$",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SupplierDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupplierDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TerritoryDto": {
        "type": "object",
        "properties": {
          "territoryId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "territoryDescription": {
            "type": "string",
            "nullable": true
          },
          "regionId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TerritoryDtoPagedResultDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TerritoryDto"
            },
            "nullable": true
          },
          "totalRecordsCount": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "Please enter a valid token",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}