{
  "openapi": "3.1.1",
  "info": {
    "title": "AmkConfigurator.Api | v1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://amk.devforu.ru/"
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "tags": [
          "AmkConfigurator.Api"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/decors/sync": {
      "post": {
        "tags": [
          "AdminCatalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DecorSyncResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DecorSyncResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DecorSyncResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/import/facades": {
      "post": {
        "tags": [
          "AdminImport"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FacadeImportResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacadeImportResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacadeImportResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/import/size-matrix": {
      "post": {
        "tags": [
          "AdminImport"
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MatrixImportResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatrixImportResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatrixImportResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/import/services": {
      "post": {
        "tags": [
          "AdminImport"
        ],
        "parameters": [
          {
            "name": "applyPriceChanges",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "$ref": "#/components/schemas/IFormFile"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceImportResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceImportResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceImportResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/decor-groups": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorGroupDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorGroupDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorGroupDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/decors": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/product-types": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductTypeDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductTypeDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductTypeDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/decor-usage": {
      "post": {
        "tags": [
          "Catalog"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DecorUsageHitDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DecorUsageHitDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DecorUsageHitDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "Catalog"
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorUsageDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorUsageDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DecorUsageDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/decor-usage/top": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32",
              "default": 9
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TopDecorsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopDecorsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopDecorsDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/work-variants": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/compatibility-rules": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompatibilityRuleDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompatibilityRuleDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompatibilityRuleDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/decors/{id}/image": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/catalog/decors/{id}/thumb": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/catalog/hpl/decors": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplDecorDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplDecorDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplDecorDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/hpl/operations": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplOperationDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplOperationDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplOperationDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/catalog/hpl/hardware": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplHardwareDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplHardwareDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HplHardwareDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/nesting": {
      "post": {
        "tags": [
          "Nesting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NestRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NestRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NestRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NestResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NestResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NestResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/onec-calc-request": {
      "post": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "number",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OneCCalcOrderRequest"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OneCCalcOrderRequest"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OneCCalcOrderRequest"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders": {
      "get": {
        "tags": [
          "Orders"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderSummaryDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderSummaryDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderSummaryDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            }
          },
          "required": true
        },
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{id}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "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": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SaveOrderRequestDto"
              }
            }
          },
          "required": true
        },
        "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"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/orders/{id}/nest": {
      "post": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NestOrderRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/NestOrderRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/NestOrderRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/NestResultDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NestResultDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/NestResultDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/parse-csv": {
      "post": {
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParseCsvRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ParseCsvRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ParseCsvRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ParseCsvResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParseCsvResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParseCsvResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{id}/submit": {
      "post": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/orders/{id}/status": {
      "post": {
        "tags": [
          "Orders"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeOrderStatusRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeOrderStatusRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeOrderStatusRequestDto"
              }
            }
          },
          "required": true
        },
        "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"
                }
              }
            }
          }
        }
      }
    },
    "/api/pricing/hpl": {
      "post": {
        "tags": [
          "Pricing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HplCalcRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/HplCalcRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/HplCalcRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/HplCalcResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HplCalcResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/HplCalcResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/pricing/facade": {
      "post": {
        "tags": [
          "Pricing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FacadeCalcRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FacadeCalcRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FacadeCalcRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FacadeCalcResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacadeCalcResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacadeCalcResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/pricing/size-matrix": {
      "post": {
        "tags": [
          "Pricing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SizeCalcRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SizeCalcRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SizeCalcRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SizeCalcResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SizeCalcResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SizeCalcResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/pricing/check-compatibility": {
      "post": {
        "tags": [
          "Pricing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompatibilityCheckRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CompatibilityCheckRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CompatibilityCheckRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CompatibilityCheckResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompatibilityCheckResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompatibilityCheckResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/pricing/services": {
      "post": {
        "tags": [
          "Pricing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServicesCalcRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ServicesCalcRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ServicesCalcRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesCalcResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesCalcResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesCalcResponseDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/pricing/derive-works": {
      "post": {
        "tags": [
          "Pricing"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkDerivationRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkDerivationRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WorkDerivationRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WorkDerivationResponseDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkDerivationResponseDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkDerivationResponseDto"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AppliedPricingRuleDto": {
        "type": "object",
        "properties": {
          "ruleId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "target": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "amount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "AppliedRuleDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "amount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "AuthResponseDto": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "email": {
            "type": "string"
          },
          "customerId": {
            "type": "string",
            "format": "uuid"
          },
          "priceGroupId": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "ChangeOrderStatusRequestDto": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "comment": {
            "type": [
              "null",
              "string"
            ]
          },
          "productionNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "plannedReadyAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "CompatibilityCheckRequestDto": {
        "type": "object",
        "properties": {
          "configuration": {
            "$ref": "#/components/schemas/ProductConfigurationDto"
          },
          "contour": {
            "$ref": "#/components/schemas/PartContourDto"
          },
          "vertical": {
            "type": "boolean"
          },
          "isHpl": {
            "type": "boolean"
          },
          "thicknessMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CompatibilityCheckResponseDto": {
        "type": "object",
        "properties": {
          "violations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompatibilityViolationDto"
            }
          }
        }
      },
      "CompatibilityRuleDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "fieldA": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "operatorA": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "valueA": {
            "type": [
              "null",
              "string"
            ]
          },
          "fieldB": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "operatorB": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "valueB": {
            "type": [
              "null",
              "string"
            ]
          },
          "message": {
            "type": "string"
          },
          "severity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sortOrder": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "CompatibilityViolationDto": {
        "type": "object",
        "properties": {
          "ruleId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "severity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CornerPosition": {
        "type": "integer"
      },
      "CornerTreatmentDto": {
        "type": "object",
        "properties": {
          "position": {
            "$ref": "#/components/schemas/CornerPosition"
          },
          "kind": {
            "$ref": "#/components/schemas/CornerTreatmentKind"
          },
          "radiusMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "legAMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "legBMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "CornerTreatmentKind": {
        "type": "integer"
      },
      "CutoutDto": {
        "type": "object",
        "properties": {
          "shape": {
            "$ref": "#/components/schemas/CutoutShape"
          },
          "anchor": {
            "$ref": "#/components/schemas/CornerPosition"
          },
          "xMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "yMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "diameterMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "cornerRadiusMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "CutoutShape": {
        "type": "integer"
      },
      "DecorDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "decorGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "groupName": {
            "type": [
              "null",
              "string"
            ]
          },
          "category": {
            "type": [
              "null",
              "string"
            ]
          },
          "surface": {
            "type": [
              "null",
              "string"
            ]
          },
          "imageUrl": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "hasImage": {
            "type": "boolean"
          }
        }
      },
      "DecorGroupDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "edgePriceTier": {
            "type": [
              "null",
              "string"
            ]
          },
          "decorCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "DecorSyncResult": {
        "required": [
          "productsScanned",
          "groupsTouched",
          "decorsUpserted",
          "imagesStored"
        ],
        "type": "object",
        "properties": {
          "productsScanned": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "groupsTouched": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "decorsUpserted": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "imagesStored": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "DecorUsageDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "groupKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "groupName": {
            "type": [
              "null",
              "string"
            ]
          },
          "useCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "lastUsedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "DecorUsageHitDto": {
        "type": "object",
        "properties": {
          "source": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "code": {
            "type": "string"
          },
          "groupKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "groupName": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DeliveryMethod": {
        "type": "integer"
      },
      "DerivedWorkKind": {
        "type": "integer"
      },
      "DerivedWorkLineDto": {
        "type": "object",
        "properties": {
          "partId": {
            "type": "string"
          },
          "kind": {
            "$ref": "#/components/schemas/DerivedWorkKind"
          },
          "serviceCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "price": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lineTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "source": {
            "type": "string"
          },
          "priceSource": {
            "type": [
              "null",
              "string"
            ]
          },
          "hplOperationCode": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "EdgeBandingDto": {
        "type": "object",
        "properties": {
          "side": {
            "$ref": "#/components/schemas/PartEdgeSide"
          },
          "kind": {
            "$ref": "#/components/schemas/EdgeBandingKind"
          },
          "materialCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "isCurvilinear": {
            "type": "boolean"
          },
          "joint": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "edgeMaterial": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "EdgeBandingKind": {
        "type": "integer"
      },
      "FacadeBaseMaterial": {
        "type": "integer"
      },
      "FacadeCalcRequestDto": {
        "type": "object",
        "properties": {
          "decorGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "baseMaterial": {
            "$ref": "#/components/schemas/FacadeBaseMaterial"
          },
          "treatment": {
            "$ref": "#/components/schemas/FacadeEdgeTreatment"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "heightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "reverseColorSameAsFront": {
            "type": "boolean"
          }
        }
      },
      "FacadeCalcResponseDto": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "pricePerSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "areaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "calcSource": {
            "type": "string"
          }
        }
      },
      "FacadeEdgeTreatment": {
        "type": "integer"
      },
      "FacadeImportResult": {
        "required": [
          "groupsMatched",
          "pricesUpserted",
          "unmatchedGroups",
          "log"
        ],
        "type": "object",
        "properties": {
          "groupsMatched": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "pricesUpserted": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unmatchedGroups": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "log": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FaceLaminationDto": {
        "type": "object",
        "properties": {
          "face": {
            "$ref": "#/components/schemas/PartFace"
          },
          "materialCode": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "GrooveDto": {
        "type": "object",
        "properties": {
          "side": {
            "$ref": "#/components/schemas/PartEdgeSide"
          },
          "face": {
            "$ref": "#/components/schemas/PartFace"
          },
          "offsetMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "depthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "HoleDto": {
        "type": "object",
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/HoleKind"
          },
          "anchor": {
            "$ref": "#/components/schemas/CornerPosition"
          },
          "xMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "yMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "diameterMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "depthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "HoleKind": {
        "type": "integer"
      },
      "HplCalcRequestDto": {
        "type": "object",
        "properties": {
          "materialCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "decorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "decorBrand": {
            "type": [
              "null",
              "string"
            ]
          },
          "operationCodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "hardware": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HplHardwareLineDto"
            }
          },
          "packagingMode": {
            "$ref": "#/components/schemas/HplPackagingMode"
          },
          "plates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HplPlateLineDto"
            }
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HplItemSizeDto"
            }
          },
          "discountPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "HplCalcResponseDto": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "materialCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalCoefficient": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "workCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "hardwareCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "packagingCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "subtotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "discountAmount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "materialSource": {
            "type": "string"
          },
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HplOperationLineDto"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "calcSource": {
            "type": "string"
          }
        }
      },
      "HplDecorDto": {
        "type": "object",
        "properties": {
          "brand": {
            "type": "string"
          },
          "surfaceGroup": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "pricePerSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "plates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HplPlateDto"
            }
          }
        }
      },
      "HplHardwareDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "pricePerPiece": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "HplHardwareLineDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "HplItemSizeDto": {
        "type": "object",
        "properties": {
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "HplOperationDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "coefficient": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "isBase": {
            "type": "boolean"
          }
        }
      },
      "HplOperationLineDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "coefficient": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "HplPackagingMode": {
        "type": "integer"
      },
      "HplPlateDto": {
        "type": "object",
        "properties": {
          "formatCode": {
            "type": "string"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "heightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "thicknessMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "areaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "pricePerPlate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "HplPlateLineDto": {
        "type": "object",
        "properties": {
          "formatCode": {
            "type": "string"
          },
          "count": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "IFormFile": {
        "type": "string",
        "format": "binary"
      },
      "ItemPricingModel": {
        "type": "integer"
      },
      "LoginRequestDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "MaterialUsageDto": {
        "type": "object",
        "properties": {
          "partsAreaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "billedAreaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sheets": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "roundedUpToSheet": {
            "type": "boolean"
          },
          "sheetAreaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "MaterialUsageOptionsDto": {
        "type": "object",
        "properties": {
          "sheetLengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sheetWidthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "roundUpToSheet": {
            "type": "boolean"
          }
        }
      },
      "MatrixImportResult": {
        "required": [
          "pages",
          "groupsTouched",
          "entriesUpserted",
          "unmappedPageGroups",
          "log"
        ],
        "type": "object",
        "properties": {
          "pages": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "groupsTouched": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "entriesUpserted": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unmappedPageGroups": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "log": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "NestOffcutDto": {
        "type": "object",
        "properties": {
          "sheetIndex": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "x": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "y": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "heightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "areaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "NestOrderRequestDto": {
        "type": "object",
        "properties": {
          "sheetLengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sheetWidthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "kerfMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "allowRotation": {
            "type": "boolean"
          },
          "minOffcutLengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "minOffcutWidthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "NestPartDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "heightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "NestPlacementDto": {
        "type": "object",
        "properties": {
          "partId": {
            "type": "string"
          },
          "sheetIndex": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "x": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "y": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "heightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "rotated": {
            "type": "boolean"
          }
        }
      },
      "NestRequestDto": {
        "type": "object",
        "properties": {
          "sheetWidthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sheetHeightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "kerfMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "allowRotation": {
            "type": "boolean"
          },
          "minOffcutWidthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "minOffcutHeightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "parts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NestPartDto"
            }
          }
        }
      },
      "NestResultDto": {
        "type": "object",
        "properties": {
          "sheetCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sheetWidthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sheetHeightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "placements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NestPlacementDto"
            }
          },
          "unplaced": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NestUnplacedDto"
            }
          },
          "offcuts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NestOffcutDto"
            }
          },
          "offcutAreaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "usedAreaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "sheetAreaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "totalSheetAreaSqm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "utilizationPercent": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "NestUnplacedDto": {
        "type": "object",
        "properties": {
          "partId": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "OneCCalcItem": {
        "type": "object",
        "properties": {
          "lineId": {
            "type": "string"
          },
          "productType": {
            "type": "string"
          },
          "nomenclatureKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "decorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "baseCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "facingCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "thicknessMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "options": {
            "$ref": "#/components/schemas/OneCItemOptions"
          },
          "contour": {
            "$ref": "#/components/schemas/OneCContour"
          },
          "works": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCWork"
            }
          }
        }
      },
      "OneCCalcOrderRequest": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "externalNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "customer": {
            "$ref": "#/components/schemas/OneCCustomer"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCCalcItem"
            }
          },
          "delivery": {
            "$ref": "#/components/schemas/OneCDelivery"
          },
          "comment": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "OneCContour": {
        "type": "object",
        "properties": {
          "edges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCEdge"
            }
          },
          "corners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCCorner"
            }
          },
          "cutouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCCutout"
            }
          },
          "holes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCHole"
            }
          },
          "grooves": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCGroove"
            }
          },
          "faceLaminations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OneCFaceLamination"
            }
          }
        }
      },
      "OneCCorner": {
        "type": "object",
        "properties": {
          "position": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "radiusMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "legAMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "legBMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "OneCCustomer": {
        "type": "object",
        "properties": {
          "code": {
            "type": [
              "null",
              "string"
            ]
          },
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "priceKind": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "OneCCutout": {
        "type": "object",
        "properties": {
          "shape": {
            "type": "string"
          },
          "xMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "yMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "diameterMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "cornerRadiusMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "OneCDelivery": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string"
          },
          "address": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "OneCEdge": {
        "type": "object",
        "properties": {
          "side": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "materialCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "curved": {
            "type": "boolean"
          },
          "joint": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "OneCFaceLamination": {
        "type": "object",
        "properties": {
          "face": {
            "type": "string"
          }
        }
      },
      "OneCGroove": {
        "type": "object",
        "properties": {
          "side": {
            "type": "string"
          },
          "face": {
            "type": "string"
          },
          "offsetMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "depthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "OneCHole": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "xMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "yMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "diameterMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "OneCItemOptions": {
        "type": "object",
        "properties": {
          "roundings": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "additionalZaval": {
            "type": "boolean"
          },
          "reverseColorSameAsFront": {
            "type": "boolean"
          },
          "variant": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "OneCWork": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "OrderDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "number": {
            "type": "string"
          },
          "productionNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "statusName": {
            "type": "string"
          },
          "allowedTransitions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatus"
            }
          },
          "isEditable": {
            "type": "boolean"
          },
          "isManagerEditable": {
            "type": "boolean"
          },
          "isDeletable": {
            "type": "boolean"
          },
          "comment": {
            "type": [
              "null",
              "string"
            ]
          },
          "internalComment": {
            "type": [
              "null",
              "string"
            ]
          },
          "customerId": {
            "type": "string",
            "format": "uuid"
          },
          "customerName": {
            "type": "string"
          },
          "priceGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "currency": {
            "type": "string"
          },
          "itemsTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "worksTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "materialTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "surchargeTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "weightKg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "deliveryAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "submittedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "approvedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "plannedReadyAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "paidAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemDto"
            }
          },
          "material": {
            "$ref": "#/components/schemas/MaterialUsageDto"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatusChangeDto"
            }
          }
        }
      },
      "OrderItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "configuration": {
            "$ref": "#/components/schemas/ProductConfigurationDto"
          },
          "contour": {
            "$ref": "#/components/schemas/PartContourDto"
          },
          "specification": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/SpecificationResultDto"
              }
            ]
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lineTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "pricingModel": {
            "$ref": "#/components/schemas/ItemPricingModel"
          },
          "worksIncludedInPrice": {
            "type": "boolean"
          },
          "priceNote": {
            "type": [
              "null",
              "string"
            ]
          },
          "blankCost": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "surcharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedPricingRuleDto"
            }
          },
          "surchargeTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "works": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DerivedWorkLineDto"
            }
          }
        }
      },
      "OrderItemRequestDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "title": {
            "type": "string"
          },
          "configuration": {
            "$ref": "#/components/schemas/ProductConfigurationDto"
          },
          "contour": {
            "$ref": "#/components/schemas/PartContourDto"
          }
        }
      },
      "OrderStatus": {
        "type": "integer"
      },
      "OrderStatusChangeDto": {
        "type": "object",
        "properties": {
          "fromStatus": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "toStatus": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "statusName": {
            "type": "string"
          },
          "changedBy": {
            "type": "string"
          },
          "comment": {
            "type": [
              "null",
              "string"
            ]
          },
          "changedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "OrderSummaryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "number": {
            "type": "string"
          },
          "productionNumber": {
            "type": [
              "null",
              "string"
            ]
          },
          "customerName": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "statusName": {
            "type": "string"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "currency": {
            "type": "string"
          },
          "itemCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "comment": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "ParseCsvRequestDto": {
        "type": "object",
        "properties": {
          "csv": {
            "type": "string"
          }
        }
      },
      "ParseCsvResponseDto": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemRequestDto"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PartContourDto": {
        "type": "object",
        "properties": {
          "edges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EdgeBandingDto"
            }
          },
          "corners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CornerTreatmentDto"
            }
          },
          "cutouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CutoutDto"
            }
          },
          "grooves": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrooveDto"
            }
          },
          "holes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HoleDto"
            }
          },
          "faceLaminations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FaceLaminationDto"
            }
          }
        }
      },
      "PartEdgeSide": {
        "type": "integer"
      },
      "PartFace": {
        "type": "integer"
      },
      "PartSpecDto": {
        "type": "object",
        "properties": {
          "partId": {
            "type": "string"
          },
          "kind": {
            "$ref": "#/components/schemas/ProductKind"
          },
          "decorGroupId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "edgePriceTier": {
            "type": [
              "null",
              "string"
            ]
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "thicknessMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "variant": {
            "type": [
              "null",
              "string"
            ]
          },
          "contour": {
            "$ref": "#/components/schemas/PartContourDto"
          },
          "baseMaterialCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "moistureResistantBase": {
            "type": "boolean"
          }
        }
      },
      "ProductConfigurationDto": {
        "type": "object",
        "properties": {
          "kind": {
            "$ref": "#/components/schemas/ProductKind"
          },
          "pricingModel": {
            "$ref": "#/components/schemas/ItemPricingModel"
          },
          "productTypeKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "column": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "baseMaterial": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "treatment": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "roundings": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "additionalZaval": {
            "type": "boolean"
          },
          "reverseColorSameAsFront": {
            "type": "boolean"
          },
          "materialId": {
            "type": "string",
            "format": "uuid"
          },
          "decorGroupId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "decorCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "frontCoatingId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "backCoatingId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "jointTypeId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "heightMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "variant": {
            "type": [
              "null",
              "string"
            ]
          },
          "options": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "hasLayout": {
            "type": "boolean"
          },
          "layoutXMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "layoutZMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "layoutRotationYDeg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "layoutVertical": {
            "type": "boolean"
          },
          "layoutRollDeg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "layoutElevationMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "ProductKind": {
        "type": "integer"
      },
      "ProductTypeDto": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "pricingModel": {
            "type": "string"
          },
          "column": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "baseMaterial": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "treatment": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "vertical": {
            "type": "boolean"
          },
          "rotationYDeg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "rollDeg": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "elevationMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "thicknessMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "kind": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "materialName": {
            "type": [
              "null",
              "string"
            ]
          },
          "coatingName": {
            "type": [
              "null",
              "string"
            ]
          },
          "allowedEdgeKinds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "allowEuroJoint": {
            "type": "boolean"
          },
          "allowCutouts": {
            "type": "boolean"
          },
          "allowCornerProcessing": {
            "type": "boolean"
          },
          "allowCurvilinear": {
            "type": "boolean"
          }
        }
      },
      "RegisterRequestDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "companyName": {
            "type": "string"
          }
        }
      },
      "SaveOrderRequestDto": {
        "type": "object",
        "properties": {
          "comment": {
            "type": [
              "null",
              "string"
            ]
          },
          "deliveryMethod": {
            "$ref": "#/components/schemas/DeliveryMethod"
          },
          "deliveryAddress": {
            "type": [
              "null",
              "string"
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemRequestDto"
            }
          },
          "material": {
            "$ref": "#/components/schemas/MaterialUsageOptionsDto"
          }
        }
      },
      "ServiceImportResult": {
        "required": [
          "added",
          "updated",
          "unchanged",
          "skipped",
          "priceChanges",
          "log"
        ],
        "type": "object",
        "properties": {
          "added": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "updated": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "unchanged": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "skipped": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "priceChanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServicePriceChange"
            }
          },
          "log": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "needsConfirmation": {
            "type": "boolean"
          }
        }
      },
      "ServiceLineRequestDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "ServiceLineResultDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "price": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lineTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "ServicePriceChange": {
        "required": [
          "name",
          "oldPrice",
          "newPrice"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "oldPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "newPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "ServicesCalcRequestDto": {
        "type": "object",
        "properties": {
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceLineRequestDto"
            }
          }
        }
      },
      "ServicesCalcResponseDto": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceLineResultDto"
            }
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "SizeCalcRequestDto": {
        "type": "object",
        "properties": {
          "decorGroupId": {
            "type": "string",
            "format": "uuid"
          },
          "column": {
            "$ref": "#/components/schemas/SizeProductColumn"
          },
          "widthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "lengthMm": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "roundings": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "additionalZaval": {
            "type": "boolean"
          }
        }
      },
      "SizeCalcResponseDto": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "basePrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "matchedWidthRange": {
            "type": [
              "null",
              "string"
            ]
          },
          "matchedLengthRange": {
            "type": [
              "null",
              "string"
            ]
          },
          "surcharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedRuleDto"
            }
          },
          "surchargeTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "calcSource": {
            "type": "string"
          }
        }
      },
      "SizeProductColumn": {
        "type": "integer"
      },
      "SpecificationLineResultDto": {
        "type": "object",
        "properties": {
          "kind": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "operation": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "quantity": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "price": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "amount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "inPrice": {
            "type": "boolean"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SpecificationResultDto": {
        "type": "object",
        "properties": {
          "nomenclatureCode": {
            "type": "string"
          },
          "nomenclatureName": {
            "type": "string"
          },
          "priceMethod": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SpecificationLineResultDto"
            }
          },
          "materialsTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "worksTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "priceListTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "unitPrice": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "priceMissing": {
            "type": "boolean"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TopDecorsDto": {
        "type": "object",
        "properties": {
          "groupKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "groupName": {
            "type": [
              "null",
              "string"
            ]
          },
          "decors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DecorUsageDto"
            }
          }
        }
      },
      "WorkDerivationRequestDto": {
        "type": "object",
        "properties": {
          "parts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartSpecDto"
            }
          },
          "material": {
            "$ref": "#/components/schemas/MaterialUsageOptionsDto"
          }
        }
      },
      "WorkDerivationResponseDto": {
        "type": "object",
        "properties": {
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DerivedWorkLineDto"
            }
          },
          "material": {
            "$ref": "#/components/schemas/MaterialUsageDto"
          },
          "hplOperationCodes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "worksTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "AmkConfigurator.Api"
    },
    {
      "name": "AdminCatalog"
    },
    {
      "name": "AdminImport"
    },
    {
      "name": "Auth"
    },
    {
      "name": "Catalog"
    },
    {
      "name": "Nesting"
    },
    {
      "name": "Orders"
    },
    {
      "name": "Pricing"
    }
  ]
}