{
  "openapi": "3.0.1",
  "info": {
    "title": "KERN ERP API",
    "version": "v1",
    "description": "The KERN ERP API lets your other applications read and write your KERN ERP data.\n\n**Sign in.** Create an API client under Settings → API & Integrations. Send its key with every call: `Authorization: Bearer kern_live_…`. OAuth clients exchange their client ID and secret at `POST /public/v1/oauth/token` (`grant_type=client_credentials`) for a 15-minute access token. Check your set-up with `GET /public/v1/me`.\n\n**Sandbox.** Sandbox keys (`kern_test_…`) call the same APIs on a copy of your company with sample data. Nothing there reaches your real data or anyone outside KERN, and sandbox calls don't count towards your plan.\n\n**Access.** Each call needs the client's scope for that screen (`erp.<module>.<resource>:read|write`), your plan must include the screen, and the client's acting role needs that screen's permission.\n\n**Writes** need an `Idempotency-Key` header. Repeat a request with the same key and body and you get the first answer back (`Idempotent-Replayed: true`) — nothing is done twice.\n\n**Limits.** Responses carry `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`. Over the limit you get 429 with `Retry-After`.\n\n**Responses** use one envelope: `{ \"status\": \"SUCCESS\", \"data\": … }`, or `{ \"status\": \"ERROR\", \"message\", \"code\", \"correlationId\" }`. Lists are paged (`page`, `size`) and return `content`, `totalElements`, `totalPages`. Quote `correlationId` (also the `X-Request-Id` header) when you contact support.\n\n**Versions.** This is v1. Fields may be added; nothing is removed or renamed without a new version (v2), announced in the changelog.\n"
  },
  "servers": [
    {
      "url": "https://kronex.codeverse.co/cedge",
      "description": "KERN ERP"
    }
  ],
  "security": [
    {
      "ApiKeyOrToken": []
    }
  ],
  "paths": {
    "/public/v1/masters/vendors": {
      "get": {
        "operationId": "erp.masters.vendors.list",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "vendors",
        "x-kern-screen-name": "Vendor & Customer",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List vendors and customers (paged; search, gstNo, vendorType)",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.vendors:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.vendors:read",
        "x-kern-screen": "MASTERS_VENDOR",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "Page size",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 15
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Filter by name (partial, case-insensitive)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "gstNo",
            "in": "query",
            "description": "Filter by GST number (partial, case-insensitive)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendorType",
            "in": "query",
            "description": "Filter by vendor type: VENDOR, CUSTOMER, VENDOR_CUSTOMER",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "default": "createdAt"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "description": "Sort direction: asc or desc",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseVendorDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.masters.vendors.create",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "vendors",
        "x-kern-screen-name": "Vendor & Customer",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a vendor or customer",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.vendors:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.vendors:write",
        "x-kern-screen": "MASTERS_VENDOR",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVendorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseVendorDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/masters/vendors/{id}": {
      "get": {
        "operationId": "erp.masters.vendors.get",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "vendors",
        "x-kern-screen-name": "Vendor & Customer",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one vendor or customer",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.vendors:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.vendors:read",
        "x-kern-screen": "MASTERS_VENDOR",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseVendorDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.masters.vendors.update",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "vendors",
        "x-kern-screen-name": "Vendor & Customer",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update a vendor or customer",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.vendors:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.vendors:write",
        "x-kern-screen": "MASTERS_VENDOR",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVendorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseVendorDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/masters/colors": {
      "get": {
        "operationId": "erp.masters.colors.list",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "colors",
        "x-kern-screen-name": "Color",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List colours",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.colors:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.colors:read",
        "x-kern-screen": "MASTERS_COLOR",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListColorMasterDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.masters.colors.create",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "colors",
        "x-kern-screen-name": "Color",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a colour",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.colors:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.colors:write",
        "x-kern-screen": "MASTERS_COLOR",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateColorMasterRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseColorMasterDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/masters/uoms": {
      "get": {
        "operationId": "erp.masters.uoms.list",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "uoms",
        "x-kern-screen-name": "Fabric Master",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List units of measure",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.uoms:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.uoms:read",
        "x-kern-screen": "MASTERS_FABRIC",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListUomsMasterDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/masters/sizes": {
      "get": {
        "operationId": "erp.masters.sizes.list",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "sizes",
        "x-kern-screen-name": "Product List",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List sizes",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.sizes:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.sizes:read",
        "x-kern-screen": "STYLE_MGMT_LIST",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListSizeMasterDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/masters/warehouses": {
      "get": {
        "operationId": "erp.masters.warehouses.list",
        "x-kern-module": "masters",
        "x-kern-module-name": "Masters",
        "x-kern-resource": "warehouses",
        "x-kern-screen-name": "Config & Settings",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List active warehouses",
        "tags": [
          "Masters"
        ],
        "description": "Scope: `erp.masters.warehouses:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.masters.warehouses:read",
        "x-kern-screen": "INV_MGMT_CONFIG",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListWarehouseDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/products/products": {
      "get": {
        "operationId": "erp.products.products.list",
        "x-kern-module": "products",
        "x-kern-module-name": "Products",
        "x-kern-resource": "products",
        "x-kern-screen-name": "Product List",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List products / styles (paged; search, category, status)",
        "tags": [
          "Products"
        ],
        "description": "Scope: `erp.products.products:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.products.products:read",
        "x-kern-screen": "STYLE_MGMT_LIST",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this category."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "excludeDraft",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "true leaves out drafts."
          },
          {
            "name": "dateFrom",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "dateTo",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "excludeIncompleteBom",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "true leaves out styles whose bill of materials isn't complete."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseProductListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.products.products.create",
        "x-kern-module": "products",
        "x-kern-module-name": "Products",
        "x-kern-resource": "products",
        "x-kern-screen-name": "Product List",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a product (one per colour given)",
        "tags": [
          "Products"
        ],
        "description": "Scope: `erp.products.products:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.products.products:write",
        "x-kern-screen": "STYLE_MGMT_LIST",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseCreateProductResultDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/products/products/{id}": {
      "get": {
        "operationId": "erp.products.products.get",
        "x-kern-module": "products",
        "x-kern-module-name": "Products",
        "x-kern-resource": "products",
        "x-kern-screen-name": "Product List",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one product with sizes, SKUs and BOM",
        "tags": [
          "Products"
        ],
        "description": "Scope: `erp.products.products:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.products.products:read",
        "x-kern-screen": "STYLE_MGMT_LIST",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseProductDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.products.products.update",
        "x-kern-module": "products",
        "x-kern-module-name": "Products",
        "x-kern-resource": "products",
        "x-kern-screen-name": "Product List",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update a product",
        "tags": [
          "Products"
        ],
        "description": "Scope: `erp.products.products:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.products.products:write",
        "x-kern-screen": "STYLE_MGMT_LIST",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseProductDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/products/products/categories": {
      "get": {
        "operationId": "erp.products.products.categories",
        "x-kern-module": "products",
        "x-kern-module-name": "Products",
        "x-kern-resource": "products",
        "x-kern-screen-name": "Product List",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List product categories",
        "tags": [
          "Products"
        ],
        "description": "Scope: `erp.products.products:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.products.products:read",
        "x-kern-screen": "STYLE_MGMT_LIST",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListString"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/products/products/{id}/status": {
      "put": {
        "operationId": "erp.products.products.status",
        "x-kern-module": "products",
        "x-kern-module-name": "Products",
        "x-kern-resource": "products",
        "x-kern-screen-name": "Product List",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Change a product's status (DRAFT / ACTIVE / HOLD / ARCHIVED)",
        "tags": [
          "Products"
        ],
        "description": "Scope: `erp.products.products:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.products.products:write",
        "x-kern-screen": "STYLE_MGMT_LIST",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductStatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/buyer-pos": {
      "get": {
        "operationId": "erp.sales.buyer_pos.list",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "buyer_pos",
        "x-kern-screen-name": "Buyer POs",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List Buyer POs (paged; status, search, vendorId)",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.buyer_pos:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.buyer_pos:read",
        "x-kern-screen": "SALES_BUYER_PO",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            },
            "description": "Items per page."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "vendorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this vendor / customer (id)."
          },
          {
            "name": "productId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this product / style (id)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseBuyerPoListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.sales.buyer_pos.create",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "buyer_pos",
        "x-kern-screen-name": "Buyer POs",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a Buyer PO (draft)",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.buyer_pos:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.buyer_pos:write",
        "x-kern-screen": "SALES_BUYER_PO",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveBuyerPoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBuyerPoHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/buyer-pos/{id}": {
      "get": {
        "operationId": "erp.sales.buyer_pos.get",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "buyer_pos",
        "x-kern-screen-name": "Buyer POs",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one Buyer PO with lines",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.buyer_pos:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.buyer_pos:read",
        "x-kern-screen": "SALES_BUYER_PO",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBuyerPoHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.sales.buyer_pos.update",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "buyer_pos",
        "x-kern-screen-name": "Buyer POs",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update a Buyer PO (draft / open / planned)",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.buyer_pos:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.buyer_pos:write",
        "x-kern-screen": "SALES_BUYER_PO",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveBuyerPoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBuyerPoHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/buyer-pos/{id}/finalize": {
      "post": {
        "operationId": "erp.sales.buyer_pos.finalize",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "buyer_pos",
        "x-kern-screen-name": "Buyer POs",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Finalise a draft Buyer PO (→ OPEN)",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.buyer_pos:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.buyer_pos:write",
        "x-kern-screen": "SALES_BUYER_PO",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBuyerPoHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/buyer-pos/{id}/cancel": {
      "post": {
        "operationId": "erp.sales.buyer_pos.cancel",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "buyer_pos",
        "x-kern-screen-name": "Buyer POs",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Cancel a Buyer PO",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.buyer_pos:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.buyer_pos:write",
        "x-kern-screen": "SALES_BUYER_PO",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBuyerPoHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/invoices": {
      "get": {
        "operationId": "erp.sales.invoices.list",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "invoices",
        "x-kern-screen-name": "Invoices",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List sales invoices (paged)",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.invoices:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.invoices:read",
        "x-kern-screen": "SALES_INVOICES",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this customer (id)."
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this invoice mode (EXPORT or DOMESTIC)."
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this source."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.sales.invoices.create",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "invoices",
        "x-kern-screen-name": "Invoices",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a draft sales invoice",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.invoices:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.invoices:write",
        "x-kern-screen": "SALES_INVOICES",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/invoices/{id}": {
      "get": {
        "operationId": "erp.sales.invoices.get",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "invoices",
        "x-kern-screen-name": "Invoices",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one sales invoice",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.invoices:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.invoices:read",
        "x-kern-screen": "SALES_INVOICES",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/invoices/{id}/issue": {
      "patch": {
        "operationId": "erp.sales.invoices.issue",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "invoices",
        "x-kern-screen-name": "Invoices",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Issue a sales invoice",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.invoices:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.invoices:write",
        "x-kern-screen": "SALES_INVOICES",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/sales/invoices/{id}/cancel": {
      "patch": {
        "operationId": "erp.sales.invoices.cancel",
        "x-kern-module": "sales",
        "x-kern-module-name": "Sales",
        "x-kern-resource": "invoices",
        "x-kern-screen-name": "Invoices",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Cancel a sales invoice",
        "tags": [
          "Sales"
        ],
        "description": "Scope: `erp.sales.invoices:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.sales.invoices:write",
        "x-kern-screen": "SALES_INVOICES",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/purchase-orders": {
      "get": {
        "operationId": "erp.procurement.purchase_orders.list",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "Purchase Orders",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List purchase orders (paged)",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.purchase_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.purchase_orders:read",
        "x-kern-screen": "PURCHASE_ORDERS",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "createdAt"
            },
            "description": "Field to sort by."
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc"
            },
            "description": "Sort direction: asc or desc."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "vendorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this vendor / customer (id)."
          },
          {
            "name": "poCategory",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this purchase-order category."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponsePurchaseOrderListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.procurement.purchase_orders.create",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "Purchase Orders",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a purchase order (draft)",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.purchase_orders:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.purchase_orders:write",
        "x-kern-screen": "PURCHASE_ORDERS",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePurchaseOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePurchaseOrderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/purchase-orders/{id}": {
      "get": {
        "operationId": "erp.procurement.purchase_orders.get",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "Purchase Orders",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one purchase order with lines",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.purchase_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.purchase_orders:read",
        "x-kern-screen": "PURCHASE_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePurchaseOrderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.procurement.purchase_orders.update",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "Purchase Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update a draft or rejected purchase order",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.purchase_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.purchase_orders:write",
        "x-kern-screen": "PURCHASE_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePurchaseOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePurchaseOrderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/purchase-orders/{id}/submit": {
      "patch": {
        "operationId": "erp.procurement.purchase_orders.submit",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "Purchase Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Submit a purchase order for approval",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.purchase_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.purchase_orders:write",
        "x-kern-screen": "PURCHASE_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePurchaseOrderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/purchase-orders/{id}/cancel": {
      "patch": {
        "operationId": "erp.procurement.purchase_orders.cancel",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "Purchase Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Cancel a purchase order",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.purchase_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.purchase_orders:write",
        "x-kern-screen": "PURCHASE_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePurchaseOrderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/grns": {
      "get": {
        "operationId": "erp.procurement.grns.list",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "grns",
        "x-kern-screen-name": "PO Receipts (GRN)",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List goods receipts (GRN, paged)",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.grns:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.grns:read",
        "x-kern-screen": "GRN",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "createdAt"
            },
            "description": "Field to sort by."
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc"
            },
            "description": "Sort direction: asc or desc."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseGrnListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.procurement.grns.create",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "grns",
        "x-kern-screen-name": "PO Receipts (GRN)",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a GRN (draft)",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.grns:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.grns:write",
        "x-kern-screen": "GRN",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveGrnRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseGrnDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/grns/{id}": {
      "get": {
        "operationId": "erp.procurement.grns.get",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "grns",
        "x-kern-screen-name": "PO Receipts (GRN)",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one GRN with lines",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.grns:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.grns:read",
        "x-kern-screen": "GRN",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseGrnDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/grns/receivable-pos": {
      "get": {
        "operationId": "erp.procurement.grns.receivable_pos",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "grns",
        "x-kern-screen-name": "PO Receipts (GRN)",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Purchase orders that can be received",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.grns:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.grns:read",
        "x-kern-screen": "GRN",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListReceivablePoDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/procurement/grns/{id}/post": {
      "patch": {
        "operationId": "erp.procurement.grns.post",
        "x-kern-module": "procurement",
        "x-kern-module-name": "Procurement",
        "x-kern-resource": "grns",
        "x-kern-screen-name": "PO Receipts (GRN)",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Post a GRN (adds the stock)",
        "tags": [
          "Procurement"
        ],
        "description": "Scope: `erp.procurement.grns:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.procurement.grns:write",
        "x-kern-screen": "GRN",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseGrnDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/packing-slips": {
      "get": {
        "operationId": "erp.packing.packing_slips.list",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "packing_slips",
        "x-kern-screen-name": "Packing Slip",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List packing slips (paged)",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.packing_slips:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.packing_slips:read",
        "x-kern-screen": "PACKING_SLIPS",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this customer (id)."
          },
          {
            "name": "sourceType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only slips made from this source."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.packing.packing_slips.create",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "packing_slips",
        "x-kern-screen-name": "Packing Slip",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a draft packing slip",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.packing_slips:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.packing_slips:write",
        "x-kern-screen": "PACKING_SLIPS",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/packing-slips/{id}": {
      "get": {
        "operationId": "erp.packing.packing_slips.get",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "packing_slips",
        "x-kern-screen-name": "Packing Slip",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one packing slip",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.packing_slips:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.packing_slips:read",
        "x-kern-screen": "PACKING_SLIPS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/packing-slips/{id}/submit": {
      "patch": {
        "operationId": "erp.packing.packing_slips.submit",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "packing_slips",
        "x-kern-screen-name": "Packing Slip",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Submit a packing slip",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.packing_slips:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.packing_slips:write",
        "x-kern-screen": "PACKING_SLIPS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/packing-slips/{id}/ship": {
      "patch": {
        "operationId": "erp.packing.packing_slips.ship",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "packing_slips",
        "x-kern-screen-name": "Packing Slip",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Ship a packing slip (deducts finished goods)",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.packing_slips:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.packing_slips:write",
        "x-kern-screen": "PACKING_SLIPS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShipRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/inventory/rm-stock": {
      "get": {
        "operationId": "erp.inventory.rm_stock.list",
        "x-kern-module": "inventory",
        "x-kern-module-name": "Inventories",
        "x-kern-resource": "rm_stock",
        "x-kern-screen-name": "RM Masters & Stock",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Raw-material stock (paged)",
        "tags": [
          "Inventory"
        ],
        "description": "Scope: `erp.inventory.rm_stock:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.inventory.rm_stock:read",
        "x-kern-screen": "INV_MGMT_RM_STOCK",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page index (0-based)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "Page size",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "stockStatus",
            "in": "query",
            "description": "OK | LOW | OUT",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rmTypeId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only records for this rm type (id)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseRmStockDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/inventory/rm-stock/{id}": {
      "get": {
        "operationId": "erp.inventory.rm_stock.get",
        "x-kern-module": "inventory",
        "x-kern-module-name": "Inventories",
        "x-kern-resource": "rm_stock",
        "x-kern-screen-name": "RM Masters & Stock",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Stock of one raw material",
        "tags": [
          "Inventory"
        ],
        "description": "Scope: `erp.inventory.rm_stock:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.inventory.rm_stock:read",
        "x-kern-screen": "INV_MGMT_RM_STOCK",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseRmStockDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/inventory/fabric-stock": {
      "get": {
        "operationId": "erp.inventory.fabric_stock.list",
        "x-kern-module": "inventory",
        "x-kern-module-name": "Inventories",
        "x-kern-resource": "fabric_stock",
        "x-kern-screen-name": "Fabric Stock",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Fabric lots in stock (paged)",
        "tags": [
          "Inventory"
        ],
        "description": "Scope: `erp.inventory.fabric_stock:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.inventory.fabric_stock:read",
        "x-kern-screen": "INV_MGMT_FABRIC_STOCK",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            },
            "description": "Items per page."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "fabricId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only records for this fabric (id)."
          },
          {
            "name": "supplierId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only records for this supplier (id)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseFabricLotDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/inventory/fabric-stock/{id}": {
      "get": {
        "operationId": "erp.inventory.fabric_stock.get",
        "x-kern-module": "inventory",
        "x-kern-module-name": "Inventories",
        "x-kern-resource": "fabric_stock",
        "x-kern-screen-name": "Fabric Stock",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "One fabric lot with its rolls",
        "tags": [
          "Inventory"
        ],
        "description": "Scope: `erp.inventory.fabric_stock:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.inventory.fabric_stock:read",
        "x-kern-screen": "INV_MGMT_FABRIC_STOCK",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseFabricLotDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/inventory/fg-stock": {
      "get": {
        "operationId": "erp.inventory.fg_stock.list",
        "x-kern-module": "inventory",
        "x-kern-module-name": "Inventories",
        "x-kern-resource": "fg_stock",
        "x-kern-screen-name": "Finished Goods Stock",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Finished-goods stock by SKU and warehouse (paged)",
        "tags": [
          "Inventory"
        ],
        "description": "Scope: `erp.inventory.fg_stock:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.inventory.fg_stock:read",
        "x-kern-screen": "INV_MGMT_FG_STOCK",
        "parameters": [
          {
            "name": "warehouseId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this warehouse (id)."
          },
          {
            "name": "productId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this product / style (id)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            },
            "description": "Items per page."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseFgInventoryDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/production-orders": {
      "get": {
        "operationId": "erp.production.production_orders.list",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "production_orders",
        "x-kern-screen-name": "Production Orders",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List production orders (paged; status, orderType, buyerId, styleCode, delivery dates)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.production_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.production_orders:read",
        "x-kern-screen": "PRODUCTION_ORDERS",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            },
            "description": "Items per page."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "orderType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this order type."
          },
          {
            "name": "buyerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this buyer (id)."
          },
          {
            "name": "locationId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this location / factory (id)."
          },
          {
            "name": "styleProductId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this style (product id)."
          },
          {
            "name": "styleCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this style code."
          },
          {
            "name": "deliveryFrom",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Delivery date from (YYYY-MM-DD)."
          },
          {
            "name": "deliveryTo",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Delivery date up to (YYYY-MM-DD)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseProductionOrderListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.production.production_orders.create",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "production_orders",
        "x-kern-screen-name": "Production Orders",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a production order (DRAFT)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.production_orders:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.production_orders:write",
        "x-kern-screen": "PRODUCTION_ORDERS",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductionOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseProductionOrderDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/production-orders/{id}": {
      "get": {
        "operationId": "erp.production.production_orders.get",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "production_orders",
        "x-kern-screen-name": "Production Orders",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one production order (lines, buyer POs, TnA)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.production_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.production_orders:read",
        "x-kern-screen": "PRODUCTION_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseProductionOrderDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.production.production_orders.update",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "production_orders",
        "x-kern-screen-name": "Production Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update a DRAFT production order",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.production_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.production_orders:write",
        "x-kern-screen": "PRODUCTION_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductionOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseProductionOrderDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/production-orders/{id}/traceability": {
      "get": {
        "operationId": "erp.production.production_orders.traceability",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "production_orders",
        "x-kern-screen-name": "Production Orders",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Full traceability of a production order: lines, buyer POs, TnA steps",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.production_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.production_orders:read",
        "x-kern-screen": "PRODUCTION_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseProductionOrderDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/production-orders/{id}/activate": {
      "patch": {
        "operationId": "erp.production.production_orders.activate",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "production_orders",
        "x-kern-screen-name": "Production Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Activate a production order (DRAFT → ACTIVE)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.production_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.production_orders:write",
        "x-kern-screen": "PRODUCTION_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseProductionOrderDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/production-orders/{id}/cancel": {
      "patch": {
        "operationId": "erp.production.production_orders.cancel",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "production_orders",
        "x-kern-screen-name": "Production Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Cancel a production order (DRAFT or ACTIVE)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.production_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.production_orders:write",
        "x-kern-screen": "PRODUCTION_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelProductionOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseVoid"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/work-orders": {
      "get": {
        "operationId": "erp.production.work_orders.list",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "work_orders",
        "x-kern-screen-name": "Work Orders",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List work orders (paged; status, search, dates, styleProductId)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.work_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.work_orders:read",
        "x-kern-screen": "WORK_ORDERS",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "createdAt"
            },
            "description": "Field to sort by."
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc"
            },
            "description": "Sort direction: asc or desc."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "dateFrom",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "dateTo",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "styleProductId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this style (product id)."
          },
          {
            "name": "jobWork",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "true: only work orders with job work (outside processing)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.production.work_orders.create",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "work_orders",
        "x-kern-screen-name": "Work Orders",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a work order from ACTIVE production orders of one style + colour (issue=true issues it at once)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.work_orders:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.work_orders:write",
        "x-kern-screen": "WORK_ORDERS",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/work-orders/{id}": {
      "get": {
        "operationId": "erp.production.work_orders.get",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "work_orders",
        "x-kern-screen-name": "Work Orders",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one work order (production orders, buyer POs, sizes, BOM, processes)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.work_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.work_orders:read",
        "x-kern-screen": "WORK_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/work-orders/{id}/issue": {
      "patch": {
        "operationId": "erp.production.work_orders.issue",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "work_orders",
        "x-kern-screen-name": "Work Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Issue a DRAFT work order (→ ACTIVE)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.work_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.work_orders:write",
        "x-kern-screen": "WORK_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/work-orders/{id}/cancel": {
      "patch": {
        "operationId": "erp.production.work_orders.cancel",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "work_orders",
        "x-kern-screen-name": "Work Orders",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Cancel a work order",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.work_orders:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.work_orders:write",
        "x-kern-screen": "WORK_ORDERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/runs": {
      "get": {
        "operationId": "erp.production.runs.list",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "runs",
        "x-kern-screen-name": "Production Runs",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List production runs (paged; status, search)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.runs:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.runs:read",
        "x-kern-screen": "PRODUCTION_RUNS",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/runs/{id}": {
      "get": {
        "operationId": "erp.production.runs.get",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "runs",
        "x-kern-screen-name": "Production Runs",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one production run (stages, per-size good/loss, daily entries)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.runs:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.runs:read",
        "x-kern-screen": "PRODUCTION_RUNS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/runs/stages/{runStageId}/available-input": {
      "get": {
        "operationId": "erp.production.runs.available_input",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "runs",
        "x-kern-screen-name": "Production Runs",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Available input per size for a stage (from upstream good output)",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.runs:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.runs:read",
        "x-kern-screen": "PRODUCTION_RUNS",
        "parameters": [
          {
            "name": "runStageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseAvailableInput"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/runs/stages/{runStageId}/daily-entries": {
      "post": {
        "operationId": "erp.production.runs.daily_entry",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "runs",
        "x-kern-screen-name": "Production Runs",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Record a day's output / seconds / damage / reject for a stage",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.runs:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.runs:write",
        "x-kern-screen": "PRODUCTION_RUNS",
        "parameters": [
          {
            "name": "runStageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddDailyEntryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/production/runs/{id}/complete": {
      "patch": {
        "operationId": "erp.production.runs.complete",
        "x-kern-module": "production",
        "x-kern-module-name": "Production",
        "x-kern-resource": "runs",
        "x-kern-screen-name": "Production Runs",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Complete a production run",
        "tags": [
          "Production"
        ],
        "description": "Scope: `erp.production.runs:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.production.runs:write",
        "x-kern-screen": "PRODUCTION_RUNS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/transfers": {
      "get": {
        "operationId": "erp.stores.transfers.list",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "transfers",
        "x-kern-screen-name": "Stock Transfers",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List transfer notes between warehouses (paged; status, search)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.transfers:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.transfers:read",
        "x-kern-screen": "STORES_TRANSFERS",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.stores.transfers.create",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "transfers",
        "x-kern-screen-name": "Stock Transfers",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a transfer note (DRAFT; dispatch=true dispatches at once)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.transfers:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.transfers:write",
        "x-kern-screen": "STORES_TRANSFERS",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/transfers/{id}": {
      "get": {
        "operationId": "erp.stores.transfers.get",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "transfers",
        "x-kern-screen-name": "Stock Transfers",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one transfer note (lines, available qty, audit trail)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.transfers:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.transfers:read",
        "x-kern-screen": "STORES_TRANSFERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.stores.transfers.update",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "transfers",
        "x-kern-screen-name": "Stock Transfers",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update a DRAFT transfer note",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.transfers:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.transfers:write",
        "x-kern-screen": "STORES_TRANSFERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/transfers/{id}/dispatch": {
      "patch": {
        "operationId": "erp.stores.transfers.dispatch",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "transfers",
        "x-kern-screen-name": "Stock Transfers",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Dispatch (DRAFT → IN_TRANSIT; stock leaves the source)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.transfers:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.transfers:write",
        "x-kern-screen": "STORES_TRANSFERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/transfers/{id}/receive": {
      "post": {
        "operationId": "erp.stores.transfers.receive",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "transfers",
        "x-kern-screen-name": "Stock Transfers",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Receive (IN_TRANSIT → RECEIVED; stock arrives at the destination)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.transfers:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.transfers:write",
        "x-kern-screen": "STORES_TRANSFERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/transfers/{id}/cancel": {
      "patch": {
        "operationId": "erp.stores.transfers.cancel",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "transfers",
        "x-kern-screen-name": "Stock Transfers",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Cancel a DRAFT transfer note",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.transfers:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.transfers:write",
        "x-kern-screen": "STORES_TRANSFERS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/stock-issues": {
      "get": {
        "operationId": "erp.stores.stock_issues.list",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "stock_issues",
        "x-kern-screen-name": "Stock Issue",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List stock issue notes (paged; status, search)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.stock_issues:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.stock_issues:read",
        "x-kern-screen": "STORES_STOCK_ISSUE",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.stores.stock_issues.create",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "stock_issues",
        "x-kern-screen-name": "Stock Issue",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a stock issue note to a work order / production order (DRAFT, or submitted)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.stock_issues:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.stock_issues:write",
        "x-kern-screen": "STORES_STOCK_ISSUE",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/stock-issues/{id}": {
      "get": {
        "operationId": "erp.stores.stock_issues.get",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "stock_issues",
        "x-kern-screen-name": "Stock Issue",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one stock issue note (lines, available / required qty, audit trail)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.stock_issues:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.stock_issues:read",
        "x-kern-screen": "STORES_STOCK_ISSUE",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.stores.stock_issues.update",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "stock_issues",
        "x-kern-screen-name": "Stock Issue",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update a DRAFT stock issue note",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.stock_issues:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.stock_issues:write",
        "x-kern-screen": "STORES_STOCK_ISSUE",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/stock-issues/{id}/approve": {
      "patch": {
        "operationId": "erp.stores.stock_issues.approve",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "stock_issues",
        "x-kern-screen-name": "Stock Issue",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Approve a submitted stock issue (deducts the stock)",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.stock_issues:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.stock_issues:write",
        "x-kern-screen": "STORES_STOCK_ISSUE",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/stores/stock-issues/{id}/cancel": {
      "patch": {
        "operationId": "erp.stores.stock_issues.cancel",
        "x-kern-module": "stores",
        "x-kern-module-name": "Stores",
        "x-kern-resource": "stock_issues",
        "x-kern-screen-name": "Stock Issue",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Cancel a DRAFT stock issue note",
        "tags": [
          "Stores"
        ],
        "description": "Scope: `erp.stores.stock_issues:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.stores.stock_issues:write",
        "x-kern-screen": "STORES_STOCK_ISSUE",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/quality/inspections": {
      "get": {
        "operationId": "erp.quality.inspections.list",
        "x-kern-module": "quality",
        "x-kern-module-name": "Quality",
        "x-kern-resource": "inspections",
        "x-kern-screen-name": "Inspections",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List quality inspections (paged; stage, buyer, style, line, inspector, dates)",
        "tags": [
          "Quality"
        ],
        "description": "Scope: `erp.quality.inspections:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.quality.inspections:read",
        "x-kern-screen": "QUALITY_INSPECTIONS",
        "parameters": [
          {
            "name": "stage",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this stage."
          },
          {
            "name": "buyerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this buyer (id)."
          },
          {
            "name": "styleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only records for this style (id)."
          },
          {
            "name": "lineId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this production line (id)."
          },
          {
            "name": "inspectorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this inspector (employee id)."
          },
          {
            "name": "shift",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only this shift."
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 15
            },
            "description": "Items per page."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.quality.inspections.create",
        "x-kern-module": "quality",
        "x-kern-module-name": "Quality",
        "x-kern-resource": "inspections",
        "x-kern-screen-name": "Inspections",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Record an inspection (INLINE / END_LINE / FINAL_AQL)",
        "tags": [
          "Quality"
        ],
        "description": "Scope: `erp.quality.inspections:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.quality.inspections:write",
        "x-kern-screen": "QUALITY_INSPECTIONS",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/quality/inspections/{id}": {
      "get": {
        "operationId": "erp.quality.inspections.get",
        "x-kern-module": "quality",
        "x-kern-module-name": "Quality",
        "x-kern-resource": "inspections",
        "x-kern-screen-name": "Inspections",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one inspection (header, operator rows, defect lines)",
        "tags": [
          "Quality"
        ],
        "description": "Scope: `erp.quality.inspections:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.quality.inspections:read",
        "x-kern-screen": "QUALITY_INSPECTIONS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "put": {
        "operationId": "erp.quality.inspections.update",
        "x-kern-module": "quality",
        "x-kern-module-name": "Quality",
        "x-kern-resource": "inspections",
        "x-kern-screen-name": "Inspections",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Update an inspection",
        "tags": [
          "Quality"
        ],
        "description": "Scope: `erp.quality.inspections:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.quality.inspections:write",
        "x-kern-screen": "QUALITY_INSPECTIONS",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/quality/reports/dhu": {
      "get": {
        "operationId": "erp.quality.reports.dhu",
        "x-kern-module": "quality",
        "x-kern-module-name": "Quality",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "DHU (defects per 100 units) by date and line",
        "tags": [
          "Quality"
        ],
        "description": "Scope: `erp.quality.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.quality.reports:read",
        "x-kern-screen": "QUALITY_REPORTS",
        "parameters": [
          {
            "name": "lineId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this production line (id)."
          },
          {
            "name": "styleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only records for this style (id)."
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDhuReport"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/quality/reports/top-defects": {
      "get": {
        "operationId": "erp.quality.reports.top_defects",
        "x-kern-module": "quality",
        "x-kern-module-name": "Quality",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Top defects over a period (Pareto)",
        "tags": [
          "Quality"
        ],
        "description": "Scope: `erp.quality.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.quality.reports:read",
        "x-kern-screen": "QUALITY_REPORTS",
        "parameters": [
          {
            "name": "lineId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this production line (id)."
          },
          {
            "name": "styleId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only records for this style (id)."
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListTopDefectRow"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/boxes": {
      "get": {
        "operationId": "erp.packing.boxes.list",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "boxes",
        "x-kern-screen-name": "Boxes",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List boxes",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.boxes:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.boxes:read",
        "x-kern-screen": "PACKING_BOXES",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            },
            "description": "Items per page."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseBoxListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      },
      "post": {
        "operationId": "erp.packing.boxes.create",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "boxes",
        "x-kern-screen-name": "Boxes",
        "x-kern-access": "write",
        "x-kern-permission": "create",
        "summary": "Create a box (size + warehouse)",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.boxes:write` (or the module's `*:write`). The acting role needs this screen's create permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.boxes:write",
        "x-kern-screen": "PACKING_BOXES",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBoxRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBoxDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/boxes/{id}": {
      "get": {
        "operationId": "erp.packing.boxes.get",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "boxes",
        "x-kern-screen-name": "Boxes",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one box (contents, scan / seal trail)",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.boxes:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.boxes:read",
        "x-kern-screen": "PACKING_BOXES",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBoxDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/boxes/{id}/lines": {
      "post": {
        "operationId": "erp.packing.boxes.add_line",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "boxes",
        "x-kern-screen-name": "Boxes",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Add a unit to a box by SKU id or scanned barcode",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.boxes:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.boxes:write",
        "x-kern-screen": "PACKING_BOXES",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddLineRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBoxDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/boxes/{id}/seal": {
      "patch": {
        "operationId": "erp.packing.boxes.seal",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "boxes",
        "x-kern-screen-name": "Boxes",
        "x-kern-access": "write",
        "x-kern-permission": "edit",
        "summary": "Seal a box (reserves the finished goods)",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.boxes:write` (or the module's `*:write`). The acting role needs this screen's edit permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.boxes:write",
        "x-kern-screen": "PACKING_BOXES",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "Any unique text up to 120 characters (e.g. a UUID). A retry with the same key and body returns the first answer instead of doing the work twice.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SealBoxRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseBoxDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "409": {
            "$ref": "#/components/responses/E409"
          },
          "413": {
            "$ref": "#/components/responses/E413"
          },
          "422": {
            "$ref": "#/components/responses/E422"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/master-boxes": {
      "get": {
        "operationId": "erp.packing.master_boxes.list",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "master_boxes",
        "x-kern-screen-name": "Master Boxes",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List master boxes (cartons)",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.master_boxes:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.master_boxes:read",
        "x-kern-screen": "PACKING_MASTER_BOXES",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            },
            "description": "Items per page."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseMasterBoxListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/packing/master-boxes/{id}": {
      "get": {
        "operationId": "erp.packing.master_boxes.get",
        "x-kern-module": "packing",
        "x-kern-module-name": "Packing",
        "x-kern-resource": "master_boxes",
        "x-kern-screen-name": "Master Boxes",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one master box (boxes, loose SKUs, shipping)",
        "tags": [
          "Packing"
        ],
        "description": "Scope: `erp.packing.master_boxes:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.packing.master_boxes:read",
        "x-kern-screen": "PACKING_MASTER_BOXES",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseMasterBoxDetailDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/yarn-fabric/purchase-orders": {
      "get": {
        "operationId": "erp.yarn_fabric.purchase_orders.list",
        "x-kern-module": "yarn_fabric",
        "x-kern-module-name": "Yarn to Fabric Process",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "PO List",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List yarn / greige fabric purchase orders (paged)",
        "tags": [
          "Yarn fabric"
        ],
        "description": "Scope: `erp.yarn_fabric.purchase_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.yarn_fabric.purchase_orders:read",
        "x-kern-screen": "YFP_PO_LIST",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "createdAt"
            },
            "description": "Field to sort by."
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc"
            },
            "description": "Sort direction: asc or desc."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          },
          {
            "name": "vendorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this vendor / customer (id)."
          },
          {
            "name": "dateFrom",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "dateTo",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponsePoListDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/yarn-fabric/purchase-orders/{id}": {
      "get": {
        "operationId": "erp.yarn_fabric.purchase_orders.get",
        "x-kern-module": "yarn_fabric",
        "x-kern-module-name": "Yarn to Fabric Process",
        "x-kern-resource": "purchase_orders",
        "x-kern-screen-name": "PO List",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one yarn / greige fabric purchase order",
        "tags": [
          "Yarn fabric"
        ],
        "description": "Scope: `erp.yarn_fabric.purchase_orders:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.yarn_fabric.purchase_orders:read",
        "x-kern-screen": "YFP_PO_LIST",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePoHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/yarn-fabric/purchase-orders/{poId}/grns": {
      "get": {
        "operationId": "erp.yarn_fabric.grns.list",
        "x-kern-module": "yarn_fabric",
        "x-kern-module-name": "Yarn to Fabric Process",
        "x-kern-resource": "grns",
        "x-kern-screen-name": "GRN",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Goods receipts of one yarn / fabric purchase order (newest first)",
        "tags": [
          "Yarn fabric"
        ],
        "description": "Scope: `erp.yarn_fabric.grns:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.yarn_fabric.grns:read",
        "x-kern-screen": "YFP_PO_GRN",
        "parameters": [
          {
            "name": "poId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListGrnHeaderDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/payments/vendor-payments": {
      "get": {
        "operationId": "erp.payments.vendor_payments.list",
        "x-kern-module": "payments",
        "x-kern-module-name": "Payments",
        "x-kern-resource": "vendor_payments",
        "x-kern-screen-name": "Vendor Payments",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Payments made to vendors (all, or vendorId)",
        "tags": [
          "Payments"
        ],
        "description": "Scope: `erp.payments.vendor_payments:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.payments.vendor_payments:read",
        "x-kern-screen": "PAYMENTS_VENDOR",
        "parameters": [
          {
            "name": "vendorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this vendor / customer (id)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListPaymentDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/payments/vendor-payments/{id}": {
      "get": {
        "operationId": "erp.payments.vendor_payments.get",
        "x-kern-module": "payments",
        "x-kern-module-name": "Payments",
        "x-kern-resource": "vendor_payments",
        "x-kern-screen-name": "Vendor Payments",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one vendor payment (what it paid against)",
        "tags": [
          "Payments"
        ],
        "description": "Scope: `erp.payments.vendor_payments:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.payments.vendor_payments:read",
        "x-kern-screen": "PAYMENTS_VENDOR",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePaymentDTO"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/planning/line-plans": {
      "get": {
        "operationId": "erp.planning.line_plans.list",
        "x-kern-module": "planning",
        "x-kern-module-name": "Planning",
        "x-kern-resource": "line_plans",
        "x-kern-screen-name": "Line Planning",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "List line plans (paged; status, location, search)",
        "tags": [
          "Planning"
        ],
        "description": "Scope: `erp.planning.line_plans:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.planning.line_plans:read",
        "x-kern-screen": "LINE_PLANNING",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            },
            "description": "Page number, starting at 0."
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            },
            "description": "Items per page."
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "createdAt"
            },
            "description": "Field to sort by."
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "desc"
            },
            "description": "Sort direction: asc or desc."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only records with this status (see the record's status values)."
          },
          {
            "name": "locationId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this location / factory (id)."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search text (part of a name, number or code; not case-sensitive)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponsePageResponseListItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/planning/line-plans/{id}": {
      "get": {
        "operationId": "erp.planning.line_plans.get",
        "x-kern-module": "planning",
        "x-kern-module-name": "Planning",
        "x-kern-resource": "line_plans",
        "x-kern-screen-name": "Line Planning",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Get one line plan (entries per line, planned windows)",
        "tags": [
          "Planning"
        ],
        "description": "Scope: `erp.planning.line_plans:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.planning.line_plans:read",
        "x-kern-screen": "LINE_PLANNING",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseDetail"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/planning/capacity-report": {
      "get": {
        "operationId": "erp.planning.capacity.report",
        "x-kern-module": "planning",
        "x-kern-module-name": "Planning",
        "x-kern-resource": "capacity",
        "x-kern-screen-name": "Capacity Report",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Capacity and load: line / factory utilisation and late orders (from, to, locationId)",
        "tags": [
          "Planning"
        ],
        "description": "Scope: `erp.planning.capacity:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.planning.capacity:read",
        "x-kern-screen": "CAPACITY_REPORT",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "locationId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Only this location / factory (id)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseCapacityReport"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/iot/reports/parts-completed": {
      "get": {
        "operationId": "erp.iot.reports.parts_completed",
        "x-kern-module": "iot",
        "x-kern-module-name": "IoT Data Capture",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Machine data: parts completed vs required",
        "tags": [
          "Iot"
        ],
        "description": "Scope: `erp.iot.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.iot.reports:read",
        "x-kern-screen": "IOT_REPORTS",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListPartsCompletedRow"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/iot/reports/operator-efficiency": {
      "get": {
        "operationId": "erp.iot.reports.operator_efficiency",
        "x-kern-module": "iot",
        "x-kern-module-name": "IoT Data Capture",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Machine data: operator efficiency (earned vs actual minutes)",
        "tags": [
          "Iot"
        ],
        "description": "Scope: `erp.iot.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.iot.reports:read",
        "x-kern-screen": "IOT_REPORTS",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListOperatorEffRow"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/iot/reports/machine-utilization": {
      "get": {
        "operationId": "erp.iot.reports.machine_utilization",
        "x-kern-module": "iot",
        "x-kern-module-name": "IoT Data Capture",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Machine data: machine utilisation",
        "tags": [
          "Iot"
        ],
        "description": "Scope: `erp.iot.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.iot.reports:read",
        "x-kern-screen": "IOT_REPORTS",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListMachineUtilRow"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/iot/reports/line-balance": {
      "get": {
        "operationId": "erp.iot.reports.line_balance",
        "x-kern-module": "iot",
        "x-kern-module-name": "IoT Data Capture",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Machine data: line balance per operation",
        "tags": [
          "Iot"
        ],
        "description": "Scope: `erp.iot.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.iot.reports:read",
        "x-kern-screen": "IOT_REPORTS",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "From this date (YYYY-MM-DD), inclusive."
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Up to this date (YYYY-MM-DD), inclusive."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListLineBalanceRow"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/reports/reports": {
      "get": {
        "operationId": "erp.reports.reports.catalog",
        "x-kern-module": "reports",
        "x-kern-module-name": "Reports",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports Hub",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Reports you can run, by category",
        "tags": [
          "Reports"
        ],
        "description": "Scope: `erp.reports.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.reports.reports:read",
        "x-kern-screen": "REPORTS_HUB",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseListReportMeta"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/reports/reports/{id}/run": {
      "post": {
        "operationId": "erp.reports.reports.run",
        "x-kern-module": "reports",
        "x-kern-module-name": "Reports",
        "x-kern-resource": "reports",
        "x-kern-screen-name": "Reports Hub",
        "x-kern-access": "read",
        "x-kern-permission": "view",
        "summary": "Run a report (optional from / to); returns columns and rows (at most 5,000)",
        "tags": [
          "Reports"
        ],
        "description": "Scope: `erp.reports.reports:read` (or `:write`, or the module's `*`). The acting role needs this screen's view permission and the company's plan must include it.",
        "x-kern-scope": "erp.reports.reports:read",
        "x-kern-screen": "REPORTS_HUB",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The record's id."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseReportResult"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    },
    "/public/v1/changes": {
      "get": {
        "operationId": "erp.changes.feed.list",
        "x-kern-module": "changes",
        "x-kern-module-name": "Changes feed",
        "x-kern-resource": "feed",
        "x-kern-screen-name": "Everything you can read",
        "x-kern-access": "read",
        "summary": "Records created or changed since a time or cursor, across every resource this client can read",
        "tags": [
          "Changes"
        ],
        "description": "Any read scope. Each resource is included only if this client could read it with GET (scope, the company's plan and the acting role's view permission).",
        "x-kern-scope": "any",
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "description": "Start time, ISO 8601 with a time zone (e.g. 2026-10-01T00:00:00Z); records changed at or after it. Use for the first call only.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "nextCursor from the previous response; returns only changes after it. Send this or since, not both.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resources",
            "in": "query",
            "description": "Comma-separated module.resource names to include, e.g. procurement.purchase_orders,sales.invoices. Default: every resource the client can read.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Changes per page, 1–500 (default 100).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseChangesPage"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          },
          "405": {
            "$ref": "#/components/responses/E405"
          },
          "429": {
            "$ref": "#/components/responses/E429"
          },
          "500": {
            "$ref": "#/components/responses/E500"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Masters",
      "description": "Masters in KERN ERP.",
      "x-kern-module": "masters",
      "x-kern-module-name": "Masters"
    },
    {
      "name": "Products",
      "description": "Products in KERN ERP.",
      "x-kern-module": "products",
      "x-kern-module-name": "Products"
    },
    {
      "name": "Sales",
      "description": "Sales in KERN ERP.",
      "x-kern-module": "sales",
      "x-kern-module-name": "Sales"
    },
    {
      "name": "Procurement",
      "description": "Procurement in KERN ERP.",
      "x-kern-module": "procurement",
      "x-kern-module-name": "Procurement"
    },
    {
      "name": "Packing",
      "description": "Packing in KERN ERP.",
      "x-kern-module": "packing",
      "x-kern-module-name": "Packing"
    },
    {
      "name": "Inventory",
      "description": "Inventory in KERN ERP.",
      "x-kern-module": "inventory",
      "x-kern-module-name": "Inventories"
    },
    {
      "name": "Production",
      "description": "Production in KERN ERP.",
      "x-kern-module": "production",
      "x-kern-module-name": "Production"
    },
    {
      "name": "Stores",
      "description": "Stores in KERN ERP.",
      "x-kern-module": "stores",
      "x-kern-module-name": "Stores"
    },
    {
      "name": "Quality",
      "description": "Quality in KERN ERP.",
      "x-kern-module": "quality",
      "x-kern-module-name": "Quality"
    },
    {
      "name": "Yarn fabric",
      "description": "Yarn fabric in KERN ERP.",
      "x-kern-module": "yarn_fabric",
      "x-kern-module-name": "Yarn to Fabric Process"
    },
    {
      "name": "Payments",
      "description": "Payments in KERN ERP.",
      "x-kern-module": "payments",
      "x-kern-module-name": "Payments"
    },
    {
      "name": "Planning",
      "description": "Planning in KERN ERP.",
      "x-kern-module": "planning",
      "x-kern-module-name": "Planning"
    },
    {
      "name": "Iot",
      "description": "Iot in KERN ERP.",
      "x-kern-module": "iot",
      "x-kern-module-name": "IoT Data Capture"
    },
    {
      "name": "Reports",
      "description": "Reports in KERN ERP.",
      "x-kern-module": "reports",
      "x-kern-module-name": "Reports"
    },
    {
      "name": "Changes",
      "description": "Changes in KERN ERP.",
      "x-kern-module": "changes",
      "x-kern-module-name": "Changes feed"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyOrToken": {
        "type": "http",
        "scheme": "bearer",
        "description": "An API key (`kern_live_…`, sandbox `kern_test_…`) or an access token from /public/v1/oauth/token, sent as `Authorization: Bearer …`."
      },
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://kronex.codeverse.co/cedge/public/v1/oauth/token",
            "scopes": {}
          }
        }
      }
    },
    "schemas": {
      "KernError": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "example": "ERROR"
          },
          "message": {
            "type": "string"
          },
          "code": {
            "type": "string",
            "example": "SCOPE_MISSING"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "fixes": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "helpArticle": {
            "type": "string"
          }
        }
      },
      "ApiResponsePageResponseVendorDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseVendorDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateVendorRequest": {
        "required": [
          "address",
          "city",
          "country",
          "countryCode",
          "name",
          "postalCode",
          "state",
          "stateCode",
          "supplyType",
          "type",
          "vendorType"
        ],
        "type": "object",
        "properties": {
          "vendorType": {
            "pattern": "VENDOR|CUSTOMER|VENDOR_CUSTOMER",
            "type": "string"
          },
          "type": {
            "pattern": "DOMESTIC|OVERSEAS",
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "address": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string"
          },
          "country": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "countryCode": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string"
          },
          "state": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "stateCode": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string"
          },
          "city": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "postalCode": {
            "maxLength": 10,
            "minLength": 0,
            "pattern": "\\d+",
            "type": "string"
          },
          "phone": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "\\d*",
            "type": "string"
          },
          "altPhone": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "\\d*",
            "type": "string"
          },
          "whatsappPhone": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "\\d*",
            "type": "string"
          },
          "supplyType": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string"
          },
          "currency": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string"
          },
          "gstNo": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "[a-zA-Z0-9]*",
            "type": "string"
          },
          "email": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "contactPerson": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "termsConditions": {
            "maxLength": 4000,
            "minLength": 0,
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldEntry"
            }
          }
        }
      },
      "ApiResponseVendorDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/VendorDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UpdateVendorRequest": {
        "required": [
          "address",
          "city",
          "country",
          "countryCode",
          "name",
          "postalCode",
          "state",
          "stateCode",
          "supplyType",
          "type",
          "vendorType"
        ],
        "type": "object",
        "properties": {
          "vendorType": {
            "pattern": "VENDOR|CUSTOMER|VENDOR_CUSTOMER",
            "type": "string"
          },
          "type": {
            "pattern": "DOMESTIC|OVERSEAS",
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "address": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string"
          },
          "country": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "countryCode": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string"
          },
          "state": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "stateCode": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string"
          },
          "city": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "postalCode": {
            "maxLength": 10,
            "minLength": 0,
            "pattern": "\\d+",
            "type": "string"
          },
          "phone": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "\\d*",
            "type": "string"
          },
          "altPhone": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "\\d*",
            "type": "string"
          },
          "whatsappPhone": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "\\d*",
            "type": "string"
          },
          "supplyType": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string"
          },
          "currency": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string"
          },
          "gstNo": {
            "maxLength": 15,
            "minLength": 0,
            "pattern": "[a-zA-Z0-9]*",
            "type": "string"
          },
          "email": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "contactPerson": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "termsConditions": {
            "maxLength": 4000,
            "minLength": 0,
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldEntry"
            }
          }
        }
      },
      "ApiResponseListColorMasterDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ColorMasterDTO"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateColorMasterRequest": {
        "required": [
          "colorName"
        ],
        "type": "object",
        "properties": {
          "colorName": {
            "maxLength": 150,
            "minLength": 0,
            "type": "string"
          },
          "colorCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          }
        }
      },
      "ApiResponseColorMasterDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ColorMasterDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListUomsMasterDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UomsMasterDTO"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListSizeMasterDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SizeMasterDTO"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListWarehouseDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WarehouseDTO"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseProductListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseProductListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateProductRequest": {
        "required": [
          "uomId"
        ],
        "type": "object",
        "properties": {
          "productName": {
            "type": "string"
          },
          "colorIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "customerNames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerNameItem"
            }
          },
          "descriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DescriptionItem"
            }
          },
          "category": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "garmentType": {
            "type": "string"
          },
          "brandId": {
            "type": "integer",
            "format": "int64"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SizeItem"
            }
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "hsnCode": {
            "type": "string"
          },
          "gstPct": {
            "maximum": 100,
            "exclusiveMaximum": false,
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "standardCost": {
            "type": "number"
          },
          "mrp": {
            "type": "number"
          },
          "moq": {
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "remarks": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string"
          },
          "bom": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BomLineItem"
            }
          },
          "productImageStoredValue": {
            "type": "string"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentItem"
            }
          },
          "status": {
            "type": "string"
          },
          "skuConfig": {
            "type": "string"
          },
          "copiedFromId": {
            "type": "integer",
            "format": "int64"
          },
          "sourceSampleId": {
            "type": "integer",
            "format": "int64"
          },
          "copySampleImage": {
            "type": "boolean"
          }
        }
      },
      "ApiResponseCreateProductResultDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/CreateProductResultDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseProductDetailDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ProductDetailDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UpdateProductRequest": {
        "required": [
          "uomId"
        ],
        "type": "object",
        "properties": {
          "productName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "customerNames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerNameItem"
            }
          },
          "descriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DescriptionItem"
            }
          },
          "category": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "garmentType": {
            "type": "string"
          },
          "brandId": {
            "type": "integer",
            "format": "int64"
          },
          "sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SizeItem"
            }
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "hsnCode": {
            "type": "string"
          },
          "gstPct": {
            "maximum": 100,
            "exclusiveMaximum": false,
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "standardCost": {
            "type": "number"
          },
          "mrp": {
            "type": "number"
          },
          "moq": {
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "remarks": {
            "maxLength": 500,
            "minLength": 0,
            "type": "string"
          },
          "bom": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BomLineItem"
            }
          },
          "productImageStoredValue": {
            "type": "string"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentItem"
            }
          },
          "status": {
            "pattern": "DRAFT|ACTIVE|HOLD|ARCHIVED",
            "type": "string"
          },
          "skuConfig": {
            "type": "string"
          }
        }
      },
      "ApiResponseListString": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ProductStatusRequest": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "pattern": "DRAFT|ACTIVE|HOLD|ARCHIVED",
            "type": "string"
          }
        }
      },
      "ApiResponseVoid": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "object"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseBuyerPoListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseBuyerPoListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SaveBuyerPoRequest": {
        "type": "object",
        "properties": {
          "poType": {
            "type": "string"
          },
          "orderSource": {
            "type": "string"
          },
          "internalCustomerName": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "onBehalfVendorId": {
            "type": "integer",
            "format": "int64"
          },
          "onBehalfVendorName": {
            "type": "string"
          },
          "billToLocationId": {
            "type": "integer",
            "format": "int64"
          },
          "billToName": {
            "type": "string"
          },
          "billToAddress": {
            "type": "string"
          },
          "shipToAddress": {
            "type": "string"
          },
          "buyerPoNo": {
            "type": "string"
          },
          "piNo": {
            "type": "string"
          },
          "poNo": {
            "type": "string"
          },
          "txnDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "exLocation": {
            "type": "string"
          },
          "shippingMethod": {
            "type": "string"
          },
          "shippingTerms": {
            "type": "string"
          },
          "poReceiveDate": {
            "type": "string",
            "format": "date"
          },
          "prReceiveDate": {
            "type": "string",
            "format": "date"
          },
          "exDate": {
            "type": "string",
            "format": "date"
          },
          "netWeight": {
            "type": "number"
          },
          "grossWeight": {
            "type": "number"
          },
          "dimensions": {
            "type": "string"
          },
          "mfgDate": {
            "type": "string",
            "format": "date"
          },
          "invoiceFormat": {
            "type": "string"
          },
          "billToType": {
            "type": "string"
          },
          "eanRequired": {
            "type": "boolean"
          },
          "notes": {
            "type": "string"
          },
          "adjustment": {
            "type": "number"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerPoLineSaveDTO"
            }
          }
        }
      },
      "ApiResponseBuyerPoHeaderDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/BuyerPoHeaderDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseListItem": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseListItem"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SaveRequest": {
        "required": [
          "process",
          "qcDate",
          "qcPerson"
        ],
        "type": "object",
        "properties": {
          "qcNo": {
            "type": "string"
          },
          "qcDate": {
            "type": "string",
            "format": "date"
          },
          "qcPerson": {
            "type": "string"
          },
          "process": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "inspectionLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InspectionLineInput"
            }
          },
          "stockInwardLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StockInwardLineInput"
            }
          }
        }
      },
      "ApiResponseDetail": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/Detail"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponsePurchaseOrderListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponsePurchaseOrderListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SavePurchaseOrderRequest": {
        "type": "object",
        "properties": {
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "vendorCode": {
            "type": "string"
          },
          "vendorPhone": {
            "type": "string"
          },
          "vendorWhatsapp": {
            "type": "string"
          },
          "vendorEmail": {
            "type": "string"
          },
          "poDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "shipTo": {
            "type": "string"
          },
          "shipToLabel": {
            "type": "string"
          },
          "shipToType": {
            "type": "string"
          },
          "shipLocation": {
            "type": "string"
          },
          "referenceNo": {
            "type": "string"
          },
          "orderMode": {
            "type": "string"
          },
          "poCategory": {
            "type": "string"
          },
          "processDefinitionId": {
            "type": "integer",
            "format": "int64"
          },
          "processName": {
            "type": "string"
          },
          "sourceRefType": {
            "type": "string"
          },
          "sourceRefId": {
            "type": "integer",
            "format": "int64"
          },
          "sourceRefIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "shippingMethod": {
            "type": "string"
          },
          "shippingTerms": {
            "type": "string"
          },
          "incoterms": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "paymentTerms": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "advancePct": {
            "type": "number"
          },
          "dueDate": {
            "type": "string",
            "format": "date"
          },
          "notes": {
            "type": "string"
          },
          "sourceProdOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "sourceStyleId": {
            "type": "integer",
            "format": "int64"
          },
          "cf1": {
            "type": "string"
          },
          "cf2": {
            "type": "string"
          },
          "cf3": {
            "type": "string"
          },
          "cf4": {
            "type": "string"
          },
          "cf5": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SavePoLineRequest"
            }
          }
        }
      },
      "ApiResponsePurchaseOrderDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PurchaseOrderDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseGrnListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseGrnListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SaveGrnRequest": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string"
          },
          "grnDate": {
            "type": "string",
            "format": "date"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "warehouseName": {
            "type": "string"
          },
          "internalRef": {
            "type": "string"
          },
          "dcNum": {
            "type": "string"
          },
          "invoiceNum": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "tolerancePct": {
            "type": "number"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "excessReason": {
            "type": "string"
          },
          "transportCost": {
            "type": "number"
          },
          "transportGstPct": {
            "type": "number"
          },
          "additionalCost": {
            "type": "number"
          },
          "additionalGstPct": {
            "type": "number"
          },
          "poIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnLineSaveDTO"
            }
          },
          "aiDiscrepancies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnDiscrepancyDTO"
            }
          },
          "aiImportUsed": {
            "type": "boolean"
          }
        }
      },
      "ApiResponseGrnDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/GrnDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListReceivablePoDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceivablePoDTO"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ShipRequest": {
        "type": "object",
        "properties": {
          "shipDate": {
            "type": "string",
            "format": "date"
          },
          "bolAwbNo": {
            "type": "string"
          },
          "vesselFlight": {
            "type": "string"
          },
          "portOfLoading": {
            "type": "string"
          },
          "portOfDischarge": {
            "type": "string"
          },
          "shippingRemarks": {
            "type": "string"
          }
        }
      },
      "ApiResponsePageResponseRmStockDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseRmStockDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseRmStockDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/RmStockDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseFabricLotDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseFabricLotDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseFabricLotDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/FabricLotDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseFgInventoryDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseFgInventoryDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseProductionOrderListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseProductionOrderListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateProductionOrderRequest": {
        "required": [
          "orderType"
        ],
        "type": "object",
        "properties": {
          "orderType": {
            "type": "string"
          },
          "styleCode": {
            "type": "string"
          },
          "styleName": {
            "type": "string"
          },
          "styleProductId": {
            "type": "integer",
            "format": "int64"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "sampleStyle": {
            "type": "string"
          },
          "allowanceScope": {
            "type": "string"
          },
          "allowanceUnit": {
            "type": "string"
          },
          "totalAllowance": {
            "type": "number"
          },
          "buyerId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerName": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "exFactoryDate": {
            "type": "string",
            "format": "date"
          },
          "workflowTemplateId": {
            "type": "integer",
            "format": "int64"
          },
          "workflowTemplateName": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionOrderLineRequest"
            }
          },
          "buyerPos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinkBuyerPoRequest"
            }
          }
        }
      },
      "ApiResponseProductionOrderDetailDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ProductionOrderDetailDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UpdateProductionOrderRequest": {
        "type": "object",
        "properties": {
          "orderType": {
            "type": "string"
          },
          "styleCode": {
            "type": "string"
          },
          "styleName": {
            "type": "string"
          },
          "styleProductId": {
            "type": "integer",
            "format": "int64"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "sampleStyle": {
            "type": "string"
          },
          "allowanceScope": {
            "type": "string"
          },
          "allowanceUnit": {
            "type": "string"
          },
          "totalAllowance": {
            "type": "number"
          },
          "buyerId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerName": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "exFactoryDate": {
            "type": "string",
            "format": "date"
          },
          "workflowTemplateId": {
            "type": "integer",
            "format": "int64"
          },
          "workflowTemplateName": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionOrderLineRequest"
            }
          }
        }
      },
      "CancelProductionOrderRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          }
        }
      },
      "ApiResponsePageResponseListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateRequest": {
        "required": [
          "productionOrderIds"
        ],
        "type": "object",
        "properties": {
          "productionOrderIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "woDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "workflowName": {
            "type": "string"
          },
          "workflowTemplateId": {
            "type": "integer",
            "format": "int64"
          },
          "jobWork": {
            "type": "boolean"
          },
          "jobWorkVendorId": {
            "type": "integer",
            "format": "int64"
          },
          "jobWorkVendorName": {
            "type": "string"
          },
          "jobWorkPrice": {
            "type": "number"
          },
          "issue": {
            "type": "boolean"
          },
          "sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SizeRow"
            }
          },
          "processes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProcessRow"
            }
          }
        }
      },
      "ApiResponseDetailDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/DetailDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseAvailableInput": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/AvailableInput"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "AddDailyEntryRequest": {
        "required": [
          "entryDate"
        ],
        "type": "object",
        "properties": {
          "entryDate": {
            "type": "string",
            "format": "date"
          },
          "operatorEmployeeId": {
            "type": "integer",
            "format": "int64"
          },
          "operatorName": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "overtime": {
            "type": "boolean"
          },
          "customFieldValues": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SizeEntry"
            }
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number"
          },
          "gstPct": {
            "type": "number"
          },
          "receiveDate": {
            "type": "string",
            "format": "date"
          },
          "receiveLocationId": {
            "type": "integer",
            "format": "int64"
          },
          "vehicleNumber": {
            "type": "string"
          },
          "challanNo": {
            "type": "string"
          },
          "transporterName": {
            "type": "string"
          },
          "personName": {
            "type": "string"
          },
          "fabricLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FabricLineRequest"
            }
          },
          "fabricQtyLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FabricQtyLineRequest"
            }
          }
        }
      },
      "ReceiveRequest": {
        "type": "object",
        "properties": {
          "receivedDate": {
            "type": "string",
            "format": "date"
          },
          "receivedByName": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceiveLineInput"
            }
          }
        }
      },
      "ApproveRequest": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string"
          },
          "redirectUri": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "codeChallenge": {
            "type": "string"
          },
          "codeChallengeMethod": {
            "type": "string"
          },
          "roleId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ApiResponseDhuReport": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/DhuReport"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListTopDefectRow": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TopDefectRow"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponseBoxListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseBoxListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateBoxRequest": {
        "required": [
          "sizeCode",
          "warehouseId"
        ],
        "type": "object",
        "properties": {
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "packingSlipId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoId": {
            "type": "integer",
            "format": "int64"
          },
          "expectedWeight": {
            "type": "number"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineInput"
            }
          }
        }
      },
      "ApiResponseBoxDetailDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/BoxDetailDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "AddLineRequest": {
        "required": [
          "qty"
        ],
        "type": "object",
        "properties": {
          "skuId": {
            "type": "integer",
            "format": "int64"
          },
          "barcode": {
            "type": "string"
          },
          "qty": {
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SealBoxRequest": {
        "type": "object",
        "properties": {
          "expectedWeight": {
            "type": "number"
          },
          "actualWeight": {
            "type": "number"
          }
        }
      },
      "ApiResponsePageResponseMasterBoxListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponseMasterBoxListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseMasterBoxDetailDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/MasterBoxDetailDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePageResponsePoListDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PageResponsePoListDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePoHeaderDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PoHeaderDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListGrnHeaderDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnHeaderDTO"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListPaymentDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDTO"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponsePaymentDTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PaymentDTO"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseCapacityReport": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/CapacityReport"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListPartsCompletedRow": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartsCompletedRow"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListOperatorEffRow": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OperatorEffRow"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListMachineUtilRow": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachineUtilRow"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListLineBalanceRow": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineBalanceRow"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseListReportMeta": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReportMeta"
            }
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseReportResult": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ReportResult"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ApiResponseChangesPage": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ChangesPage"
          },
          "code": {
            "type": "string"
          },
          "params": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          },
          "correlationId": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PageResponseVendorDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "FixAction": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "route": {
            "type": "string"
          }
        }
      },
      "CustomFieldEntry": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "VendorDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "vendorType": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "stateCode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "altPhone": {
            "type": "string"
          },
          "whatsappPhone": {
            "type": "string"
          },
          "supplyType": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "gstNo": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "contactPerson": {
            "type": "string"
          },
          "termsConditions": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldEntry"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ColorMasterDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          }
        }
      },
      "UomsMasterDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "uomName": {
            "type": "string"
          }
        }
      },
      "SizeMasterDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          }
        }
      },
      "WarehouseDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "virtual": {
            "type": "boolean"
          },
          "default": {
            "type": "boolean"
          },
          "active": {
            "type": "boolean"
          },
          "isDefault": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          },
          "isVirtual": {
            "type": "boolean"
          }
        }
      },
      "PageResponseProductListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "CustomerNameItem": {
        "required": [
          "customerName"
        ],
        "type": "object",
        "properties": {
          "customerName": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DescriptionItem": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SizeItem": {
        "required": [
          "sizeCode"
        ],
        "type": "object",
        "properties": {
          "sizeCode": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "gsCode": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "standardCost": {
            "type": "number"
          },
          "mrp": {
            "type": "number"
          },
          "moq": {
            "type": "integer",
            "format": "int32"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BomLineItem": {
        "required": [
          "consumption",
          "materialName",
          "materialType"
        ],
        "type": "object",
        "properties": {
          "rmTypeId": {
            "type": "integer",
            "format": "int64"
          },
          "materialType": {
            "type": "string"
          },
          "rmId": {
            "type": "integer",
            "format": "int64"
          },
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "materialName": {
            "maxLength": 150,
            "minLength": 0,
            "type": "string"
          },
          "consumption": {
            "type": "number"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "uomName": {
            "type": "string"
          },
          "pricePerUom": {
            "type": "number"
          },
          "totalPrice": {
            "type": "number"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "selectedSizes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sizeConsumptions": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "isExistingMaterial": {
            "type": "boolean"
          }
        }
      },
      "AttachmentItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "storedValue": {
            "type": "string"
          },
          "originalName": {
            "type": "string"
          },
          "fileType": {
            "type": "string"
          },
          "fileSizeKb": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CreateProductResultDTO": {
        "type": "object",
        "properties": {
          "createdProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreatedProductSummary"
            }
          }
        }
      },
      "ProductDetailDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productCode": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "uomName": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "garmentType": {
            "type": "string"
          },
          "brandId": {
            "type": "integer",
            "format": "int64"
          },
          "brandName": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "hsnCode": {
            "type": "string"
          },
          "gstPct": {
            "type": "number"
          },
          "standardCost": {
            "type": "number"
          },
          "mrp": {
            "type": "number"
          },
          "moq": {
            "type": "integer",
            "format": "int32"
          },
          "remarks": {
            "type": "string"
          },
          "productImageUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "skuConfig": {
            "type": "string"
          },
          "skus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SkuDetail"
            }
          },
          "customerNames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerNameDetail"
            }
          },
          "descriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DescriptionDetail"
            }
          },
          "sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SizeDetail"
            }
          },
          "bom": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BomLineDetail"
            }
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentDetail"
            }
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "copiedFromId": {
            "type": "integer",
            "format": "int64"
          },
          "copiedFromCode": {
            "type": "string"
          },
          "copiedFromName": {
            "type": "string"
          },
          "sourceSampleId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "PageResponseBuyerPoListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerPoListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "BuyerPoLineSaveDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "productCode": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "locationName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "articleNo": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "gsCode": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "lineType": {
            "type": "string"
          },
          "qty": {
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "actualQty": {
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "discountPct": {
            "maximum": 100,
            "exclusiveMaximum": false,
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "gstPct": {
            "maximum": 100,
            "exclusiveMaximum": false,
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BuyerPoHeaderDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "poCode": {
            "type": "string"
          },
          "poType": {
            "type": "string"
          },
          "orderSource": {
            "type": "string"
          },
          "internalCustomerName": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "onBehalfVendorId": {
            "type": "integer",
            "format": "int64"
          },
          "onBehalfVendorName": {
            "type": "string"
          },
          "billToLocationId": {
            "type": "integer",
            "format": "int64"
          },
          "billToName": {
            "type": "string"
          },
          "billToAddress": {
            "type": "string"
          },
          "shipToAddress": {
            "type": "string"
          },
          "buyerPoNo": {
            "type": "string"
          },
          "piNo": {
            "type": "string"
          },
          "poNo": {
            "type": "string"
          },
          "txnDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "exLocation": {
            "type": "string"
          },
          "shippingMethod": {
            "type": "string"
          },
          "shippingTerms": {
            "type": "string"
          },
          "poReceiveDate": {
            "type": "string",
            "format": "date"
          },
          "prReceiveDate": {
            "type": "string",
            "format": "date"
          },
          "exDate": {
            "type": "string",
            "format": "date"
          },
          "netWeight": {
            "type": "number"
          },
          "grossWeight": {
            "type": "number"
          },
          "dimensions": {
            "type": "string"
          },
          "mfgDate": {
            "type": "string",
            "format": "date"
          },
          "invoiceFormat": {
            "type": "string"
          },
          "billToType": {
            "type": "string"
          },
          "eanRequired": {
            "type": "boolean"
          },
          "notes": {
            "type": "string"
          },
          "subTotal": {
            "type": "number"
          },
          "discountAmt": {
            "type": "number"
          },
          "gstAmt": {
            "type": "number"
          },
          "adjustment": {
            "type": "number"
          },
          "netTotal": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "guidance": {
            "$ref": "#/components/schemas/Guidance"
          },
          "createdBy": {
            "type": "integer",
            "format": "int64"
          },
          "approvedBy": {
            "type": "integer",
            "format": "int64"
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerPoLineDTO"
            }
          },
          "packingSlipGenerated": {
            "type": "boolean"
          }
        }
      },
      "PageResponseListItem": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListItem"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "InspectionLineInput": {
        "required": [
          "grnLineId"
        ],
        "type": "object",
        "properties": {
          "grnLineId": {
            "type": "integer",
            "format": "int64"
          },
          "fabricProgramNo": {
            "type": "string"
          },
          "itemType": {
            "type": "string"
          },
          "itemNo": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "gsm": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "weight": {
            "type": "number"
          },
          "rollQty": {
            "type": "number"
          },
          "acceptedQty": {
            "type": "number"
          },
          "qcResult": {
            "type": "string"
          }
        }
      },
      "StockInwardLineInput": {
        "required": [
          "fabricId",
          "grnLineId",
          "qty"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "grnLineId": {
            "type": "integer",
            "format": "int64"
          },
          "fabricProgramNo": {
            "type": "string"
          },
          "itemType": {
            "type": "string"
          },
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "inwardFabricColor": {
            "type": "string"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "lotNo": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "gsm": {
            "type": "number"
          },
          "weight": {
            "type": "number"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "rollNo": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          }
        }
      },
      "Detail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "qcNo": {
            "type": "string"
          },
          "qcDate": {
            "type": "string",
            "format": "date"
          },
          "qcPerson": {
            "type": "string"
          },
          "process": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "inspectionLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InspectionLineDTO"
            }
          },
          "stockInwardLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StockInwardLineDTO"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PageResponsePurchaseOrderListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PurchaseOrderListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "SavePoLineRequest": {
        "required": [
          "qty",
          "rmRefId",
          "rmType",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "rmType": {
            "type": "string"
          },
          "rmRefId": {
            "type": "integer",
            "format": "int64"
          },
          "productionOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "countValue": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "gsm": {
            "type": "number"
          },
          "millVendorId": {
            "type": "integer",
            "format": "int64"
          },
          "lotNo": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "unitPrice": {
            "type": "number"
          },
          "discountPct": {
            "type": "number"
          },
          "gstPct": {
            "type": "number"
          }
        }
      },
      "PurchaseOrderDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "poNum": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "vendorCode": {
            "type": "string"
          },
          "vendorPhone": {
            "type": "string"
          },
          "vendorWhatsapp": {
            "type": "string"
          },
          "vendorEmail": {
            "type": "string"
          },
          "vendorAddress": {
            "type": "string"
          },
          "vendorGstin": {
            "type": "string"
          },
          "vendorTermsConditions": {
            "type": "string"
          },
          "poDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "dueDate": {
            "type": "string",
            "format": "date"
          },
          "shipTo": {
            "type": "string"
          },
          "shipToLabel": {
            "type": "string"
          },
          "shipToType": {
            "type": "string"
          },
          "shipLocation": {
            "type": "string"
          },
          "referenceNo": {
            "type": "string"
          },
          "orderMode": {
            "type": "string"
          },
          "poCategory": {
            "type": "string"
          },
          "processDefinitionId": {
            "type": "integer",
            "format": "int64"
          },
          "processName": {
            "type": "string"
          },
          "sourceRefType": {
            "type": "string"
          },
          "sourceRefId": {
            "type": "integer",
            "format": "int64"
          },
          "sourceRefIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "sourceLabels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "shippingMethod": {
            "type": "string"
          },
          "shippingTerms": {
            "type": "string"
          },
          "incoterms": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "paymentTerms": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "advancePct": {
            "type": "number"
          },
          "notes": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "subTotal": {
            "type": "number"
          },
          "totalDiscount": {
            "type": "number"
          },
          "netAmount": {
            "type": "number"
          },
          "totalGst": {
            "type": "number"
          },
          "totalTransport": {
            "type": "number"
          },
          "grandTotal": {
            "type": "number"
          },
          "receivedAmount": {
            "type": "number"
          },
          "approverId": {
            "type": "integer",
            "format": "int64"
          },
          "approverName": {
            "type": "string"
          },
          "approvedOn": {
            "type": "string",
            "format": "date-time"
          },
          "rejectionReason": {
            "type": "string"
          },
          "closeReason": {
            "type": "string"
          },
          "closedBy": {
            "type": "integer",
            "format": "int64"
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "cf1": {
            "type": "string"
          },
          "cf2": {
            "type": "string"
          },
          "cf3": {
            "type": "string"
          },
          "cf4": {
            "type": "string"
          },
          "cf5": {
            "type": "string"
          },
          "taxRegimeCode": {
            "type": "string"
          },
          "posRelation": {
            "type": "string"
          },
          "reverseCharge": {
            "type": "boolean"
          },
          "totalCgst": {
            "type": "number"
          },
          "totalSgst": {
            "type": "number"
          },
          "totalIgst": {
            "type": "number"
          },
          "totalCess": {
            "type": "number"
          },
          "totalVat": {
            "type": "number"
          },
          "totalSalesTax": {
            "type": "number"
          },
          "totalTax": {
            "type": "number"
          },
          "createdBy": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "itemsCount": {
            "type": "integer",
            "format": "int32"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PoLineDTO"
            }
          },
          "customFieldConfigs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PoCustomFieldConfigDTO"
            }
          },
          "approvalTrail": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PoApprovalTrailDTO"
            }
          }
        }
      },
      "PageResponseGrnListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "GrnLineSaveDTO": {
        "type": "object",
        "properties": {
          "poId": {
            "type": "integer",
            "format": "int64"
          },
          "poNum": {
            "type": "string"
          },
          "poLineId": {
            "type": "integer",
            "format": "int64"
          },
          "itemRefType": {
            "type": "string"
          },
          "itemRefId": {
            "type": "integer",
            "format": "int64"
          },
          "itemCode": {
            "type": "string"
          },
          "itemDescription": {
            "type": "string"
          },
          "uom": {
            "type": "string"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "poQty": {
            "type": "number"
          },
          "prevReceived": {
            "type": "number"
          },
          "receiveQty": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "rejectQty": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "unitPrice": {
            "minimum": 0,
            "exclusiveMinimum": false,
            "type": "number"
          },
          "lotNumber": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "qcStatus": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "acceptedQty": {
            "type": "number"
          },
          "rejectedQty": {
            "type": "number"
          },
          "rejectionReason": {
            "type": "string"
          },
          "qcMode": {
            "type": "string"
          },
          "rolls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnRollLine"
            }
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "GrnDiscrepancyDTO": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "itemLabel": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          }
        }
      },
      "GrnDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "grnNum": {
            "type": "string"
          },
          "grnDate": {
            "type": "string",
            "format": "date"
          },
          "mode": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "warehouseName": {
            "type": "string"
          },
          "internalRef": {
            "type": "string"
          },
          "dcNum": {
            "type": "string"
          },
          "invoiceNum": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "tolerancePct": {
            "type": "number"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "vendorPhone": {
            "type": "string"
          },
          "vendorWhatsapp": {
            "type": "string"
          },
          "vendorEmail": {
            "type": "string"
          },
          "vendorAddress": {
            "type": "string"
          },
          "vendorGstin": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "guidance": {
            "$ref": "#/components/schemas/Guidance"
          },
          "excessReason": {
            "type": "string"
          },
          "transportCost": {
            "type": "number"
          },
          "transportGstPct": {
            "type": "number"
          },
          "transportGstAmt": {
            "type": "number"
          },
          "additionalCost": {
            "type": "number"
          },
          "additionalGstPct": {
            "type": "number"
          },
          "additionalGstAmt": {
            "type": "number"
          },
          "grandTotal": {
            "type": "number"
          },
          "closeReason": {
            "type": "string"
          },
          "closedBy": {
            "type": "integer",
            "format": "int64"
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "integer",
            "format": "int64"
          },
          "postedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lotTracking": {
            "type": "boolean"
          },
          "invoiceApprovalStatus": {
            "type": "string"
          },
          "invoiceApprovedAt": {
            "type": "string",
            "format": "date-time"
          },
          "invoiceApprovedByName": {
            "type": "string"
          },
          "invoiceApprovalReason": {
            "type": "string"
          },
          "invoiceDocumentUrl": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnLineDTO"
            }
          },
          "poLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnPoLinkDTO"
            }
          },
          "trail": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnTrailDTO"
            }
          }
        }
      },
      "ReceivablePoDTO": {
        "type": "object",
        "properties": {
          "poId": {
            "type": "integer",
            "format": "int64"
          },
          "poNo": {
            "type": "string"
          },
          "poCreationDate": {
            "type": "string",
            "format": "date"
          },
          "vendorName": {
            "type": "string"
          },
          "companyLocationName": {
            "type": "string"
          },
          "shipToType": {
            "type": "string"
          },
          "shipToLabel": {
            "type": "string"
          },
          "poDeliveryDate": {
            "type": "string",
            "format": "date"
          },
          "grnCount": {
            "type": "integer",
            "format": "int32"
          },
          "grnNos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "grns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnSummary"
            }
          },
          "pendingApprovalCount": {
            "type": "integer",
            "format": "int32"
          },
          "acknowledged": {
            "type": "boolean"
          },
          "lastAcknowledgedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lastAcknowledgedByName": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReceivableLineDTO"
            }
          },
          "closureType": {
            "type": "string"
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PageResponseRmStockDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmStockDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "RmStockDTO": {
        "type": "object",
        "properties": {
          "rmId": {
            "type": "integer",
            "format": "int64"
          },
          "rmCode": {
            "type": "string"
          },
          "rmName": {
            "type": "string"
          },
          "rmTypeName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "uomName": {
            "type": "string"
          },
          "multipleUoms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmUomDenominationDTO"
            }
          },
          "onHandQty": {
            "type": "number"
          },
          "minStockQty": {
            "type": "number"
          },
          "reorderQty": {
            "type": "number"
          },
          "leadTimeDays": {
            "type": "integer",
            "format": "int32"
          },
          "stockStatus": {
            "type": "string"
          },
          "sizeBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RmStockSizeDTO"
            }
          },
          "active": {
            "type": "boolean"
          },
          "lotTracking": {
            "type": "boolean"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "PageResponseFabricLotDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FabricLotDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "FabricLotDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "lotNumber": {
            "type": "string"
          },
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "fabricName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "warehouseName": {
            "type": "string"
          },
          "supplierId": {
            "type": "integer",
            "format": "int64"
          },
          "supplierName": {
            "type": "string"
          },
          "receivedDate": {
            "type": "string",
            "format": "date"
          },
          "totalRolls": {
            "type": "integer",
            "format": "int32"
          },
          "totalMeters": {
            "type": "number"
          },
          "usedMeters": {
            "type": "number"
          },
          "reservedMeters": {
            "type": "number"
          },
          "availableMeters": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "grnReference": {
            "type": "string"
          },
          "colourRef": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "rolls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FabricRollDTO"
            }
          }
        }
      },
      "PageResponseFgInventoryDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FgInventoryDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "PageResponseProductionOrderListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionOrderListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "ProductionOrderLineRequest": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "colour": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "qty": {
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "allowance": {
            "type": "number"
          },
          "sourceBuyerPoNo": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "LinkBuyerPoRequest": {
        "required": [
          "buyerPoNumber"
        ],
        "type": "object",
        "properties": {
          "buyerPoId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoNumber": {
            "type": "string"
          },
          "buyerPoDate": {
            "type": "string",
            "format": "date"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "styleCode": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          }
        }
      },
      "ProductionOrderDetailDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productionOrderNumber": {
            "type": "string"
          },
          "orderType": {
            "type": "string"
          },
          "styleCode": {
            "type": "string"
          },
          "styleName": {
            "type": "string"
          },
          "styleProductId": {
            "type": "integer",
            "format": "int64"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "sampleStyle": {
            "type": "string"
          },
          "allowanceScope": {
            "type": "string"
          },
          "allowanceUnit": {
            "type": "string"
          },
          "totalAllowance": {
            "type": "number"
          },
          "productionQuantity": {
            "type": "integer",
            "format": "int32"
          },
          "buyerId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerName": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "totalQuantity": {
            "type": "integer",
            "format": "int32"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "exFactoryDate": {
            "type": "string",
            "format": "date"
          },
          "workflowTemplateId": {
            "type": "integer",
            "format": "int64"
          },
          "workflowTemplateName": {
            "type": "string"
          },
          "assignedLineId": {
            "type": "integer",
            "format": "int64"
          },
          "assignedLineName": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "tnaStatus": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "hasWorkOrder": {
            "type": "boolean"
          },
          "createdBy": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineDTO"
            }
          },
          "buyerPos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinkedBuyerPoDTO"
            }
          },
          "tnaSteps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TnaStepDTO"
            }
          }
        }
      },
      "PageResponseListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "SizeRow": {
        "type": "object",
        "properties": {
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "orderedQty": {
            "type": "integer",
            "format": "int32"
          },
          "woQty": {
            "type": "integer",
            "format": "int32"
          },
          "articleNo": {
            "type": "string"
          },
          "skuNo": {
            "type": "string"
          }
        }
      },
      "ProcessRow": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "seq": {
            "type": "integer",
            "format": "int32"
          },
          "processName": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "removable": {
            "type": "boolean"
          },
          "editLocked": {
            "type": "boolean"
          },
          "liveStatus": {
            "type": "string"
          }
        }
      },
      "DetailDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "workOrderNumber": {
            "type": "string"
          },
          "styleProductId": {
            "type": "integer",
            "format": "int64"
          },
          "styleCode": {
            "type": "string"
          },
          "styleName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "brandName": {
            "type": "string"
          },
          "productNo": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "workflowName": {
            "type": "string"
          },
          "workflowTemplateId": {
            "type": "integer",
            "format": "int64"
          },
          "woDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "totalQty": {
            "type": "integer",
            "format": "int32"
          },
          "jobWork": {
            "type": "boolean"
          },
          "jobWorkVendorId": {
            "type": "integer",
            "format": "int64"
          },
          "jobWorkVendorName": {
            "type": "string"
          },
          "jobWorkPrice": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "overdue": {
            "type": "boolean"
          },
          "progressPct": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "styleImageUrl": {
            "type": "string"
          },
          "createdByName": {
            "type": "string"
          },
          "styleCreatedByName": {
            "type": "string"
          },
          "productionOrderCreatedByName": {
            "type": "string"
          },
          "productionOrders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductionOrderRef"
            }
          },
          "buyerPos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerPoRef"
            }
          },
          "sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SizeRow"
            }
          },
          "bom": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BomRow"
            }
          },
          "processes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProcessRow"
            }
          },
          "workflow": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WfStageDTO"
            }
          }
        }
      },
      "AvailableInput": {
        "type": "object",
        "properties": {
          "runStageId": {
            "type": "integer",
            "format": "int64"
          },
          "trackMode": {
            "type": "string"
          },
          "sizes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AvailableSize"
            }
          }
        }
      },
      "SizeEntry": {
        "type": "object",
        "properties": {
          "sizeCode": {
            "type": "string"
          },
          "inputQty": {
            "type": "integer",
            "format": "int32"
          },
          "outputQty": {
            "type": "integer",
            "format": "int32"
          },
          "secondsQty": {
            "type": "integer",
            "format": "int32"
          },
          "damageQty": {
            "type": "integer",
            "format": "int32"
          },
          "rejectQty": {
            "type": "integer",
            "format": "int32"
          },
          "lossBearer": {
            "type": "string"
          },
          "lossBearerRefId": {
            "type": "integer",
            "format": "int64"
          },
          "raiseDebitNote": {
            "type": "boolean"
          }
        }
      },
      "FabricLineRequest": {
        "type": "object",
        "properties": {
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "fabricLaysCount": {
            "type": "integer",
            "format": "int32"
          },
          "fabricUsed": {
            "type": "number"
          },
          "fabricWastage": {
            "type": "number"
          }
        }
      },
      "FabricQtyLineRequest": {
        "type": "object",
        "properties": {
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "qty": {
            "type": "number"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ReceiveLineInput": {
        "type": "object",
        "properties": {
          "lineId": {
            "type": "integer",
            "format": "int64"
          },
          "receivedQty": {
            "type": "number"
          }
        }
      },
      "DhuReport": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DhuRow"
            }
          },
          "totalChecked": {
            "type": "integer",
            "format": "int32"
          },
          "totalDefects": {
            "type": "integer",
            "format": "int32"
          },
          "overallDhu": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TopDefectRow": {
        "type": "object",
        "properties": {
          "defectId": {
            "type": "integer",
            "format": "int64"
          },
          "defectName": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "pct": {
            "type": "number",
            "format": "double"
          },
          "cumulativePct": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "PageResponseBoxListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoxListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "LineInput": {
        "type": "object",
        "properties": {
          "itemType": {
            "type": "string"
          },
          "itemRefId": {
            "type": "integer",
            "format": "int64"
          },
          "toItemRefId": {
            "type": "integer",
            "format": "int64"
          },
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "sizeId": {
            "type": "integer",
            "format": "int64"
          },
          "lotMasterId": {
            "type": "integer",
            "format": "int64"
          },
          "rollNumber": {
            "type": "string"
          },
          "itemLabel": {
            "type": "string"
          },
          "uom": {
            "type": "string"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "dispatchQty": {
            "type": "number"
          },
          "rollAllocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RollAllocationInput"
            }
          }
        }
      },
      "BoxDetailDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "containerNo": {
            "type": "string"
          },
          "barcodeSymbology": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "packingSlipId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoId": {
            "type": "integer",
            "format": "int64"
          },
          "masterBoxId": {
            "type": "integer",
            "format": "int64"
          },
          "totalUnits": {
            "type": "integer",
            "format": "int32"
          },
          "expectedWeight": {
            "type": "number"
          },
          "actualWeight": {
            "type": "number"
          },
          "weightVariance": {
            "type": "number"
          },
          "snapshotVersion": {
            "type": "integer",
            "format": "int32"
          },
          "sealedAt": {
            "type": "string"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoxLineDTO"
            }
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BarcodeEventDTO"
            }
          }
        }
      },
      "PageResponseMasterBoxListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MasterBoxListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "MasterBoxDetailDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "containerNo": {
            "type": "string"
          },
          "barcodeSymbology": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "packingSlipId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoId": {
            "type": "integer",
            "format": "int64"
          },
          "customerId": {
            "type": "integer",
            "format": "int64"
          },
          "customerName": {
            "type": "string"
          },
          "consigneeName": {
            "type": "string"
          },
          "consigneeAddress": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "trackingNo": {
            "type": "string"
          },
          "dispatchDate": {
            "type": "string"
          },
          "shipRemarks": {
            "type": "string"
          },
          "totalBoxes": {
            "type": "integer",
            "format": "int32"
          },
          "totalUnits": {
            "type": "integer",
            "format": "int32"
          },
          "expectedWeight": {
            "type": "number"
          },
          "actualWeight": {
            "type": "number"
          },
          "weightVariance": {
            "type": "number"
          },
          "snapshotVersion": {
            "type": "integer",
            "format": "int32"
          },
          "sealedAt": {
            "type": "string"
          },
          "boxes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChildBoxDTO"
            }
          },
          "looseLines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineDTO"
            }
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VideoDTO"
            }
          },
          "shipments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentDTO"
            }
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventDTO"
            }
          }
        }
      },
      "PageResponsePoListDTO": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PoListDTO"
            }
          },
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "PoHeaderDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "poNo": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "companyLocationId": {
            "type": "integer",
            "format": "int64"
          },
          "companyLocationName": {
            "type": "string"
          },
          "shipToType": {
            "type": "string"
          },
          "shipToRefId": {
            "type": "integer",
            "format": "int64"
          },
          "shipToLabel": {
            "type": "string"
          },
          "poCreationDate": {
            "type": "string",
            "format": "date"
          },
          "poDeliveryDate": {
            "type": "string",
            "format": "date"
          },
          "shippingTermsId": {
            "type": "integer",
            "format": "int64"
          },
          "shippingTermsName": {
            "type": "string"
          },
          "deliveryTermsId": {
            "type": "integer",
            "format": "int64"
          },
          "deliveryTermsName": {
            "type": "string"
          },
          "shipMode": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "grossTotal": {
            "type": "number"
          },
          "transportCost": {
            "type": "number"
          },
          "additionalCost": {
            "type": "number"
          },
          "grandTotal": {
            "type": "number"
          },
          "submittedAt": {
            "type": "string",
            "format": "date-time"
          },
          "submittedBy": {
            "type": "integer",
            "format": "int64"
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          },
          "approvedBy": {
            "type": "integer",
            "format": "int64"
          },
          "rejectedAt": {
            "type": "string",
            "format": "date-time"
          },
          "rejectedBy": {
            "type": "integer",
            "format": "int64"
          },
          "rejectionReason": {
            "type": "string"
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time"
          },
          "cancelledBy": {
            "type": "integer",
            "format": "int64"
          },
          "cancellationReason": {
            "type": "string"
          },
          "closeReason": {
            "type": "string"
          },
          "closedBy": {
            "type": "integer",
            "format": "int64"
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "closureType": {
            "type": "string"
          },
          "grnCount": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "type": "integer",
            "format": "int64"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PoLineDTO"
            }
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PoAttachmentDTO"
            }
          },
          "approvalTrail": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PoApprovalTrailDTO"
            }
          }
        }
      },
      "GrnHeaderDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "grnNo": {
            "type": "string"
          },
          "poId": {
            "type": "integer",
            "format": "int64"
          },
          "poNo": {
            "type": "string"
          },
          "vendorName": {
            "type": "string"
          },
          "companyLocationName": {
            "type": "string"
          },
          "receivedDate": {
            "type": "string",
            "format": "date"
          },
          "referenceNo": {
            "type": "string"
          },
          "referenceDate": {
            "type": "string",
            "format": "date"
          },
          "receivedBy": {
            "type": "integer",
            "format": "int64"
          },
          "receivedByName": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "approvedBy": {
            "type": "integer",
            "format": "int64"
          },
          "approvedByName": {
            "type": "string"
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrnLineDTO"
            }
          },
          "debitNotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DebitNoteDTO"
            }
          }
        }
      },
      "PaymentDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "paymentDate": {
            "type": "string",
            "format": "date"
          },
          "amount": {
            "type": "number"
          },
          "paymentMode": {
            "type": "string"
          },
          "referenceNo": {
            "type": "string"
          },
          "bankDetails": {
            "type": "string"
          },
          "proofUrl": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentAllocationDTO"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CapacityReport": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "format": "date"
          },
          "to": {
            "type": "string",
            "format": "date"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineUtilization"
            }
          },
          "factories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FactoryUtilization"
            }
          },
          "overloads": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OverloadRow"
            }
          }
        }
      },
      "PartsCompletedRow": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "productName": {
            "type": "string"
          },
          "partId": {
            "type": "integer",
            "format": "int64"
          },
          "partName": {
            "type": "string"
          },
          "qtyPerGarment": {
            "type": "integer",
            "format": "int32"
          },
          "piecesDone": {
            "type": "integer",
            "format": "int64"
          },
          "requiredQty": {
            "type": "integer",
            "format": "int64"
          },
          "completionPct": {
            "type": "number"
          }
        }
      },
      "OperatorEffRow": {
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "integer",
            "format": "int64"
          },
          "employeeName": {
            "type": "string"
          },
          "pieces": {
            "type": "integer",
            "format": "int64"
          },
          "earnedMinutes": {
            "type": "number"
          },
          "actualMinutes": {
            "type": "number"
          },
          "efficiencyPct": {
            "type": "number"
          }
        }
      },
      "MachineUtilRow": {
        "type": "object",
        "properties": {
          "machineId": {
            "type": "integer",
            "format": "int64"
          },
          "machineCode": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "lineName": {
            "type": "string"
          },
          "daysActive": {
            "type": "integer",
            "format": "int64"
          },
          "runMinutes": {
            "type": "number"
          },
          "availableMinutes": {
            "type": "number"
          },
          "utilizationPct": {
            "type": "number"
          },
          "pieces": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "LineBalanceRow": {
        "type": "object",
        "properties": {
          "styleOperationId": {
            "type": "integer",
            "format": "int64"
          },
          "productName": {
            "type": "string"
          },
          "operationName": {
            "type": "string"
          },
          "samMinutes": {
            "type": "number"
          },
          "pieces": {
            "type": "integer",
            "format": "int64"
          },
          "actualMinutes": {
            "type": "number"
          },
          "avgMinutesPerPiece": {
            "type": "number"
          },
          "variancePct": {
            "type": "number"
          }
        }
      },
      "ReportMeta": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "permissionKey": {
            "type": "string"
          },
          "acceptsDateRange": {
            "type": "boolean"
          }
        }
      },
      "ReportResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Column"
            }
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          "rowCount": {
            "type": "integer",
            "format": "int32"
          },
          "truncated": {
            "type": "boolean"
          },
          "generatedAt": {
            "type": "string"
          }
        }
      },
      "ChangesPage": {
        "type": "object",
        "properties": {
          "changes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Change"
            }
          },
          "nextCursor": {
            "type": "string"
          },
          "hasMore": {
            "type": "boolean"
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "skipped": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Skipped"
            }
          }
        }
      },
      "ProductListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productCode": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "garmentType": {
            "type": "string"
          },
          "brandName": {
            "type": "string"
          },
          "hsnCode": {
            "type": "string"
          },
          "standardCost": {
            "type": "number"
          },
          "gstPct": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "productImageUrl": {
            "type": "string"
          },
          "mrp": {
            "type": "number"
          },
          "moq": {
            "type": "integer",
            "format": "int32"
          },
          "sizeCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalFgQty": {
            "type": "integer",
            "format": "int32"
          },
          "isCombo": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          }
        }
      },
      "CreatedProductSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productCode": {
            "type": "string"
          },
          "colorName": {
            "type": "string"
          }
        }
      },
      "SkuDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "articleNo": {
            "type": "string"
          }
        }
      },
      "CustomerNameDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "customerName": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DescriptionDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "description": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SizeDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "gsCode": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "standardCost": {
            "type": "number"
          },
          "mrp": {
            "type": "number"
          },
          "moq": {
            "type": "integer",
            "format": "int32"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BomLineDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "rmTypeId": {
            "type": "integer",
            "format": "int64"
          },
          "materialType": {
            "type": "string"
          },
          "rmId": {
            "type": "integer",
            "format": "int64"
          },
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "materialName": {
            "type": "string"
          },
          "consumption": {
            "type": "number"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "uomName": {
            "type": "string"
          },
          "pricePerUom": {
            "type": "number"
          },
          "totalPrice": {
            "type": "number"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "selectedSizes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sizeConsumptions": {
            "type": "object",
            "additionalProperties": {
              "type": "number"
            }
          },
          "existingMaterial": {
            "type": "boolean"
          },
          "isExistingMaterial": {
            "type": "boolean"
          }
        }
      },
      "AttachmentDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "originalName": {
            "type": "string"
          },
          "fileType": {
            "type": "string"
          },
          "fileSizeKb": {
            "type": "integer",
            "format": "int32"
          },
          "fileUrl": {
            "type": "string"
          },
          "storedValue": {
            "type": "string"
          }
        }
      },
      "BuyerPoListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "poCode": {
            "type": "string"
          },
          "poType": {
            "type": "string"
          },
          "orderSource": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "buyerPoNo": {
            "type": "string"
          },
          "poNo": {
            "type": "string"
          },
          "txnDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "shippingMethod": {
            "type": "string"
          },
          "exLocation": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "netTotal": {
            "type": "number"
          },
          "lineCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalQty": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "styleNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "packingSlipGenerated": {
            "type": "boolean"
          }
        }
      },
      "Guidance": {
        "type": "object",
        "properties": {
          "nextActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NextAction"
            }
          },
          "blockers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Blocker"
            }
          }
        }
      },
      "BuyerPoLineDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "headerId": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "productCode": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "colorId": {
            "type": "integer",
            "format": "int64"
          },
          "colorName": {
            "type": "string"
          },
          "locationName": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "articleNo": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "gsCode": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "lineType": {
            "type": "string"
          },
          "qty": {
            "type": "integer",
            "format": "int32"
          },
          "actualQty": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number"
          },
          "discountPct": {
            "type": "number"
          },
          "discountAmt": {
            "type": "number"
          },
          "gstPct": {
            "type": "number"
          },
          "gstAmt": {
            "type": "number"
          },
          "subTotal": {
            "type": "number"
          },
          "lineTotal": {
            "type": "number"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ListItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "qcNo": {
            "type": "string"
          },
          "qcDate": {
            "type": "string",
            "format": "date"
          },
          "qcPerson": {
            "type": "string"
          },
          "process": {
            "type": "string"
          },
          "dcNo": {
            "type": "string"
          },
          "vendorName": {
            "type": "string"
          },
          "locationName": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "InspectionLineDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "grnLineId": {
            "type": "integer",
            "format": "int64"
          },
          "dcNo": {
            "type": "string"
          },
          "fabricProgramNo": {
            "type": "string"
          },
          "itemType": {
            "type": "string"
          },
          "itemNo": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "gsm": {
            "type": "number"
          },
          "width": {
            "type": "number"
          },
          "weight": {
            "type": "number"
          },
          "rollQty": {
            "type": "number"
          },
          "acceptedQty": {
            "type": "number"
          },
          "qcResult": {
            "type": "string"
          }
        }
      },
      "StockInwardLineDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "grnLineId": {
            "type": "integer",
            "format": "int64"
          },
          "dcNo": {
            "type": "string"
          },
          "fabricProgramNo": {
            "type": "string"
          },
          "itemType": {
            "type": "string"
          },
          "fabricId": {
            "type": "integer",
            "format": "int64"
          },
          "itemName": {
            "type": "string"
          },
          "inwardFabricColor": {
            "type": "string"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "uomName": {
            "type": "string"
          },
          "lotNo": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "gsm": {
            "type": "number"
          },
          "weight": {
            "type": "number"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "approved": {
            "type": "boolean"
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PurchaseOrderListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "poNum": {
            "type": "string"
          },
          "poDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "vendorCode": {
            "type": "string"
          },
          "vendorPhone": {
            "type": "string"
          },
          "vendorWhatsapp": {
            "type": "string"
          },
          "vendorEmail": {
            "type": "string"
          },
          "shipToLabel": {
            "type": "string"
          },
          "orderMode": {
            "type": "string"
          },
          "poCategory": {
            "type": "string"
          },
          "processName": {
            "type": "string"
          },
          "sourceRefType": {
            "type": "string"
          },
          "sourceLabels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "itemTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "itemsCount": {
            "type": "integer",
            "format": "int32"
          },
          "grandTotal": {
            "type": "number"
          },
          "receivedAmount": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "approverName": {
            "type": "string"
          },
          "approvedOn": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "shippingMethod": {
            "type": "string"
          },
          "shippingTerms": {
            "type": "string"
          },
          "paymentTerms": {
            "type": "string"
          },
          "cf1": {
            "type": "string"
          },
          "cf2": {
            "type": "string"
          },
          "cf3": {
            "type": "string"
          },
          "cf4": {
            "type": "string"
          },
          "cf5": {
            "type": "string"
          }
        }
      },
      "PoLineDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "lineNo": {
            "type": "integer",
            "format": "int32"
          },
          "rmType": {
            "type": "string"
          },
          "rmRefType": {
            "type": "string"
          },
          "rmRefId": {
            "type": "integer",
            "format": "int64"
          },
          "rmLabel": {
            "type": "string"
          },
          "productionOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "productionOrderNo": {
            "type": "string"
          },
          "productNo": {
            "type": "string"
          },
          "countValue": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "gsm": {
            "type": "number"
          },
          "millVendorId": {
            "type": "integer",
            "format": "int64"
          },
          "millVendorName": {
            "type": "string"
          },
          "lotNo": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "uom": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number"
          },
          "grossAmount": {
            "type": "number"
          },
          "discountPct": {
            "type": "number"
          },
          "discountAmount": {
            "type": "number"
          },
          "totalAfterDiscount": {
            "type": "number"
          },
          "gstPct": {
            "type": "number"
          },
          "gstAmount": {
            "type": "number"
          },
          "totalAmount": {
            "type": "number"
          },
          "allowancePct": {
            "type": "number"
          }
        }
      },
      "PoCustomFieldConfigDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "slotNo": {
            "type": "integer",
            "format": "int32"
          },
          "label": {
            "type": "string"
          },
          "fieldType": {
            "type": "string"
          },
          "options": {
            "type": "string"
          },
          "placement": {
            "type": "string"
          }
        }
      },
      "PoApprovalTrailDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "action": {
            "type": "string"
          },
          "performedBy": {
            "type": "integer",
            "format": "int64"
          },
          "performedByName": {
            "type": "string"
          },
          "performedAt": {
            "type": "string",
            "format": "date-time"
          },
          "comment": {
            "type": "string"
          }
        }
      },
      "GrnListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "grnNum": {
            "type": "string"
          },
          "grnDate": {
            "type": "string",
            "format": "date"
          },
          "mode": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "warehouseName": {
            "type": "string"
          },
          "dcNum": {
            "type": "string"
          },
          "invoiceNum": {
            "type": "string"
          },
          "vendorId": {
            "type": "integer",
            "format": "int64"
          },
          "vendorName": {
            "type": "string"
          },
          "vendorPhone": {
            "type": "string"
          },
          "vendorWhatsapp": {
            "type": "string"
          },
          "vendorEmail": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "lineCount": {
            "type": "integer",
            "format": "int32"
          },
          "itemTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "totalQty": {
            "type": "number"
          },
          "postedAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GrnRollLine": {
        "type": "object",
        "properties": {
          "rollNumber": {
            "type": "string"
          },
          "length": {
            "type": "number"
          }
        }
      },
      "GrnLineDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "poId": {
            "type": "integer",
            "format": "int64"
          },
          "poNum": {
            "type": "string"
          },
          "poLineId": {
            "type": "integer",
            "format": "int64"
          },
          "itemRefType": {
            "type": "string"
          },
          "itemRefId": {
            "type": "integer",
            "format": "int64"
          },
          "itemCode": {
            "type": "string"
          },
          "itemDescription": {
            "type": "string"
          },
          "uom": {
            "type": "string"
          },
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "sizeId": {
            "type": "integer",
            "format": "int64"
          },
          "scale": {
            "type": "string"
          },
          "poQty": {
            "type": "number"
          },
          "prevReceived": {
            "type": "number"
          },
          "receiveQty": {
            "type": "number"
          },
          "rejectQty": {
            "type": "number"
          },
          "netQty": {
            "type": "number"
          },
          "unitPrice": {
            "type": "number"
          },
          "lotNumber": {
            "type": "string"
          },
          "rollNo": {
            "type": "string"
          },
          "qcStatus": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          },
          "acceptedQty": {
            "type": "number"
          },
          "rejectedQty": {
            "type": "number"
          },
          "rejectionReason": {
            "type": "string"
          },
          "qcMode": {
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "GrnPoLinkDTO": {
        "type": "object",
        "properties": {
          "poId": {
            "type": "integer",
            "format": "int64"
          },
          "poNum": {
            "type": "string"
          }
        }
      },
      "GrnTrailDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "actorId": {
            "type": "integer",
            "format": "int64"
          },
          "actorName": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GrnSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "grnNo": {
            "type": "string"
          },
          "receivedDate": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "ReceivableLineDTO": {
        "type": "object",
        "properties": {
          "poLineId": {
            "type": "integer",
            "format": "int64"
          },
          "rmType": {
            "type": "string"
          },
          "rmLabel": {
            "type": "string"
          },
          "productNo": {
            "type": "string"
          },
          "countValue": {
            "type": "string"
          },
          "width": {
            "type": "number"
          },
          "gsm": {
            "type": "number"
          },
          "millVendorName": {
            "type": "string"
          },
          "lotNo": {
            "type": "string"
          },
          "poQty": {
            "type": "number"
          },
          "uom": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number"
          },
          "allowancePct": {
            "type": "number"
          },
          "receivedSoFar": {
            "type": "number"
          },
          "maxReceivableNow": {
            "type": "number"
          },
          "approvedSoFar": {
            "type": "number"
          }
        }
      },
      "RmUomDenominationDTO": {
        "type": "object",
        "properties": {
          "uomId": {
            "type": "integer",
            "format": "int64"
          },
          "uomName": {
            "type": "string"
          },
          "denomination": {
            "type": "number"
          }
        }
      },
      "RmStockSizeDTO": {
        "type": "object",
        "properties": {
          "sizeId": {
            "type": "integer",
            "format": "int64"
          },
          "sizeName": {
            "type": "string"
          },
          "onHandQty": {
            "type": "number"
          }
        }
      },
      "FabricRollDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "lotId": {
            "type": "integer",
            "format": "int64"
          },
          "rollNumber": {
            "type": "string"
          },
          "grossMeters": {
            "type": "number"
          },
          "netMeters": {
            "type": "number"
          },
          "usedMeters": {
            "type": "number"
          },
          "availableMeters": {
            "type": "number"
          },
          "colourHex": {
            "type": "string"
          },
          "widthCm": {
            "type": "number"
          },
          "weightGsm": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          }
        }
      },
      "FgInventoryDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "skuId": {
            "type": "integer",
            "format": "int64"
          },
          "sku": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "articleNo": {
            "type": "string"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "productCode": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "colorName": {
            "type": "string"
          },
          "colorCode": {
            "type": "string"
          },
          "gsCode": {
            "type": "string"
          },
          "productImageUrl": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "warehouseName": {
            "type": "string"
          },
          "warehouseCode": {
            "type": "string"
          },
          "productLocationName": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string"
          },
          "hasPieceBarcodes": {
            "type": "boolean"
          }
        }
      },
      "ProductionOrderListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productionOrderNumber": {
            "type": "string"
          },
          "orderType": {
            "type": "string"
          },
          "styleCode": {
            "type": "string"
          },
          "styleName": {
            "type": "string"
          },
          "colorName": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "buyerName": {
            "type": "string"
          },
          "locationName": {
            "type": "string"
          },
          "totalQuantity": {
            "type": "integer",
            "format": "int32"
          },
          "productionQuantity": {
            "type": "integer",
            "format": "int32"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "exFactoryDate": {
            "type": "string",
            "format": "date"
          },
          "workflowTemplateName": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "tnaStatus": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "poRaiseAvailable": {
            "type": "boolean"
          }
        }
      },
      "LineDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "measurementPointId": {
            "type": "integer",
            "format": "int64"
          },
          "pointName": {
            "type": "string"
          },
          "uom": {
            "type": "string"
          },
          "specValue": {
            "type": "number"
          },
          "tolMinus": {
            "type": "number"
          },
          "tolPlus": {
            "type": "number"
          },
          "actualValue": {
            "type": "number"
          },
          "deviation": {
            "type": "number"
          },
          "result": {
            "type": "string"
          }
        }
      },
      "LinkedBuyerPoDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoNumber": {
            "type": "string"
          },
          "buyerPoDate": {
            "type": "string",
            "format": "date"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "styleCode": {
            "type": "string"
          },
          "remarks": {
            "type": "string"
          }
        }
      },
      "TnaStepDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "stepName": {
            "type": "string"
          },
          "stageType": {
            "type": "string"
          },
          "activityType": {
            "type": "string"
          },
          "plannedDate": {
            "type": "string",
            "format": "date"
          },
          "actualDate": {
            "type": "string",
            "format": "date"
          },
          "plannedStart": {
            "type": "string",
            "format": "date"
          },
          "plannedEnd": {
            "type": "string",
            "format": "date"
          },
          "actualStart": {
            "type": "string",
            "format": "date"
          },
          "actualEnd": {
            "type": "string",
            "format": "date"
          },
          "varianceDays": {
            "type": "integer",
            "format": "int32"
          },
          "leadDays": {
            "type": "integer",
            "format": "int32"
          },
          "sequenceNumber": {
            "type": "integer",
            "format": "int32"
          },
          "tnaStatus": {
            "type": "string"
          },
          "critical": {
            "type": "boolean"
          },
          "predecessors": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "linkedRefType": {
            "type": "string"
          },
          "linkedRefId": {
            "type": "integer",
            "format": "int64"
          },
          "remarks": {
            "type": "string"
          },
          "samBased": {
            "type": "boolean"
          }
        }
      },
      "ListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "workOrderNumber": {
            "type": "string"
          },
          "productionOrderNumber": {
            "type": "string"
          },
          "productionOrderCount": {
            "type": "integer",
            "format": "int32"
          },
          "styleProductId": {
            "type": "integer",
            "format": "int64"
          },
          "productName": {
            "type": "string"
          },
          "styleName": {
            "type": "string"
          },
          "colorName": {
            "type": "string"
          },
          "season": {
            "type": "string"
          },
          "brandName": {
            "type": "string"
          },
          "workflowName": {
            "type": "string"
          },
          "woDate": {
            "type": "string",
            "format": "date"
          },
          "deliveryDate": {
            "type": "string",
            "format": "date"
          },
          "jobWork": {
            "type": "boolean"
          },
          "status": {
            "type": "string"
          },
          "overdue": {
            "type": "boolean"
          },
          "totalQty": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ProductionOrderRef": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productionOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "productionOrderNumber": {
            "type": "string"
          },
          "qty": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BuyerPoRef": {
        "type": "object",
        "properties": {
          "buyerPoId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoNumber": {
            "type": "string"
          },
          "buyerPoDate": {
            "type": "string",
            "format": "date"
          },
          "buyerName": {
            "type": "string"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "productionOrderNumber": {
            "type": "string"
          }
        }
      },
      "BomRow": {
        "type": "object",
        "properties": {
          "materialName": {
            "type": "string"
          },
          "materialType": {
            "type": "string"
          },
          "colorShade": {
            "type": "string"
          },
          "uom": {
            "type": "string"
          },
          "consumption": {
            "type": "number"
          },
          "requiredQty": {
            "type": "number"
          },
          "availableQty": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "rmId": {
            "type": "integer",
            "format": "int64"
          },
          "imageUrl": {
            "type": "string"
          },
          "availableQtyForStyle": {
            "type": "number"
          },
          "availableQtyForBuyerPo": {
            "type": "number"
          },
          "availableQtyForProductionOrder": {
            "type": "number"
          }
        }
      },
      "WfStageDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "seq": {
            "type": "integer",
            "format": "int32"
          },
          "processDefinitionId": {
            "type": "integer",
            "format": "int64"
          },
          "label": {
            "type": "string"
          },
          "stageType": {
            "type": "string"
          },
          "activityType": {
            "type": "string"
          },
          "leadDays": {
            "type": "integer",
            "format": "int32"
          },
          "blocking": {
            "type": "boolean"
          },
          "edgeType": {
            "type": "string"
          },
          "fixed": {
            "type": "boolean"
          },
          "predecessors": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          }
        }
      },
      "AvailableSize": {
        "type": "object",
        "properties": {
          "sizeCode": {
            "type": "string"
          },
          "sizeName": {
            "type": "string"
          },
          "available": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DhuRow": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "lineId": {
            "type": "integer",
            "format": "int64"
          },
          "lineName": {
            "type": "string"
          },
          "checked": {
            "type": "integer",
            "format": "int32"
          },
          "defects": {
            "type": "integer",
            "format": "int32"
          },
          "dhuPct": {
            "type": "number",
            "format": "double"
          },
          "band": {
            "type": "string"
          }
        }
      },
      "BoxListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "containerNo": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "totalUnits": {
            "type": "integer",
            "format": "int32"
          },
          "lineCount": {
            "type": "integer",
            "format": "int32"
          },
          "masterBoxId": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string"
          }
        }
      },
      "RollAllocationInput": {
        "type": "object",
        "properties": {
          "rollId": {
            "type": "integer",
            "format": "int64"
          },
          "qty": {
            "type": "number"
          }
        }
      },
      "BoxLineDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "skuId": {
            "type": "integer",
            "format": "int64"
          },
          "sku": {
            "type": "string"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "productCode": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "colorName": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "qty": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BarcodeEventDTO": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string"
          },
          "barcodeScanned": {
            "type": "string"
          },
          "skuId": {
            "type": "integer",
            "format": "int64"
          },
          "qty": {
            "type": "number"
          },
          "userName": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        }
      },
      "MasterBoxListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "containerNo": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "warehouseId": {
            "type": "integer",
            "format": "int64"
          },
          "totalBoxes": {
            "type": "integer",
            "format": "int32"
          },
          "totalUnits": {
            "type": "integer",
            "format": "int32"
          },
          "consigneeName": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "hasVideo": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          }
        }
      },
      "ChildBoxDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "containerNo": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "sizeCode": {
            "type": "string"
          },
          "totalUnits": {
            "type": "integer",
            "format": "int32"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineDTO"
            }
          }
        }
      },
      "VideoDTO": {
        "type": "object",
        "properties": {
          "videoUrl": {
            "type": "string"
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "durationSec": {
            "type": "integer",
            "format": "int32"
          },
          "sizeBytes": {
            "type": "integer",
            "format": "int64"
          },
          "createdAt": {
            "type": "string"
          }
        }
      },
      "ShipmentDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "shipDate": {
            "type": "string"
          },
          "carrier": {
            "type": "string"
          },
          "trackingNo": {
            "type": "string"
          },
          "totalQty": {
            "type": "integer",
            "format": "int32"
          },
          "shippedAt": {
            "type": "string"
          }
        }
      },
      "EventDTO": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string"
          },
          "barcodeScanned": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "userName": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        }
      },
      "PoListDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "poNo": {
            "type": "string"
          },
          "poCreationDate": {
            "type": "string",
            "format": "date"
          },
          "vendorName": {
            "type": "string"
          },
          "companyLocationName": {
            "type": "string"
          },
          "shipToType": {
            "type": "string"
          },
          "shipToLabel": {
            "type": "string"
          },
          "poDeliveryDate": {
            "type": "string",
            "format": "date"
          },
          "shipMode": {
            "type": "string"
          },
          "itemsCount": {
            "type": "integer",
            "format": "int32"
          },
          "grandTotal": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "closureType": {
            "type": "string"
          },
          "approverName": {
            "type": "string"
          },
          "grnCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PoAttachmentDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "fileName": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "uploadedAt": {
            "type": "string",
            "format": "date-time"
          },
          "uploadedBy": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "DebitNoteDTO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "debitNoteNo": {
            "type": "string"
          },
          "grnLineId": {
            "type": "integer",
            "format": "int64"
          },
          "poLineId": {
            "type": "integer",
            "format": "int64"
          },
          "rmLabel": {
            "type": "string"
          },
          "damageQty": {
            "type": "number"
          },
          "uom": {
            "type": "string"
          },
          "unitPrice": {
            "type": "number"
          },
          "amount": {
            "type": "number"
          },
          "raisedBy": {
            "type": "integer",
            "format": "int64"
          },
          "raisedByName": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PaymentAllocationDTO": {
        "type": "object",
        "properties": {
          "itemType": {
            "type": "string"
          },
          "itemRefId": {
            "type": "integer",
            "format": "int64"
          },
          "reference": {
            "type": "string"
          },
          "amountAllocated": {
            "type": "number"
          }
        }
      },
      "LineUtilization": {
        "type": "object",
        "properties": {
          "lineId": {
            "type": "integer",
            "format": "int64"
          },
          "lineName": {
            "type": "string"
          },
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "workingDays": {
            "type": "integer",
            "format": "int32"
          },
          "availableMinutes": {
            "type": "number"
          },
          "plannedMinutes": {
            "type": "number"
          },
          "utilizationPct": {
            "type": "number"
          },
          "entryCount": {
            "type": "integer",
            "format": "int32"
          },
          "samMinutes": {
            "type": "number"
          }
        }
      },
      "FactoryUtilization": {
        "type": "object",
        "properties": {
          "locationId": {
            "type": "integer",
            "format": "int64"
          },
          "locationName": {
            "type": "string"
          },
          "lineCount": {
            "type": "integer",
            "format": "int32"
          },
          "availableMinutes": {
            "type": "number"
          },
          "plannedMinutes": {
            "type": "number"
          },
          "utilizationPct": {
            "type": "number"
          }
        }
      },
      "OverloadRow": {
        "type": "object",
        "properties": {
          "entryId": {
            "type": "integer",
            "format": "int64"
          },
          "linePlanId": {
            "type": "integer",
            "format": "int64"
          },
          "planNo": {
            "type": "string"
          },
          "lineId": {
            "type": "integer",
            "format": "int64"
          },
          "lineName": {
            "type": "string"
          },
          "buyerPoId": {
            "type": "integer",
            "format": "int64"
          },
          "buyerPoCode": {
            "type": "string"
          },
          "styleCode": {
            "type": "string"
          },
          "styleName": {
            "type": "string"
          },
          "totalQty": {
            "type": "integer",
            "format": "int32"
          },
          "plannedStart": {
            "type": "string",
            "format": "date"
          },
          "plannedEnd": {
            "type": "string",
            "format": "date"
          },
          "buyerDeliveryDate": {
            "type": "string",
            "format": "date"
          },
          "delayDays": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "Column": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "Change": {
        "type": "object",
        "properties": {
          "resource": {
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "number": {
            "type": "string"
          },
          "changedAt": {
            "type": "string",
            "format": "date-time"
          },
          "path": {
            "type": "string"
          }
        }
      },
      "Skipped": {
        "type": "object",
        "properties": {
          "resource": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "NextAction": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "route": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          }
        }
      },
      "Blocker": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "fixes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FixAction"
            }
          },
          "helpArticle": {
            "type": "string"
          }
        }
      }
    },
    "responses": {
      "E400": {
        "description": "The request isn't valid — the message says what to fix. Codes: VALIDATION_FAILED · IDEMPOTENCY_KEY_REQUIRED.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E401": {
        "description": "No valid API key or access token. Codes: INVALID_KEY · KEY_REVOKED · KEY_EXPIRED · TOKEN_INVALID.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E403": {
        "description": "Not allowed for this client, plan, role, address or company. Codes: SCOPE_MISSING · PLAN_NOT_ALLOWED · PERMISSION_DENIED · IP_NOT_ALLOWED · CLIENT_REVOKED · CLIENT_SUSPENDED · API_DISABLED · SANDBOX_NOT_READY.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E404": {
        "description": "No published API at this path, or the record doesn't exist. Codes: ROUTE_NOT_FOUND · NOT_FOUND.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E405": {
        "description": "The path exists but not for this method. Codes: METHOD_NOT_ALLOWED.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E409": {
        "description": "The record changed, or the Idempotency-Key was used for a different request. Codes: CONFLICT · IDEMPOTENCY_MISMATCH · IDEMPOTENCY_IN_PROGRESS.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E413": {
        "description": "The body is larger than 2 MB. Codes: BODY_TOO_LARGE.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E422": {
        "description": "A KERN business rule stopped it — `code`, `fixes` and `helpArticle` explain why. Codes: BUSINESS_RULE (and specific reason codes).",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E429": {
        "description": "Too many calls — wait for Retry-After seconds. Codes: RATE_LIMITED.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      },
      "E500": {
        "description": "Something went wrong on our side — quote the correlationId / X-Request-Id. Codes: INTERNAL.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KernError"
            }
          }
        }
      }
    }
  },
  "x-kern-error-codes": true,
  "x-kern-webhook-events": [
    {
      "type": "purchase_order.approved",
      "label": "Purchase order approved",
      "scope": "erp.procurement.purchase_orders:read",
      "apiPath": "/public/v1/procurement/purchase-orders/{id}"
    },
    {
      "type": "grn.posted",
      "label": "GRN posted to stock",
      "scope": "erp.procurement.grns:read",
      "apiPath": "/public/v1/procurement/grns/{id}"
    },
    {
      "type": "buyer_po.approved",
      "label": "Buyer PO approved",
      "scope": "erp.sales.buyer_pos:read",
      "apiPath": "/public/v1/sales/buyer-pos/{id}"
    },
    {
      "type": "sales_invoice.issued",
      "label": "Sales invoice issued",
      "scope": "erp.sales.invoices:read",
      "apiPath": "/public/v1/sales/invoices/{id}"
    },
    {
      "type": "packing_slip.shipped",
      "label": "Packing slip shipped",
      "scope": "erp.packing.packing_slips:read",
      "apiPath": "/public/v1/packing/packing-slips/{id}"
    },
    {
      "type": "production_order.activated",
      "label": "Production order activated",
      "scope": "erp.production.production_orders:read",
      "apiPath": "/public/v1/production/production-orders/{id}"
    },
    {
      "type": "work_order.issued",
      "label": "Work order issued",
      "scope": "erp.production.work_orders:read",
      "apiPath": "/public/v1/production/work-orders/{id}"
    },
    {
      "type": "production_run.completed",
      "label": "Production run completed",
      "scope": "erp.production.runs:read",
      "apiPath": "/public/v1/production/runs/{id}"
    },
    {
      "type": "store_transfer.received",
      "label": "Stock transfer received",
      "scope": "erp.stores.transfers:read",
      "apiPath": "/public/v1/stores/transfers/{id}"
    },
    {
      "type": "stock_issue.approved",
      "label": "Stock issue approved",
      "scope": "erp.stores.stock_issues:read",
      "apiPath": "/public/v1/stores/stock-issues/{id}"
    }
  ],
  "x-kern-errors": [
    {
      "code": "VALIDATION_FAILED",
      "status": 400,
      "meaning": "The request isn't valid.",
      "fix": "Read the message: it names the field to fix. Check the request body against the API reference.",
      "docs": "https://www.codeverse.in/developers/guides/#error-validation-failed"
    },
    {
      "code": "IDEMPOTENCY_KEY_REQUIRED",
      "status": 400,
      "meaning": "A write was sent without an Idempotency-Key header.",
      "fix": "Send an Idempotency-Key header (a new UUID per action) with every POST, PUT, PATCH or DELETE that changes data.",
      "docs": "https://www.codeverse.in/developers/guides/#error-idempotency-key-required"
    },
    {
      "code": "INVALID_KEY",
      "status": 401,
      "meaning": "No valid API key was sent, or the key is for the other KERN product.",
      "fix": "Send Authorization: Bearer <key>. Check you're calling the right product (/cedge for KERN ERP, /cedge-crm for KERN CRM).",
      "docs": "https://www.codeverse.in/developers/guides/#error-invalid-key"
    },
    {
      "code": "KEY_REVOKED",
      "status": 401,
      "meaning": "This key was revoked.",
      "fix": "Create a new key on Settings → API & Integrations.",
      "docs": "https://www.codeverse.in/developers/guides/#error-key-revoked"
    },
    {
      "code": "KEY_EXPIRED",
      "status": 401,
      "meaning": "This key has passed its expiry date, or its 24-hour changeover after a rotation ended.",
      "fix": "Use the newer key, or create a new one.",
      "docs": "https://www.codeverse.in/developers/guides/#error-key-expired"
    },
    {
      "code": "TOKEN_INVALID",
      "status": 401,
      "meaning": "The OAuth access token is invalid or has expired (tokens last 15 minutes).",
      "fix": "Get a new token from POST /public/v1/oauth/token. Refresh tokens a minute before they expire.",
      "docs": "https://www.codeverse.in/developers/guides/#error-token-invalid"
    },
    {
      "code": "UNAUTHORIZED",
      "status": 401,
      "meaning": "The call wasn't signed in.",
      "fix": "Send Authorization: Bearer <key or token>.",
      "docs": "https://www.codeverse.in/developers/guides/#error-unauthorized"
    },
    {
      "code": "SCOPE_MISSING",
      "status": 403,
      "meaning": "The API client isn't allowed to do this.",
      "fix": "On Settings → API & Integrations, edit the client and give it the scope named in the message (read, or read & write).",
      "docs": "https://www.codeverse.in/developers/guides/#error-scope-missing"
    },
    {
      "code": "PERMISSION_DENIED",
      "status": 403,
      "meaning": "The role the client acts as can't do this on that screen.",
      "fix": "Give the role the permission in Role Permissions, or make the client act as a role that has it.",
      "docs": "https://www.codeverse.in/developers/guides/#error-permission-denied"
    },
    {
      "code": "PLAN_NOT_ALLOWED",
      "status": 403,
      "meaning": "The company's KERN plan doesn't include this screen.",
      "fix": "Upgrade the plan, or use another API the plan includes.",
      "docs": "https://www.codeverse.in/developers/guides/#error-plan-not-allowed"
    },
    {
      "code": "API_NOT_IN_PLAN",
      "status": 403,
      "meaning": "The company's plan doesn't include API access.",
      "fix": "Upgrade to a plan with the KERN API.",
      "docs": "https://www.codeverse.in/developers/guides/#error-api-not-in-plan"
    },
    {
      "code": "PLAN_READ_ONLY",
      "status": 403,
      "meaning": "The plan (or trial) allows reading through the API, not changes.",
      "fix": "Upgrade to a plan with read and write API access.",
      "docs": "https://www.codeverse.in/developers/guides/#error-plan-read-only"
    },
    {
      "code": "IP_NOT_ALLOWED",
      "status": 403,
      "meaning": "The call came from an address that isn't on the client's IP allow-list.",
      "fix": "Add the address (or its range) to the client's allowed IP addresses, or call from an allowed server.",
      "docs": "https://www.codeverse.in/developers/guides/#error-ip-not-allowed"
    },
    {
      "code": "CLIENT_REVOKED",
      "status": 403,
      "meaning": "The API client was revoked.",
      "fix": "Create a new API client.",
      "docs": "https://www.codeverse.in/developers/guides/#error-client-revoked"
    },
    {
      "code": "CLIENT_SUSPENDED",
      "status": 403,
      "meaning": "The API client is suspended (the message says why — e.g. the plan's client limit).",
      "fix": "Fix the reason given, or ask the company admin; plan suspensions lift by themselves when the plan allows again.",
      "docs": "https://www.codeverse.in/developers/guides/#error-client-suspended"
    },
    {
      "code": "CLIENT_EXPIRED",
      "status": 403,
      "meaning": "The API client has passed its stop date.",
      "fix": "Change the client's stop date, or create a new client.",
      "docs": "https://www.codeverse.in/developers/guides/#error-client-expired"
    },
    {
      "code": "API_DISABLED",
      "status": 403,
      "meaning": "API access is switched off for this company.",
      "fix": "A company admin can turn it on at Settings → API & Integrations.",
      "docs": "https://www.codeverse.in/developers/guides/#error-api-disabled"
    },
    {
      "code": "COMPANY_INACTIVE",
      "status": 403,
      "meaning": "The company's account isn't active.",
      "fix": "Contact the company admin or Codeverse support.",
      "docs": "https://www.codeverse.in/developers/guides/#error-company-inactive"
    },
    {
      "code": "SANDBOX_NOT_READY",
      "status": 403,
      "meaning": "A sandbox key was used before the company's sandbox exists.",
      "fix": "Create the sandbox on Settings → API & Integrations (it takes a minute or two).",
      "docs": "https://www.codeverse.in/developers/guides/#error-sandbox-not-ready"
    },
    {
      "code": "TRY_IT_SANDBOX_ONLY",
      "status": 403,
      "meaning": "A live key was used from the developer docs' Try it.",
      "fix": "Use a sandbox key (kern_test_…) in Try it. Never paste a live key into a web page — if you did, rotate it.",
      "docs": "https://www.codeverse.in/developers/guides/#error-try-it-sandbox-only"
    },
    {
      "code": "SANDBOX_PREPARING",
      "status": 503,
      "meaning": "KERN CRM's half of the sandbox is being prepared.",
      "fix": "Wait a few seconds and try again.",
      "docs": "https://www.codeverse.in/developers/guides/#error-sandbox-preparing"
    },
    {
      "code": "ROUTE_NOT_FOUND",
      "status": 404,
      "meaning": "There's no published API at this path.",
      "fix": "Check the path in the API reference (paths start /public/v1/).",
      "docs": "https://www.codeverse.in/developers/guides/#error-route-not-found"
    },
    {
      "code": "NOT_FOUND",
      "status": 404,
      "meaning": "The record doesn't exist in this company.",
      "fix": "Check the id — list the records first to find it.",
      "docs": "https://www.codeverse.in/developers/guides/#error-not-found"
    },
    {
      "code": "METHOD_NOT_ALLOWED",
      "status": 405,
      "meaning": "The path exists but not for this method.",
      "fix": "Use one of the methods the API reference lists for this path.",
      "docs": "https://www.codeverse.in/developers/guides/#error-method-not-allowed"
    },
    {
      "code": "CONFLICT",
      "status": 409,
      "meaning": "The record changed or is in a state that doesn't allow this.",
      "fix": "Fetch the record again, check its status and try again.",
      "docs": "https://www.codeverse.in/developers/guides/#error-conflict"
    },
    {
      "code": "IDEMPOTENCY_MISMATCH",
      "status": 409,
      "meaning": "This Idempotency-Key was already used for a different request.",
      "fix": "Use a new Idempotency-Key for a new action; reuse a key only to retry the exact same request.",
      "docs": "https://www.codeverse.in/developers/guides/#error-idempotency-mismatch"
    },
    {
      "code": "IDEMPOTENCY_IN_PROGRESS",
      "status": 409,
      "meaning": "A request with this Idempotency-Key is still running.",
      "fix": "Wait a moment and retry with the same key — you'll get the first answer back.",
      "docs": "https://www.codeverse.in/developers/guides/#error-idempotency-in-progress"
    },
    {
      "code": "BODY_TOO_LARGE",
      "status": 413,
      "meaning": "The request body is larger than 2 MB.",
      "fix": "Send smaller requests (split large lists into several calls).",
      "docs": "https://www.codeverse.in/developers/guides/#error-body-too-large"
    },
    {
      "code": "BUSINESS_RULE",
      "status": 422,
      "meaning": "A KERN business rule stopped the change.",
      "fix": "Read message, fixes and helpArticle in the response — they say what to do first.",
      "docs": "https://www.codeverse.in/developers/guides/#error-business-rule"
    },
    {
      "code": "RATE_LIMITED",
      "status": 429,
      "meaning": "Too many calls in a minute.",
      "fix": "Wait for the Retry-After seconds, then go on. Spread calls out; X-RateLimit-Remaining shows what's left.",
      "docs": "https://www.codeverse.in/developers/guides/#error-rate-limited"
    },
    {
      "code": "QUOTA_EXCEEDED",
      "status": 429,
      "meaning": "This month's API calls in the plan are used up.",
      "fix": "Calls start again on the 1st; upgrade the plan for more. X-Kern-Monthly-Remaining shows what's left.",
      "docs": "https://www.codeverse.in/developers/guides/#error-quota-exceeded"
    },
    {
      "code": "INTERNAL",
      "status": 500,
      "meaning": "Something went wrong on our side.",
      "fix": "Retry later. If it keeps happening, contact support and quote the correlationId (X-Request-Id).",
      "docs": "https://www.codeverse.in/developers/guides/#error-internal"
    }
  ]
}