{
  "openapi": "3.0.3",
  "info": {
    "title": "Hamroh Cloud API",
    "version": "2026-09-10",
    "description": "Source-derived request contract. Reviewed response schemas are selective; see operation notes. This is a public reference, not an unauthenticated API or SDK guarantee."
  },
  "servers": [
    {
      "url": "https://api.hamrohio.uz",
      "description": "Production. Mutating operations require explicit operational authorization."
    }
  ],
  "tags": [
    {
      "name": "admin-users"
    },
    {
      "name": "analytics"
    },
    {
      "name": "audit"
    },
    {
      "name": "auth"
    },
    {
      "name": "customers"
    },
    {
      "name": "devices"
    },
    {
      "name": "firmware"
    },
    {
      "name": "health"
    },
    {
      "name": "pairing"
    },
    {
      "name": "preorders"
    },
    {
      "name": "sales"
    },
    {
      "name": "settings"
    }
  ],
  "paths": {
    "/v1/admin/team": {
      "get": {
        "operationId": "AdminUsersController_list",
        "tags": [
          "admin-users"
        ],
        "summary": "list",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/admin-users/admin-users.controller.ts",
          "line": 12
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "post": {
        "operationId": "AdminUsersController_create",
        "tags": [
          "admin-users"
        ],
        "summary": "create",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/admin-users/admin-users.controller.ts",
          "line": 20
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAdminUserDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/team/options": {
      "get": {
        "operationId": "AdminUsersController_options",
        "tags": [
          "admin-users"
        ],
        "summary": "options",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/admin-users/admin-users.controller.ts",
          "line": 16
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/team/{id}/role": {
      "patch": {
        "operationId": "AdminUsersController_role",
        "tags": [
          "admin-users"
        ],
        "summary": "role",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/admin-users/admin-users.controller.ts",
          "line": 24
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAdminRoleDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/team/{id}/status": {
      "patch": {
        "operationId": "AdminUsersController_status",
        "tags": [
          "admin-users"
        ],
        "summary": "status",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/admin-users/admin-users.controller.ts",
          "line": 30
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAdminStatusDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/team/{id}/reset-password": {
      "post": {
        "operationId": "AdminUsersController_resetPassword",
        "tags": [
          "admin-users"
        ],
        "summary": "reset Password",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/admin-users/admin-users.controller.ts",
          "line": 36
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/team/{id}/revoke-sessions": {
      "post": {
        "operationId": "AdminUsersController_revokeSessions",
        "tags": [
          "admin-users"
        ],
        "summary": "revoke Sessions",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/admin-users/admin-users.controller.ts",
          "line": 42
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/analytics/sales": {
      "get": {
        "operationId": "AnalyticsController_sales",
        "tags": [
          "analytics"
        ],
        "summary": "sales",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "range",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "today",
                "7d",
                "30d",
                "90d",
                "year",
                "custom"
              ],
              "default": "30d"
            }
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "currency",
            "required": false,
            "schema": {
              "type": "string",
              "default": "UZS"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/analytics/analytics.controller.ts",
          "line": 12
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/analytics/operations": {
      "get": {
        "operationId": "AnalyticsController_operations",
        "tags": [
          "analytics"
        ],
        "summary": "operations",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/analytics/analytics.controller.ts",
          "line": 13
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/audit": {
      "get": {
        "operationId": "AuditController_list",
        "tags": [
          "audit"
        ],
        "summary": "list",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/audit/audit.controller.ts",
          "line": 11
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/auth/login": {
      "post": {
        "operationId": "AuthController_login",
        "tags": [
          "auth"
        ],
        "summary": "login",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 5,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/auth/auth.controller.ts",
          "line": 12
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/auth/logout": {
      "post": {
        "operationId": "AuthController_logout",
        "tags": [
          "auth"
        ],
        "summary": "logout",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/auth/auth.controller.ts",
          "line": 19
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/auth/me": {
      "get": {
        "operationId": "AuthController_me",
        "tags": [
          "auth"
        ],
        "summary": "me",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/auth/auth.controller.ts",
          "line": 26
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/auth/password": {
      "put": {
        "operationId": "AuthController_changePassword",
        "tags": [
          "auth"
        ],
        "summary": "change Password",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/auth/auth.controller.ts",
          "line": 32
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePasswordDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/auth/sessions": {
      "get": {
        "operationId": "AuthController_sessions",
        "tags": [
          "auth"
        ],
        "summary": "sessions",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/auth/auth.controller.ts",
          "line": 37
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/auth/sessions/{id}": {
      "delete": {
        "operationId": "AuthController_revokeSession",
        "tags": [
          "auth"
        ],
        "summary": "revoke Session",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/auth/auth.controller.ts",
          "line": 40
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/customers": {
      "get": {
        "operationId": "CustomersController_list",
        "tags": [
          "customers"
        ],
        "summary": "list",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "preorderStatus",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NEW",
                "CONTACTED",
                "CONFIRMED",
                "PAYMENT_PENDING",
                "DEPOSIT_PAID",
                "READY_TO_SHIP",
                "FULFILLED",
                "CANCELLED"
              ]
            }
          },
          {
            "in": "query",
            "name": "source",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "language",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "uz",
                "en",
                "ru"
              ]
            }
          },
          {
            "in": "query",
            "name": "assignedAdminId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dateFrom",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "dateTo",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/customers/customers.controller.ts",
          "line": 12
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "post": {
        "operationId": "CustomersController_create",
        "tags": [
          "customers"
        ],
        "summary": "create",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/customers/customers.controller.ts",
          "line": 23
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/customers/export.csv": {
      "get": {
        "operationId": "CustomersController_export",
        "tags": [
          "customers"
        ],
        "summary": "export",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "preorderStatus",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NEW",
                "CONTACTED",
                "CONFIRMED",
                "PAYMENT_PENDING",
                "DEPOSIT_PAID",
                "READY_TO_SHIP",
                "FULFILLED",
                "CANCELLED"
              ]
            }
          },
          {
            "in": "query",
            "name": "source",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "language",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "uz",
                "en",
                "ru"
              ]
            }
          },
          {
            "in": "query",
            "name": "assignedAdminId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dateFrom",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "dateTo",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/customers/customers.controller.ts",
          "line": 14
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/customers/{id}": {
      "get": {
        "operationId": "CustomersController_detail",
        "tags": [
          "customers"
        ],
        "summary": "detail",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/customers/customers.controller.ts",
          "line": 21
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "patch": {
        "operationId": "CustomersController_update",
        "tags": [
          "customers"
        ],
        "summary": "update",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/customers/customers.controller.ts",
          "line": 25
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomerDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/devices": {
      "get": {
        "operationId": "DevicesController_list",
        "tags": [
          "devices"
        ],
        "summary": "list",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "INVENTORY",
                "READY",
                "SOLD",
                "CLAIMED",
                "ACTIVE",
                "RETURNED",
                "SUSPENDED",
                "REVOKED",
                "REPAIR",
                "RETIRED"
              ]
            }
          },
          {
            "in": "query",
            "name": "hardwareRevision",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "firmware",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "batch",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 12
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/devices/{id}": {
      "get": {
        "operationId": "DevicesController_detail",
        "tags": [
          "devices"
        ],
        "summary": "detail",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 15
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/claim-codes": {
      "get": {
        "operationId": "DevicesController_claimCodes",
        "tags": [
          "devices"
        ],
        "summary": "claim Codes",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 18
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/devices/batches": {
      "post": {
        "operationId": "DevicesController_createBatch",
        "tags": [
          "devices"
        ],
        "summary": "create Batch",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 23
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBatchDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/inventory/batches": {
      "get": {
        "operationId": "DevicesController_batches",
        "tags": [
          "devices"
        ],
        "summary": "batches",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DRAFT",
                "READY",
                "PROVISIONING",
                "COMPLETED",
                "ARCHIVED",
                "CANCELLED"
              ]
            }
          },
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 26
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "post": {
        "operationId": "DevicesController_createBatchDefinition",
        "tags": [
          "devices"
        ],
        "summary": "create Batch Definition",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 29
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBatchDefinitionDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/inventory/batches/{id}": {
      "get": {
        "operationId": "DevicesController_batchDetail",
        "tags": [
          "devices"
        ],
        "summary": "batch Detail",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 32
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "patch": {
        "operationId": "DevicesController_updateBatch",
        "tags": [
          "devices"
        ],
        "summary": "update Batch",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 35
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBatchDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "delete": {
        "operationId": "DevicesController_deleteBatch",
        "tags": [
          "devices"
        ],
        "summary": "delete Batch",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN"
        ],
        "x-rate-limit": {
          "limit": 10,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 44
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/inventory/batches/{id}/provision": {
      "post": {
        "operationId": "DevicesController_provisionBatch",
        "tags": [
          "devices"
        ],
        "summary": "provision Batch",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS"
        ],
        "x-rate-limit": {
          "limit": 10,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 38
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProvisionBatchDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/inventory/batches/{id}/archive": {
      "post": {
        "operationId": "DevicesController_archiveBatch",
        "tags": [
          "devices"
        ],
        "summary": "archive Batch",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 41
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/devices/{id}/status": {
      "patch": {
        "operationId": "DevicesController_status",
        "tags": [
          "devices"
        ],
        "summary": "status",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SUPPORT"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 47
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceStatusDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/devices/{id}/claim/reset": {
      "post": {
        "operationId": "DevicesController_resetClaim",
        "tags": [
          "devices"
        ],
        "summary": "reset Claim",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SUPPORT"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 50
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetClaimDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/devices/{id}/transfer": {
      "post": {
        "operationId": "DevicesController_transfer",
        "tags": [
          "devices"
        ],
        "summary": "transfer",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SUPPORT"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 53
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferOwnershipDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/devices/{id}/provisioning-envelope": {
      "post": {
        "operationId": "DevicesController_provisioningEnvelope",
        "tags": [
          "devices"
        ],
        "summary": "provisioning Envelope",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "OPERATIONS"
        ],
        "x-rate-limit": {
          "limit": 3,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 56
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProvisioningEnvelopeDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/devices/heartbeat": {
      "post": {
        "operationId": "DevicesController_heartbeat",
        "tags": [
          "devices"
        ],
        "summary": "heartbeat",
        "security": [
          {
            "deviceProof": [],
            "deviceTimestamp": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/devices/devices.controller.ts",
          "line": 61
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceHeartbeatDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/firmware": {
      "get": {
        "operationId": "FirmwareController_list",
        "tags": [
          "firmware"
        ],
        "summary": "list",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "FIRMWARE_MANAGER",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 15
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "post": {
        "operationId": "FirmwareController_create",
        "tags": [
          "firmware"
        ],
        "summary": "create",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 32
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "version": {
                    "type": "string",
                    "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$"
                  },
                  "buildNumber": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "hardwareRevision": {
                    "type": "string",
                    "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$"
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "INTERNAL",
                      "BETA",
                      "STABLE"
                    ]
                  },
                  "securityVersion": {
                    "type": "integer",
                    "minimum": 0,
                    "default": 0
                  },
                  "releaseNotes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "mandatory": {
                    "type": "boolean",
                    "default": false
                  },
                  "mandatoryAfter": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "rolloutPercentage": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100,
                    "default": 0
                  },
                  "signature": {
                    "type": "string"
                  },
                  "targetDeviceId": {
                    "type": "string"
                  },
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "version",
                  "buildNumber",
                  "hardwareRevision",
                  "channel",
                  "releaseNotes",
                  "file"
                ]
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. Legacy binary upload. Prefer the signed package route.",
        "deprecated": true
      }
    },
    "/v1/admin/firmware/package-devices": {
      "get": {
        "operationId": "FirmwareController_packageDevices",
        "tags": [
          "firmware"
        ],
        "summary": "package Devices",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "hardwareRevision",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 64
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "FIRMWARE_MANAGER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 18
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/firmware/packages/inspect": {
      "post": {
        "operationId": "FirmwareController_inspectPackage",
        "tags": [
          "firmware"
        ],
        "summary": "inspect Package",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "FIRMWARE_MANAGER"
        ],
        "x-rate-limit": {
          "limit": 10,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 21
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/firmware/packages": {
      "post": {
        "operationId": "FirmwareController_createPackage",
        "tags": [
          "firmware"
        ],
        "summary": "create Package",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "FIRMWARE_MANAGER"
        ],
        "x-rate-limit": {
          "limit": 5,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 25
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "channel": {
                    "type": "string",
                    "enum": [
                      "INTERNAL",
                      "BETA",
                      "STABLE"
                    ]
                  },
                  "targetDeviceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "mandatory": {
                    "type": "boolean",
                    "default": false
                  },
                  "releaseNotes": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8000
                  },
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "channel",
                  "releaseNotes",
                  "file"
                ]
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. Signed .hrelease only; administrator-authored releaseNotes required. INTERNAL requires a compatible targetDeviceId. Creates DRAFT only."
      }
    },
    "/v1/admin/firmware/{id}": {
      "get": {
        "operationId": "FirmwareController_detail",
        "tags": [
          "firmware"
        ],
        "summary": "detail",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "FIRMWARE_MANAGER",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 29
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/firmware/{id}/lifecycle": {
      "patch": {
        "operationId": "FirmwareController_lifecycle",
        "tags": [
          "firmware"
        ],
        "summary": "lifecycle",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "FIRMWARE_MANAGER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 35
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirmwareLifecycleDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/firmware/{id}/maintenance-grant": {
      "post": {
        "operationId": "FirmwareController_maintenanceGrant",
        "tags": [
          "firmware"
        ],
        "summary": "maintenance Grant",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "FIRMWARE_MANAGER"
        ],
        "x-rate-limit": {
          "limit": 3,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 38
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirmwareMaintenanceGrantDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/firmware/installations/{installationId}/reconcile": {
      "post": {
        "operationId": "FirmwareController_reconcileInstallation",
        "tags": [
          "firmware"
        ],
        "summary": "reconcile Installation",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "installationId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "FIRMWARE_MANAGER"
        ],
        "x-rate-limit": {
          "limit": 3,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 43
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirmwareInstallationReconciliationDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/firmware/latest": {
      "get": {
        "operationId": "FirmwareController_latest",
        "tags": [
          "firmware"
        ],
        "summary": "latest",
        "security": [
          {
            "deviceProof": [],
            "deviceTimestamp": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "serial",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "hardwareRevision",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "currentFirmware",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appVersion",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "channel",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "INTERNAL",
                "BETA",
                "STABLE"
              ],
              "default": "STABLE"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 48
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. IMPORTANT: eligibility lookup can create an AVAILABLE installation record; this GET is not side-effect-free."
      }
    },
    "/v1/admin/firmware/installations/{installationId}/interruption": {
      "post": {
        "operationId": "FirmwareController_interruption",
        "tags": [
          "firmware"
        ],
        "summary": "interruption",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "installationId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "FIRMWARE_MANAGER"
        ],
        "x-rate-limit": {
          "limit": 3,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 51
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirmwareInterruptionDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/firmware/installations/current": {
      "get": {
        "operationId": "FirmwareController_installationSnapshot",
        "tags": [
          "firmware"
        ],
        "summary": "installation Snapshot",
        "security": [
          {
            "deviceProof": [],
            "deviceTimestamp": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "serial",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          {
            "in": "query",
            "name": "installationId",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 57
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. Read-only recovery lookup: does not create an installation or sign a download URL."
      }
    },
    "/v1/firmware/report": {
      "post": {
        "operationId": "FirmwareController_report",
        "tags": [
          "firmware"
        ],
        "summary": "report",
        "security": [
          {
            "deviceProof": [],
            "deviceTimestamp": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/firmware/firmware.controller.ts",
          "line": 62
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FirmwareReportDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/health": {
      "get": {
        "operationId": "HealthController_health",
        "tags": [
          "health"
        ],
        "summary": "health",
        "security": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/health/health.controller.ts",
          "line": 9
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/devices/pair/challenge": {
      "post": {
        "operationId": "PairingController_challenge",
        "tags": [
          "pairing"
        ],
        "summary": "challenge",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PairChallengeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 10,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/pairing/pairing.controller.ts",
          "line": 10
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PairChallengeDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/devices/pair/claim": {
      "post": {
        "operationId": "PairingController_claim",
        "tags": [
          "pairing"
        ],
        "summary": "claim",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PairCredentialResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 5,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/pairing/pairing.controller.ts",
          "line": 13
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PairClaimDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/devices/pair/code-status": {
      "post": {
        "operationId": "PairingController_codeStatus",
        "tags": [
          "pairing"
        ],
        "summary": "code Status",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 8,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/pairing/pairing.controller.ts",
          "line": 16
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PairCodeStatusDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/devices/pair/refresh": {
      "post": {
        "operationId": "PairingController_refresh",
        "tags": [
          "pairing"
        ],
        "summary": "refresh",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PairCredentialResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/pairing/pairing.controller.ts",
          "line": 20
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PairRefreshDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/devices/pair/revoke": {
      "post": {
        "operationId": "PairingController_revoke",
        "tags": [
          "pairing"
        ],
        "summary": "revoke",
        "security": [
          {
            "pairingBearer": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/pairing/pairing.controller.ts",
          "line": 23
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PairRevokeDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/devices/me": {
      "get": {
        "operationId": "PairingController_me",
        "tags": [
          "pairing"
        ],
        "summary": "me",
        "security": [
          {
            "pairingBearer": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/pairing/pairing.controller.ts",
          "line": 26
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/public/preorder-config": {
      "get": {
        "operationId": "PublicPreOrdersController_config",
        "tags": [
          "preorders"
        ],
        "summary": "config",
        "security": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 60,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 36
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/public/preorders": {
      "post": {
        "operationId": "PublicPreOrdersController_create",
        "tags": [
          "preorders"
        ],
        "summary": "create",
        "security": [],
        "parameters": [
          {
            "in": "header",
            "name": "idempotency-key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 5,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 40
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePublicPreOrderDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/public/preorder-events/view": {
      "post": {
        "operationId": "PublicPreOrdersController_view",
        "tags": [
          "preorders"
        ],
        "summary": "view",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-rate-limit": {
          "limit": 20,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 50
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackPreOrderViewDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorders": {
      "get": {
        "operationId": "AdminPreOrdersController_list",
        "tags": [
          "preorders"
        ],
        "summary": "list",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NEW",
                "CONTACTED",
                "CONFIRMED",
                "PAYMENT_PENDING",
                "DEPOSIT_PAID",
                "READY_TO_SHIP",
                "FULFILLED",
                "CANCELLED"
              ]
            }
          },
          {
            "in": "query",
            "name": "source",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "uz",
                "en",
                "ru"
              ]
            }
          },
          {
            "in": "query",
            "name": "assignedAdminId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dateFrom",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "dateTo",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 60
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorders/analytics": {
      "get": {
        "operationId": "AdminPreOrdersController_analytics",
        "tags": [
          "preorders"
        ],
        "summary": "analytics",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 64
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorders/export.csv": {
      "get": {
        "operationId": "AdminPreOrdersController_export",
        "tags": [
          "preorders"
        ],
        "summary": "export",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NEW",
                "CONTACTED",
                "CONFIRMED",
                "PAYMENT_PENDING",
                "DEPOSIT_PAID",
                "READY_TO_SHIP",
                "FULFILLED",
                "CANCELLED"
              ]
            }
          },
          {
            "in": "query",
            "name": "source",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "uz",
                "en",
                "ru"
              ]
            }
          },
          {
            "in": "query",
            "name": "assignedAdminId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "dateFrom",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "dateTo",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 68
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorders/{id}": {
      "get": {
        "operationId": "AdminPreOrdersController_detail",
        "tags": [
          "preorders"
        ],
        "summary": "detail",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 77
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "delete": {
        "operationId": "AdminPreOrdersController_deleteTestRecord",
        "tags": [
          "preorders"
        ],
        "summary": "delete Test Record",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 81
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeletePreOrderDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorders/{id}/status": {
      "patch": {
        "operationId": "AdminPreOrdersController_updateStatus",
        "tags": [
          "preorders"
        ],
        "summary": "update Status",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES",
          "SUPPORT"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 87
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePreOrderStatusDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorders/{id}/assignment": {
      "patch": {
        "operationId": "AdminPreOrdersController_assign",
        "tags": [
          "preorders"
        ],
        "summary": "assign",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 93
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssignPreOrderDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorders/customers/{customerId}/notes": {
      "post": {
        "operationId": "AdminPreOrdersController_addNote",
        "tags": [
          "preorders"
        ],
        "summary": "add Note",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "customerId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES",
          "SUPPORT"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 99
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddCustomerNoteDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/preorder-settings": {
      "get": {
        "operationId": "AdminPreOrderSettingsController_get",
        "tags": [
          "preorders"
        ],
        "summary": "get",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 115
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "put": {
        "operationId": "AdminPreOrderSettingsController_update",
        "tags": [
          "preorders"
        ],
        "summary": "update",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/preorders/preorders.controller.ts",
          "line": 119
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePreOrderSettingsDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/sales": {
      "get": {
        "operationId": "SalesController_list",
        "tags": [
          "sales"
        ],
        "summary": "list",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DRAFT",
                "PENDING",
                "PAID",
                "FULFILLED",
                "CANCELLED",
                "REFUNDED"
              ]
            }
          },
          {
            "in": "query",
            "name": "paymentStatus",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "UNPAID",
                "PARTIAL",
                "PAID",
                "REFUNDED"
              ]
            }
          },
          {
            "in": "query",
            "name": "channel",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DIRECT",
                "INSTAGRAM",
                "TELEGRAM",
                "WEBSITE",
                "RESELLER",
                "OFFLINE",
                "OTHER"
              ]
            }
          },
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "skip",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "in": "query",
            "name": "take",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/sales/sales.controller.ts",
          "line": 12
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "post": {
        "operationId": "SalesController_create",
        "tags": [
          "sales"
        ],
        "summary": "create",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/sales/sales.controller.ts",
          "line": 16
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSaleDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/sales/{id}": {
      "get": {
        "operationId": "SalesController_detail",
        "tags": [
          "sales"
        ],
        "summary": "detail",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES",
          "SUPPORT",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/sales/sales.controller.ts",
          "line": 14
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "patch": {
        "operationId": "SalesController_update",
        "tags": [
          "sales"
        ],
        "summary": "update",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/sales/sales.controller.ts",
          "line": 18
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSaleDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/sales/{id}/cancel": {
      "post": {
        "operationId": "SalesController_cancel",
        "tags": [
          "sales"
        ],
        "summary": "cancel",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 20,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/sales/sales.controller.ts",
          "line": 20
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaleActionDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/sales/{id}/refund": {
      "post": {
        "operationId": "SalesController_refund",
        "tags": [
          "sales"
        ],
        "summary": "refund",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "SALES"
        ],
        "x-rate-limit": {
          "limit": 20,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/sales/sales.controller.ts",
          "line": 22
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundSaleDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/overview": {
      "get": {
        "operationId": "SettingsController_overview",
        "tags": [
          "settings"
        ],
        "summary": "overview",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "OPERATIONS",
          "SALES",
          "SUPPORT",
          "FIRMWARE_MANAGER",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/settings/settings.controller.ts",
          "line": 12
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/settings": {
      "get": {
        "operationId": "SettingsController_get",
        "tags": [
          "settings"
        ],
        "summary": "get",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN",
          "VIEWER"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/settings/settings.controller.ts",
          "line": 15
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      },
      "put": {
        "operationId": "SettingsController_update",
        "tags": [
          "settings"
        ],
        "summary": "update",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/settings/settings.controller.ts",
          "line": 18
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePolicyDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    },
    "/v1/admin/settings/business": {
      "put": {
        "operationId": "SettingsController_updateBusiness",
        "tags": [
          "settings"
        ],
        "summary": "update Business",
        "security": [
          {
            "adminCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response. This generated contract does not claim an exhaustive response schema."
          },
          "400": {
            "description": "Validation or business-rule rejection.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "401": {
            "description": "Authentication missing, invalid or expired.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Role or policy restriction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Conflict or invalid lifecycle transition.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Service error; retain the request ID.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "x-admin-roles": [
          "SUPER_ADMIN",
          "ADMIN"
        ],
        "x-rate-limit": {
          "limit": 120,
          "ttl": 60000
        },
        "x-source": {
          "file": "apps/api/src/settings/settings.controller.ts",
          "line": 21
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBusinessSettingsDto"
              }
            }
          }
        },
        "description": "Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation."
      }
    }
  },
  "components": {
    "schemas": {
      "CreateAdminUserDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "format": "email",
            "minLength": 3,
            "maxLength": 160
          },
          "role": {
            "type": "string",
            "enum": [
              "SUPER_ADMIN",
              "ADMIN",
              "OPERATIONS",
              "SALES",
              "SUPPORT",
              "FIRMWARE_MANAGER",
              "VIEWER"
            ]
          }
        },
        "required": [
          "name",
          "email",
          "role"
        ]
      },
      "UpdateAdminRoleDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "SUPER_ADMIN",
              "ADMIN",
              "OPERATIONS",
              "SALES",
              "SUPPORT",
              "FIRMWARE_MANAGER",
              "VIEWER"
            ]
          }
        },
        "required": [
          "role"
        ]
      },
      "UpdateAdminStatusDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "SUSPENDED",
              "DISABLED"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "AnalyticsQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "range": {
            "type": "string",
            "enum": [
              "today",
              "7d",
              "30d",
              "90d",
              "year",
              "custom"
            ],
            "default": "30d"
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "default": "UZS"
          }
        }
      },
      "LoginDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "password": {
            "type": "string",
            "minLength": 8,
            "format": "password",
            "writeOnly": true
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "ChangePasswordDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "currentPassword": {
            "type": "string",
            "minLength": 8,
            "maxLength": 128,
            "format": "password",
            "writeOnly": true
          },
          "newPassword": {
            "type": "string",
            "minLength": 12,
            "maxLength": 128,
            "pattern": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^A-Za-z0-9]).+$",
            "format": "password",
            "writeOnly": true
          }
        },
        "required": [
          "currentPassword",
          "newPassword"
        ]
      },
      "CustomerListQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "search": {
            "type": "string"
          },
          "preorderStatus": {
            "type": "string",
            "enum": [
              "NEW",
              "CONTACTED",
              "CONFIRMED",
              "PAYMENT_PENDING",
              "DEPOSIT_PAID",
              "READY_TO_SHIP",
              "FULFILLED",
              "CANCELLED"
            ]
          },
          "source": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "enum": [
              "uz",
              "en",
              "ru"
            ]
          },
          "assignedAdminId": {
            "type": "string"
          },
          "dateFrom": {
            "type": "string",
            "format": "date-time"
          },
          "dateTo": {
            "type": "string",
            "format": "date-time"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          },
          "take": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 25
          }
        }
      },
      "CreateCustomerDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "fullName": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "minLength": 5,
            "maxLength": 32
          },
          "company": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "city": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "region": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "telegramUsername": {
            "type": "string",
            "minLength": 5,
            "maxLength": 32
          },
          "preferredLanguage": {
            "type": "string",
            "enum": [
              "uz",
              "en",
              "ru"
            ]
          },
          "notes": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1000
          }
        },
        "required": [
          "fullName"
        ]
      },
      "UpdateCustomerDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "fullName": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "minLength": 5,
            "maxLength": 32
          },
          "company": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "city": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "region": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "telegramUsername": {
            "type": "string",
            "minLength": 5,
            "maxLength": 32
          },
          "preferredLanguage": {
            "type": "string",
            "enum": [
              "uz",
              "en",
              "ru"
            ]
          },
          "notes": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1000
          }
        }
      },
      "CreateBatchDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "batchCode": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64
          },
          "model": {
            "type": "string",
            "minLength": 2,
            "maxLength": 32
          },
          "hardwareRevision": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          },
          "expiresAt": {
            "type": "string"
          }
        },
        "required": [
          "batchCode",
          "model",
          "hardwareRevision",
          "quantity"
        ]
      },
      "CreateBatchDefinitionDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64
          },
          "model": {
            "type": "string",
            "minLength": 2,
            "maxLength": 32
          },
          "hardwareRevision": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          },
          "notes": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1000
          },
          "source": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          }
        },
        "required": [
          "code",
          "model",
          "hardwareRevision",
          "quantity"
        ]
      },
      "UpdateBatchDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string",
            "minLength": 3,
            "maxLength": 64
          },
          "model": {
            "type": "string",
            "minLength": 2,
            "maxLength": 32
          },
          "hardwareRevision": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          },
          "notes": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1000
          },
          "source": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "status": {
            "type": "string",
            "enum": [
              "DRAFT",
              "READY",
              "PROVISIONING",
              "COMPLETED",
              "ARCHIVED",
              "CANCELLED"
            ]
          }
        }
      },
      "ProvisionBatchDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "expiresAt": {
            "type": "string"
          }
        }
      },
      "DeviceProvisioningEnvelopeDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serialNumber": {
            "type": "string",
            "minLength": 16,
            "maxLength": 40
          },
          "expectedHardwareRevision": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "provisionerPublicKey": {
            "type": "string",
            "minLength": 256,
            "maxLength": 8192
          }
        },
        "required": [
          "serialNumber",
          "expectedHardwareRevision",
          "provisionerPublicKey"
        ]
      },
      "BatchListQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "search": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "DRAFT",
              "READY",
              "PROVISIONING",
              "COMPLETED",
              "ARCHIVED",
              "CANCELLED"
            ]
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          },
          "take": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 50
          }
        }
      },
      "DeviceListQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "search": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "INVENTORY",
              "READY",
              "SOLD",
              "CLAIMED",
              "ACTIVE",
              "RETURNED",
              "SUSPENDED",
              "REVOKED",
              "REPAIR",
              "RETIRED"
            ]
          },
          "hardwareRevision": {
            "type": "string"
          },
          "firmware": {
            "type": "string"
          },
          "batch": {
            "type": "string"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          },
          "take": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 50
          }
        }
      },
      "DeviceStatusDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "INVENTORY",
              "READY",
              "SOLD",
              "CLAIMED",
              "ACTIVE",
              "RETURNED",
              "SUSPENDED",
              "REVOKED",
              "REPAIR",
              "RETIRED"
            ]
          },
          "reason": {
            "type": "string",
            "minLength": 3
          }
        },
        "required": [
          "status",
          "reason"
        ]
      },
      "DeviceHeartbeatDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serial": {
            "type": "string"
          },
          "firmwareVersion": {
            "type": "string"
          },
          "firmwareBuildNumber": {
            "type": "integer",
            "minimum": 0
          },
          "hardwareRevision": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "otaSlot": {
            "type": "string",
            "enum": [
              "ota_0",
              "ota_1"
            ]
          },
          "appVersion": {
            "type": "string"
          },
          "uptime": {
            "type": "integer",
            "minimum": 0
          },
          "wifiRSSI": {
            "type": "integer",
            "minimum": -120,
            "maximum": 0
          },
          "freeHeap": {
            "type": "integer",
            "minimum": 0
          },
          "temperature": {
            "type": "number",
            "minimum": -40,
            "maximum": 125
          },
          "status": {
            "type": "string",
            "default": "healthy"
          }
        },
        "required": [
          "serial",
          "firmwareVersion",
          "appVersion",
          "uptime"
        ]
      },
      "ResetClaimDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 3
          },
          "expiresAt": {
            "type": "string"
          }
        },
        "required": [
          "reason"
        ]
      },
      "TransferOwnershipDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "customerEmail": {
            "type": "string",
            "format": "email"
          },
          "customerName": {
            "type": "string"
          },
          "reason": {
            "type": "string",
            "minLength": 3
          }
        },
        "required": [
          "customerEmail",
          "reason"
        ]
      },
      "FirmwareInterruptionDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "releaseId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "serial": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "expectedVersion": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
          },
          "expectedBuild": {
            "type": "integer",
            "minimum": 1
          },
          "expectedFailureReason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "failureCode": {
            "type": "string",
            "enum": [
              "USER_CANCELLED_BY_OPERATOR"
            ]
          }
        },
        "required": [
          "releaseId",
          "serial",
          "expectedVersion",
          "expectedBuild",
          "expectedFailureReason",
          "failureCode"
        ]
      },
      "FirmwareInstallationQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serial": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "installationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          }
        },
        "required": [
          "serial"
        ]
      },
      "CreateFirmwarePackageDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "channel": {
            "type": "string",
            "enum": [
              "INTERNAL",
              "BETA",
              "STABLE"
            ]
          },
          "targetDeviceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "mandatory": {
            "type": "boolean",
            "default": false
          },
          "releaseNotes": {
            "type": "string",
            "minLength": 1,
            "maxLength": 8000
          }
        },
        "required": [
          "channel",
          "releaseNotes"
        ]
      },
      "FirmwarePackageDevicesQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "hardwareRevision": {
            "type": "string",
            "maxLength": 64
          },
          "search": {
            "type": "string",
            "maxLength": 64
          }
        },
        "required": [
          "hardwareRevision"
        ]
      },
      "CreateFirmwareDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "version": {
            "type": "string",
            "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$"
          },
          "buildNumber": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647
          },
          "hardwareRevision": {
            "type": "string",
            "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$"
          },
          "channel": {
            "type": "string",
            "enum": [
              "INTERNAL",
              "BETA",
              "STABLE"
            ]
          },
          "securityVersion": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          },
          "releaseNotes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mandatory": {
            "type": "boolean",
            "default": false
          },
          "mandatoryAfter": {
            "type": "string",
            "format": "date-time"
          },
          "rolloutPercentage": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "default": 0
          },
          "signature": {
            "type": "string"
          },
          "targetDeviceId": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "buildNumber",
          "hardwareRevision",
          "channel",
          "releaseNotes"
        ]
      },
      "FirmwareLifecycleDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "DRAFT",
              "READY",
              "ROLLING_OUT",
              "PAUSED",
              "COMPLETED",
              "REVOKED"
            ]
          },
          "rolloutPercentage": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "status"
        ]
      },
      "FirmwareCheckQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serial": {
            "type": "string"
          },
          "hardwareRevision": {
            "type": "string"
          },
          "currentFirmware": {
            "type": "string"
          },
          "appVersion": {
            "type": "string"
          },
          "channel": {
            "type": "string",
            "enum": [
              "INTERNAL",
              "BETA",
              "STABLE"
            ],
            "default": "STABLE"
          }
        },
        "required": [
          "serial",
          "hardwareRevision",
          "currentFirmware",
          "appVersion"
        ]
      },
      "FirmwareReportDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serial": {
            "type": "string"
          },
          "releaseId": {
            "type": "string"
          },
          "installationId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "AVAILABLE",
              "QUEUED",
              "DOWNLOADING",
              "VERIFYING",
              "TRANSFERRING",
              "INSTALLING",
              "REBOOTING",
              "VALIDATING",
              "SUCCESS",
              "FAILED",
              "ROLLED_BACK"
            ]
          },
          "fromVersion": {
            "type": "string"
          },
          "failureReason": {
            "type": "string"
          }
        },
        "required": [
          "serial",
          "releaseId",
          "status"
        ]
      },
      "FirmwareMaintenanceGrantDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "expectedMac": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$"
          },
          "targetSerial": {
            "type": "string",
            "minLength": 1
          },
          "expectedVersion": {
            "type": "string",
            "minLength": 1
          },
          "expectedBuild": {
            "type": "integer",
            "minimum": 1
          },
          "expectedHardwareRevision": {
            "type": "string",
            "minLength": 1
          },
          "maintenancePurpose": {
            "type": "string",
            "enum": [
              "ONE_TIME_IDENTITY_PROVISIONING"
            ]
          }
        },
        "required": [
          "expectedMac",
          "targetSerial",
          "expectedVersion",
          "expectedBuild",
          "expectedHardwareRevision",
          "maintenancePurpose"
        ]
      },
      "FirmwareInstallationReconciliationDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "releaseId": {
            "type": "string",
            "minLength": 1
          },
          "serial": {
            "type": "string",
            "minLength": 1
          },
          "expectedVersion": {
            "type": "string",
            "minLength": 1
          },
          "expectedBuild": {
            "type": "integer",
            "minimum": 1
          },
          "expectedSlot": {
            "type": "string",
            "enum": [
              "ota_0",
              "ota_1"
            ]
          },
          "observedBootState": {
            "type": "string",
            "enum": [
              "valid"
            ]
          },
          "observedOtaSessionState": {
            "type": "string",
            "enum": [
              "IDLE"
            ]
          },
          "reason": {
            "type": "string",
            "enum": [
              "POST_BOOT_FALSE_NEGATIVE_RECONCILIATION"
            ]
          }
        },
        "required": [
          "releaseId",
          "serial",
          "expectedVersion",
          "expectedBuild",
          "expectedSlot",
          "observedBootState",
          "observedOtaSessionState",
          "reason"
        ]
      },
      "PairChallengeDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serial": {
            "type": "string",
            "minLength": 8
          },
          "installationId": {
            "type": "string",
            "minLength": 16,
            "maxLength": 128
          }
        },
        "required": [
          "serial",
          "installationId"
        ]
      },
      "PairCodeStatusDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "claimCode": {
            "type": "string",
            "minLength": 16
          }
        },
        "required": [
          "claimCode"
        ]
      },
      "PairClaimDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serial": {
            "type": "string",
            "minLength": 8
          },
          "installationId": {
            "type": "string",
            "minLength": 16,
            "maxLength": 128
          },
          "challengeId": {
            "type": "string",
            "minLength": 16
          },
          "nonce": {
            "type": "string",
            "minLength": 24
          },
          "claimCode": {
            "type": "string",
            "minLength": 16
          },
          "hardwareProof": {
            "type": "string",
            "minLength": 32
          },
          "publicKey": {
            "type": "string",
            "minLength": 8
          },
          "deviceName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "appVersion": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32
          },
          "customerEmail": {
            "type": "string",
            "format": "email"
          },
          "customerName": {
            "type": "string"
          }
        },
        "required": [
          "serial",
          "installationId",
          "challengeId",
          "nonce",
          "claimCode",
          "hardwareProof",
          "publicKey",
          "deviceName",
          "appVersion"
        ]
      },
      "PairRefreshDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "credential": {
            "type": "string",
            "minLength": 16
          }
        },
        "required": [
          "credential"
        ]
      },
      "PairRevokeDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "installationId": {
            "type": "string",
            "minLength": 16,
            "maxLength": 128
          }
        },
        "required": [
          "installationId"
        ]
      },
      "CreatePublicPreOrderDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "fullName": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "phone": {
            "type": "string",
            "minLength": 8,
            "maxLength": 32
          },
          "region": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "productColor": {
            "type": "string",
            "enum": [
              "BLACK",
              "WHITE",
              "LAVENDER"
            ]
          },
          "paymentMethod": {
            "type": "string",
            "enum": [
              "DEPOSIT",
              "FULL"
            ]
          },
          "note": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "city": {
            "type": "string",
            "minLength": 2,
            "maxLength": 80
          },
          "email": {
            "type": "string",
            "format": "email",
            "minLength": 3,
            "maxLength": 160
          },
          "telegramUsername": {
            "type": "string",
            "pattern": "^@?[A-Za-z0-9_]{5,32}$"
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "default": 1
          },
          "locale": {
            "type": "string",
            "enum": [
              "uz",
              "en",
              "ru"
            ]
          },
          "website": {
            "type": "string",
            "minLength": 0,
            "maxLength": 0
          },
          "utmSource": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "utmMedium": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "utmCampaign": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "utmContent": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "utmTerm": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "referrer": {
            "type": "string",
            "format": "uri",
            "minLength": 1,
            "maxLength": 500
          }
        },
        "required": [
          "fullName",
          "phone",
          "region",
          "locale"
        ]
      },
      "TrackPreOrderViewDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "anonymousSessionId": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{16,96}$"
          },
          "locale": {
            "type": "string",
            "enum": [
              "uz",
              "en",
              "ru"
            ]
          },
          "utmSource": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "utmMedium": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "utmCampaign": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "utmContent": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "utmTerm": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "referrer": {
            "type": "string",
            "format": "uri",
            "minLength": 1,
            "maxLength": 500
          }
        },
        "required": [
          "anonymousSessionId",
          "locale"
        ]
      },
      "AdminPreOrderListQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "search": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "CONTACTED",
              "CONFIRMED",
              "PAYMENT_PENDING",
              "DEPOSIT_PAID",
              "READY_TO_SHIP",
              "FULFILLED",
              "CANCELLED"
            ]
          },
          "source": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "locale": {
            "type": "string",
            "enum": [
              "uz",
              "en",
              "ru"
            ]
          },
          "assignedAdminId": {
            "type": "string"
          },
          "dateFrom": {
            "type": "string",
            "format": "date-time"
          },
          "dateTo": {
            "type": "string",
            "format": "date-time"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          },
          "take": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "default": 50
          }
        }
      },
      "UpdatePreOrderStatusDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "CONTACTED",
              "CONFIRMED",
              "PAYMENT_PENDING",
              "DEPOSIT_PAID",
              "READY_TO_SHIP",
              "FULFILLED",
              "CANCELLED"
            ]
          },
          "note": {
            "type": "string",
            "minLength": 2,
            "maxLength": 500
          }
        },
        "required": [
          "status"
        ]
      },
      "AssignPreOrderDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "adminId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "x-validation-note": "Conditional validation: inspect the operation policy."
          }
        }
      },
      "AddCustomerNoteDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "content": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2000
          }
        },
        "required": [
          "content"
        ]
      },
      "DeletePreOrderDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "preorderNumber": {
            "type": "string",
            "minLength": 8,
            "maxLength": 40
          },
          "reason": {
            "type": "string",
            "minLength": 4,
            "maxLength": 240
          }
        },
        "required": [
          "preorderNumber",
          "reason"
        ]
      },
      "UpdatePreOrderSettingsDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "preOrderEnabled": {
            "type": "boolean"
          },
          "productName": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "fullPrice": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2000000000
          },
          "depositAmount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2000000000
          },
          "expectedDeliveryTextUz": {
            "type": "string",
            "minLength": 2,
            "maxLength": 240
          },
          "expectedDeliveryTextEn": {
            "type": "string",
            "minLength": 2,
            "maxLength": 240
          },
          "expectedDeliveryTextRu": {
            "type": "string",
            "minLength": 2,
            "maxLength": 240
          },
          "maxQuantityPerOrder": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          },
          "preorderCapacity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000000
          },
          "contactPhone": {
            "type": "string",
            "minLength": 5,
            "maxLength": 32
          },
          "supportTelegram": {
            "type": "string",
            "format": "uri",
            "minLength": 8,
            "maxLength": 300
          },
          "allowManualDepositConfirmation": {
            "type": "boolean"
          }
        },
        "required": [
          "preOrderEnabled",
          "productName",
          "currency",
          "expectedDeliveryTextUz",
          "expectedDeliveryTextEn",
          "expectedDeliveryTextRu",
          "maxQuantityPerOrder",
          "allowManualDepositConfirmation"
        ]
      },
      "SaleCustomerDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "fullName": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "minLength": 5,
            "maxLength": 32
          }
        }
      },
      "CreateSaleDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/SaleCustomerDto"
          },
          "deviceId": {
            "type": "string"
          },
          "unitPrice": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2000000000
          },
          "discount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2000000000,
            "default": 0
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "default": "UZS"
          },
          "paymentStatus": {
            "type": "string",
            "enum": [
              "UNPAID",
              "PARTIAL",
              "PAID",
              "REFUNDED"
            ]
          },
          "salesChannel": {
            "type": "string",
            "enum": [
              "DIRECT",
              "INSTAGRAM",
              "TELEGRAM",
              "WEBSITE",
              "RESELLER",
              "OFFLINE",
              "OTHER"
            ]
          },
          "soldAt": {
            "type": "string",
            "format": "date-time"
          },
          "notes": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1000
          }
        },
        "required": [
          "customer",
          "deviceId",
          "unitPrice",
          "paymentStatus",
          "salesChannel"
        ]
      },
      "SaleListQueryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "search": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "DRAFT",
              "PENDING",
              "PAID",
              "FULFILLED",
              "CANCELLED",
              "REFUNDED"
            ]
          },
          "paymentStatus": {
            "type": "string",
            "enum": [
              "UNPAID",
              "PARTIAL",
              "PAID",
              "REFUNDED"
            ]
          },
          "channel": {
            "type": "string",
            "enum": [
              "DIRECT",
              "INSTAGRAM",
              "TELEGRAM",
              "WEBSITE",
              "RESELLER",
              "OFFLINE",
              "OTHER"
            ]
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          },
          "take": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 25
          }
        }
      },
      "UpdateSaleDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "customerId": {
            "type": "string"
          },
          "paymentStatus": {
            "type": "string",
            "enum": [
              "UNPAID",
              "PARTIAL",
              "PAID",
              "REFUNDED"
            ]
          },
          "salesChannel": {
            "type": "string",
            "enum": [
              "DIRECT",
              "INSTAGRAM",
              "TELEGRAM",
              "WEBSITE",
              "RESELLER",
              "OFFLINE",
              "OTHER"
            ]
          },
          "notes": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1000
          },
          "unitPrice": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2000000000
          },
          "discount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2000000000
          }
        }
      },
      "SaleActionDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 3
          }
        },
        "required": [
          "reason"
        ]
      },
      "RefundSaleDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 3
          },
          "amount": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2000000000
          },
          "deviceDisposition": {
            "type": "string",
            "enum": [
              "RETURNED",
              "REVOKED"
            ]
          }
        },
        "required": [
          "reason",
          "amount"
        ]
      },
      "UpdatePolicyDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "maximumMacsPerDevice": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10
          },
          "heartbeatTimeoutSeconds": {
            "type": "integer",
            "minimum": 60,
            "maximum": 86400
          },
          "pairingCertificateDays": {
            "type": "integer",
            "minimum": 7,
            "maximum": 730
          },
          "defaultFirmwareChannel": {
            "type": "string",
            "enum": [
              "INTERNAL",
              "BETA",
              "STABLE"
            ]
          },
          "defaultRolloutPercentage": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "maximumMacsPerDevice",
          "heartbeatTimeoutSeconds",
          "pairingCertificateDays",
          "defaultFirmwareChannel",
          "defaultRolloutPercentage"
        ]
      },
      "UpdateBusinessSettingsDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "onlineThresholdMinutes": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1440
          },
          "activeThresholdDays": {
            "type": "integer",
            "minimum": 1,
            "maximum": 365
          },
          "companyName": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "defaultCurrency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "defaultDevicePrice": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2000000000
          },
          "orderNumberPrefix": {
            "type": "string",
            "minLength": 2,
            "maxLength": 12
          }
        },
        "required": [
          "onlineThresholdMinutes",
          "activeThresholdDays",
          "companyName",
          "defaultCurrency",
          "defaultDevicePrice",
          "orderNumberPrefix"
        ]
      },
      "ApiError": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "requestId": {
                "type": "string"
              }
            }
          }
        }
      },
      "HealthResponse": {
        "type": "object",
        "required": [
          "status",
          "checks",
          "timestamp"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "degraded"
            ]
          },
          "checks": {
            "type": "object",
            "properties": {
              "api": {
                "type": "boolean"
              },
              "database": {
                "type": "boolean"
              },
              "objectStorage": {
                "type": "boolean"
              }
            }
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PairChallengeResponse": {
        "type": "object",
        "properties": {
          "challengeId": {
            "type": "string"
          },
          "serial": {
            "type": "string"
          },
          "nonce": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "proofPayload": {
            "type": "string"
          }
        }
      },
      "PairCredentialResponse": {
        "type": "object",
        "properties": {
          "credential": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "device": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "serialNumber": {
                "type": "string"
              }
            }
          },
          "offlineCapable": {
            "type": "boolean"
          }
        }
      }
    },
    "securitySchemes": {
      "adminCookie": {
        "type": "apiKey",
        "in": "cookie",
        "name": "hamroh_admin",
        "description": "HttpOnly, Secure production cookie; SameSite Strict; 12-hour session."
      },
      "pairingBearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Server-issued pairing credential, not an Admin credential."
      },
      "deviceProof": {
        "type": "apiKey",
        "in": "header",
        "name": "x-hamroh-proof",
        "description": "Hex HMAC-SHA256 computed by the device over the route-specific proof payload."
      },
      "deviceTimestamp": {
        "type": "apiKey",
        "in": "header",
        "name": "x-hamroh-timestamp",
        "description": "Unix milliseconds, within five minutes of server time. Required together with device proof."
      }
    }
  }
}
