{
  "openapi": "3.1.0",
  "info": {
    "title": "老张电竞 Owner API 文档",
    "version": "1.0.0",
    "description": "Owner（领域主体 OWNER）独立接入面。正式路径、认证 audience、operationId 与另一调用面隔离。"
  },
  "servers": [
    {
      "url": "/",
      "description": "当前文档同源 API"
    }
  ],
  "tags": [
    {
      "name": "认证",
      "description": "Owner 登录、令牌轮换与会话管理接口。"
    },
    {
      "name": "公共商品",
      "description": "无需登录即可读取的游戏、服务和套餐配置。"
    },
    {
      "name": "公共打手",
      "description": "无需登录即可读取的打手展示资料。"
    },
    {
      "name": "公共字典",
      "description": "代码锁定字典和数据库动态字典的公开查询接口。"
    },
    {
      "name": "文件",
      "description": "业务图片上传和受控访问接口。"
    },
    {
      "name": "老板订单",
      "description": "老板下单、查看、变更和验收订单的接口。"
    },
    {
      "name": "老板推荐",
      "description": "老板推荐关系与佣金摘要接口。"
    },
    {
      "name": "系统通知",
      "description": "用户通知列表和已读状态接口。"
    },
    {
      "name": "即时通讯",
      "description": "Owner 的订单会话、客服会话、消息、已读位置与实时连接凭证接口。"
    },
    {
      "name": "支付中心",
      "description": "Owner 钱包、支付单、充值与提现接口。"
    },
    {
      "name": "客户端配置",
      "description": "无需登录即可读取的客户端启动能力和公开系统配置。"
    },
    {
      "name": "接口加密",
      "description": "RSA/AES 报文加密引导与策略管理接口。"
    },
    {
      "name": "运维",
      "description": "服务存活与依赖就绪状态检查接口。"
    }
  ],
  "paths": {
    "/api/owner/v1/auth/login": {
      "post": {
        "tags": [
          "认证"
        ],
        "summary": "老板账号密码登录",
        "description": "仅用于以 ACCOUNT_PASSWORD 方式注册的老板账号。前端必须显式提交 method=ACCOUNT_PASSWORD。\nACCOUNT_PASSWORD.account 是普通登录账号标识，只按规范化后的 username 保存和查询，不是邮箱或手机号字段。后端会执行去首尾空白、NFKC 规范化和小写化；即使含 @ 或全数字，也不会触发识别、验证、找回或认证分流。\n密码连续失败达到 ownerPasswordLoginMaxFailures 后锁定 ownerPasswordAccountLockMinutes 分钟；锁定到期后失败次数重新累计，成功登录后清零。\n本接口与注册接口均要求报文加密及 Idempotency-Key；前端不得记录、缓存或打印密码和令牌明文。\n",
        "operationId": "owner_post_api_owner_v1_auth_login",
        "x-feature-id": "CUST-ACC-03",
        "x-auth-scope": "公开",
        "security": [],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "同一登录命令范围内唯一的幂等键。",
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerPasswordLoginRequest"
              },
              "examples": {
                "accountPassword": {
                  "summary": "普通账号密码登录；账号内容不参与类型推断",
                  "value": {
                    "method": "ACCOUNT_PASSWORD",
                    "account": "owner_10001",
                    "password": "ExamplePass!123",
                    "deviceId": "11111111-1111-4111-8111-111111111111",
                    "deviceName": "iPhone",
                    "platform": "IOS",
                    "agreementVersion": "1.0.0",
                    "privacyVersion": "1.0.0"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "登录成功并返回 Owner 会话。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerAuthResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "账号或密码错误。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "账号已禁用或协议需要重新同意。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "423": {
            "description": "连续登录失败达到阈值，账号暂时锁定。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/auth/registration-code": {
      "post": {
        "tags": [
          "认证"
        ],
        "summary": "申请老板注册验证码",
        "description": "只为 PHONE 手机号注册申请验证码，不用于 ACCOUNT_PASSWORD。\n前端仅可在公开客户端配置中对应方式 available=true、verificationRequired=true 且 verificationCodeRequestAvailable=true 时调用。\n若手机号注册或验证开关关闭，前端应隐藏验证码入口；验证关闭时直接调用注册接口。短信提供商未配置时返回 503。\n",
        "operationId": "owner_post_api_owner_v1_auth_registration_code",
        "x-feature-id": "CUST-REGISTER-01",
        "x-auth-scope": "公开",
        "security": [],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "同一设备和验证码申请范围内唯一的幂等键。",
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerRegistrationCodeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "验证码申请已受理。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerRegistrationCodeResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "对应注册验证开关已关闭，应直接注册。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "验证码申请过于频繁。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "短信发送依赖尚不可用。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/auth/register": {
      "post": {
        "tags": [
          "认证"
        ],
        "summary": "注册老板账号",
        "description": "统一老板注册接口，前端必须先读取公开客户端配置，并从 methods 中选择 available=true 的显式 method：\n- ACCOUNT_PASSWORD：提交 account、password、passwordConfirmation；account 是写入 username 的普通登录账号，即使包含 @ 或全部由数字组成也不代表邮箱或手机号。\n- PHONE：提交 E.164 phone；仅当 verificationRequired=true 时额外提交 challengeNo 与 code。\n后端依次校验自助注册总开关、对应方式开关、验证码要求、协议版本和身份唯一性。配置更新即时影响新请求，不改变已有账号的身份类型。\nPHONE 当前仅有注册流程，没有手机号重新登录端点；默认关闭，启用前必须补齐短信供应商和重新登录闭环。\n旧 channel/identifier 请求仅用于兼容，不能与 method 或新版身份字段混用。成功后直接签发 Owner 会话；请求必须报文加密并携带 Idempotency-Key。\n",
        "operationId": "owner_post_api_owner_v1_auth_register",
        "x-feature-id": "CUST-REGISTER-01/CUST-ACC-02",
        "x-auth-scope": "公开",
        "security": [],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "description": "同一注册命令范围内唯一的幂等键。",
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerRegisterRequest"
              },
              "examples": {
                "accountPassword": {
                  "summary": "账号密码注册",
                  "value": {
                    "method": "ACCOUNT_PASSWORD",
                    "account": "owner_10001",
                    "password": "ExamplePass!123",
                    "passwordConfirmation": "ExamplePass!123",
                    "deviceId": "11111111-1111-4111-8111-111111111111",
                    "deviceName": "iPhone",
                    "platform": "IOS",
                    "agreementVersion": "1.0.0",
                    "privacyVersion": "1.0.0"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "注册成功并返回 Owner 会话。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerAuthResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式或验证码错误。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "账号或手机号已注册。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "验证码无效、已过期或已锁定。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/auth/refresh": {
      "post": {
        "tags": [
          "认证"
        ],
        "summary": "轮换访问与刷新令牌",
        "description": "刷新令牌轮换；重用则撤销整个 token family",
        "operationId": "owner_post_api_owner_v1_auth_refresh",
        "x-feature-id": "COM-SEC",
        "x-auth-scope": "刷新令牌",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerAuthTokensResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerRefreshRequest"
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/auth/logout": {
      "post": {
        "tags": [
          "认证"
        ],
        "summary": "撤销当前会话",
        "description": "幂等；撤销 auth_session",
        "operationId": "owner_post_api_owner_v1_auth_logout",
        "x-feature-id": "CUST-ACC-01/RUN-ACC-01",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerEmptyResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerLogoutRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/me": {
      "get": {
        "tags": [
          "认证"
        ],
        "summary": "获取当前账号与资料",
        "description": "返回当前 Owner 账号与 OWNER 领域资料。",
        "operationId": "owner_get_api_owner_v1_me",
        "x-feature-id": "CUST-ACC-03/RUN-PROFILE-01",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerMeResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/me/profile": {
      "patch": {
        "tags": [
          "认证"
        ],
        "summary": "修改老板头像和昵称",
        "description": "仅允许修改 nickname、avatarId，并使用 expectedProfileVersion 做乐观锁校验；认证账号、手机号和注册方式不在本接口修改。",
        "operationId": "owner_patch_api_owner_v1_me_profile",
        "x-feature-id": "CUST-ACC-03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerProfilePatchRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/client-configuration": {
      "get": {
        "tags": [
          "客户端配置"
        ],
        "summary": "获取公开客户端启动配置",
        "description": "App 启动及进入认证页时免登录调用，只返回允许公开的客户端白名单配置。前端对齐规则：\n1. registration.available=false 时隐藏注册入口；不得使用本地默认值强行开放注册。\n2. 仅展示 methods 中 available=true 的方式，并优先选中 defaultMethod；不得根据用户输入内容自行推断注册方式。\n3. enabled 表示后台开关，available 同时考虑验证码投递能力；验证码按钮还必须满足 verificationRequired 与 verificationCodeRequestAvailable。\n4. ACCOUNT_PASSWORD 使用 account/password；account 只是普通 username，不是邮箱输入框。PHONE 使用独立手机号界面语义并提交 phone，邮箱认证能力已移除。\n5. PHONE 当前只覆盖注册，没有手机号重新登录端点；默认关闭，客户端不得据此展示手机号登录入口。\n6. communication.mode 驱动聊天入口和写操作，文本、附件、视频、ticket 和连接限制必须以当前响应为准。\nService Provider 第一阶段固定不开放自助注册。客户端应保存 ETag、遵守最多 30 秒缓存，并在 304 时复用本地完整响应；后续应用名称、Logo 等系统公开配置将在现有 application/capabilities 结构中扩展。\n",
        "operationId": "owner_get_api_owner_v1_public_client_configuration",
        "x-feature-id": "COM-CLIENT-CONFIG-01",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "If-None-Match",
            "in": "header",
            "required": false,
            "description": "上一次响应的 ETag；配置未变化时返回 304。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "当前调用面的公开客户端配置。",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                },
                "description": "etag响应头。"
              },
              "Cache-Control": {
                "schema": {
                  "type": "string"
                },
                "description": "cachecontrol响应头。"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerClientConfigurationResponse"
                }
              }
            }
          },
          "304": {
            "description": "客户端配置未变化。"
          },
          "429": {
            "description": "请求过于频繁",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "配置服务暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/games": {
      "get": {
        "tags": [
          "公共商品"
        ],
        "summary": "获取启用游戏列表",
        "description": "仅 ENABLED；sortOrder ASC",
        "operationId": "owner_get_api_owner_v1_public_games",
        "x-feature-id": "CUST-PROD-01",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "featured",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            },
            "description": "是否在公共列表中作为精选内容优先展示。"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            },
            "description": "分页页码，从 1 开始。"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "description": "每页返回的记录数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedGameResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/games/{gameId}/services": {
      "get": {
        "tags": [
          "公共商品"
        ],
        "summary": "获取游戏下服务类型",
        "description": "游戏和服务均 ENABLED",
        "operationId": "owner_get_api_owner_v1_public_games_game_id_services",
        "x-feature-id": "CUST-PROD-02",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联游戏的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedServiceTypeResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/games/{gameId}/attribute-tree": {
      "get": {
        "tags": [
          "公共商品"
        ],
        "summary": "获取游戏额外属性树",
        "description": "返回启用属性、选项、任意层级结构、父子选项约束及当前配置版本。",
        "operationId": "owner_get_api_owner_v1_public_games_game_id_attribute_tree",
        "x-feature-id": "CUST-GAME-ATTR-01",
        "x-auth-scope": "公开",
        "security": [],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联游戏的 Strapi 文档标识。"
          }
        ],
        "responses": {
          "200": {
            "description": "游戏额外属性树。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerGameAttributeTreeResponse"
                }
              }
            }
          },
          "404": {
            "description": "游戏不存在或未启用。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/services/{serviceTypeId}/packages": {
      "get": {
        "tags": [
          "公共商品"
        ],
        "summary": "获取服务下套餐",
        "description": "只返回 ENABLED；不返回默认打手结算",
        "operationId": "owner_get_api_owner_v1_public_services_service_type_id_packages",
        "x-feature-id": "CUST-PROD-03",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "serviceTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联服务类型的 Strapi 文档标识。"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            },
            "description": "分页页码，从 1 开始。"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "description": "每页返回的记录数。"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "获取服务下套餐接口的排序查询参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedPackageResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/packages/{packageId}": {
      "get": {
        "tags": [
          "公共商品"
        ],
        "summary": "获取套餐详情与动态资料字段",
        "description": "返回 ENABLED 字段；不返回内部成本",
        "operationId": "owner_get_api_owner_v1_public_packages_package_id",
        "x-feature-id": "CUST-PROD-04/CUST-ORDER-01",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "packageId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联服务套餐的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPackageDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/service-providers": {
      "get": {
        "tags": [
          "公共打手"
        ],
        "summary": "打手列表筛选排序",
        "description": "仅 blocked=false、displayStatus=VISIBLE；综合排序固定",
        "operationId": "owner_get_api_owner_v1_public_service_providers",
        "x-feature-id": "CUST-SERVICE_PROVIDER-01/02",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "gameId",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联游戏的 Strapi 文档标识。"
          },
          {
            "name": "serviceTypeId",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联服务类型的 Strapi 文档标识。"
          },
          {
            "name": "attributeOptionIds",
            "in": "query",
            "required": false,
            "description": "逗号分隔的游戏属性选项 ID；严格匹配打手必须全部绑定，未开启严格匹配的打手只校验游戏和服务类型。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ratingMin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 5
            },
            "description": "打手列表筛选排序接口的rating最小查询参数。"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "打手列表筛选排序接口的排序查询参数。"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            },
            "description": "分页页码，从 1 开始。"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "description": "每页返回的记录数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedServiceProviderResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/service-providers/{serviceProviderId}": {
      "get": {
        "tags": [
          "公共打手"
        ],
        "summary": "打手个人主页",
        "description": "返回公开资料、能力、套餐、统计；不返回账号和联系方式",
        "operationId": "owner_get_api_owner_v1_public_service_providers_service_provider_id",
        "x-feature-id": "CUST-SERVICE_PROVIDER-03",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "serviceProviderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联打手资料的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerServiceProviderPublicDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/service-providers/{serviceProviderId}/reviews": {
      "get": {
        "tags": [
          "公共打手"
        ],
        "summary": "打手可见评价",
        "description": "只返回 VISIBLE",
        "operationId": "owner_get_api_owner_v1_public_service_providers_service_provider_id_reviews",
        "x-feature-id": "CUST-SERVICE_PROVIDER-03",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "serviceProviderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联打手资料的 Strapi 文档标识。"
          },
          {
            "name": "rating",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 5
            },
            "description": "打手可见评价接口的rating查询参数。"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            },
            "description": "分页页码，从 1 开始。"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "description": "每页返回的记录数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedReviewResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/files/images": {
      "post": {
        "tags": [
          "文件"
        ],
        "summary": "上传临时业务图片",
        "description": "仅 jpeg/png/webp；<=10MB；返回 TEMPORARY businessFileId",
        "operationId": "owner_post_api_owner_v1_files_images",
        "x-feature-id": "COM-FILE-01",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerBusinessFileResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "purpose": {
                    "type": "string",
                    "enum": [
                      "ORDER_REQUIREMENT",
                      "AFTER_SALE_EVIDENCE",
                      "PROFILE_AVATAR"
                    ],
                    "description": "Owner 仅可上传订单需求、售后证据或头像用途的图片。",
                    "x-enum-descriptions": [
                      "取值 ORDER_REQUIREMENT。",
                      "取值 AFTER_SALE_EVIDENCE。",
                      "取值 PROFILE_AVATAR。"
                    ]
                  },
                  "orderId": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/OwnerDocumentId"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "关联电竞订单的 Strapi 文档标识。"
                  },
                  "file": {
                    "type": "string",
                    "contentEncoding": "binary",
                    "contentMediaType": "image/*",
                    "description": "需要上传的 JPEG、PNG 或 WebP 图片二进制文件。"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "purpose",
                  "file"
                ],
                "description": "上传临时业务图片请求体数据结构。"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner",
        "x-api-encryption": "unsupported-v1"
      }
    },
    "/api/owner/v1/files/{fileId}/access-url": {
      "get": {
        "tags": [
          "文件"
        ],
        "summary": "获取私有图片临时 URL",
        "description": "按 owner/order/角色校验；URL 5 分钟；写访问日志（敏感文件）",
        "operationId": "owner_get_api_owner_v1_files_file_id_access_url",
        "x-feature-id": "COM-FILE-02",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "获取私有图片临时 URL接口的文件标识路径参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerFileAccessUrlResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/files/{fileId}": {
      "delete": {
        "tags": [
          "文件"
        ],
        "summary": "删除未绑定临时图片",
        "description": "仅 owner 且 status=TEMPORARY",
        "operationId": "owner_delete_api_owner_v1_files_file_id",
        "x-feature-id": "COM-FILE-01",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "删除未绑定临时图片接口的文件标识路径参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerEmptyResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/standard": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "创建标准订单",
        "description": "资料字段严格匹配套餐快照；指定打手可用；返回 PENDING_PAYMENT；需要 Idempotency-Key",
        "operationId": "owner_post_api_owner_v1_orders_standard",
        "x-feature-id": "CUST-ORDER-01/02/03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCreateStandardOrderRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/custom": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "提交自定义需求",
        "description": "返回 PENDING_QUOTE；附件绑定；需要 Idempotency-Key",
        "operationId": "owner_post_api_owner_v1_orders_custom",
        "x-feature-id": "CUST-CUSTOM-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCreateCustomOrderRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/service-providers/{userId}": {
      "get": {
        "tags": [
          "公共打手"
        ],
        "summary": "按业务用户 ID 查询打手",
        "description": "仅 Owner 可按 D 加至少 5 位数字的业务用户 ID 查询公开可接单资料。",
        "operationId": "owner_get_api_owner_v1_service_providers_user_id",
        "x-feature-id": "CUST-SERVICE_PROVIDER-LOOKUP-01",
        "x-auth-scope": "老板",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "description": "D 开头且至少包含 5 位数字的打手业务用户 ID。",
            "schema": {
              "type": "string",
              "pattern": "^D[0-9]{5,}$",
              "maxLength": 32
            }
          }
        ],
        "responses": {
          "200": {
            "description": "返回公开打手详情及当前是否可下单。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerServiceProviderPublicDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "业务用户 ID 格式不正确。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "打手不存在、账号冻结或资料未公开。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/service-providers/{serviceProviderId}/booking-eligibility": {
      "post": {
        "tags": [
          "公共打手"
        ],
        "summary": "校验指定打手是否可接受自定义订单",
        "description": "游戏和服务类型始终必须匹配；仅当打手开启严格匹配时继续校验 MATCH_REQUIRED 额外属性。",
        "operationId": "owner_post_api_owner_v1_service_providers_service_provider_id_booking_eligibility",
        "x-feature-id": "CUST-SERVICE_PROVIDER-MATCH-01",
        "x-auth-scope": "老板",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "serviceProviderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联打手资料的 Strapi 文档标识。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerServiceProviderBookingEligibilityRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "返回可预约结论和结构化不匹配原因。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerServiceProviderBookingEligibilityResponse"
                }
              }
            }
          },
          "409": {
            "description": "游戏属性配置版本已变化。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "游戏属性选择不合法。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders": {
      "get": {
        "tags": [
          "老板订单"
        ],
        "summary": "分页查询本人订单",
        "description": "服务端强制 owners=本人；默认 updatedAt DESC",
        "operationId": "owner_get_api_owner_v1_orders",
        "x-feature-id": "CUST-ORDLIST-01/02",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "分页查询本人订单接口的category查询参数。"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "该资源当前所处的业务状态。"
          },
          {
            "name": "orderType",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "分页查询本人订单接口的订单类型查询参数。"
          },
          {
            "name": "gameId",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联游戏的 Strapi 文档标识。"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/OwnerDateTime"
            },
            "description": "分页查询本人订单接口的from查询参数。"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/OwnerDateTime"
            },
            "description": "分页查询本人订单接口的to查询参数。"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            },
            "description": "分页页码，从 1 开始。"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "description": "每页返回的记录数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedOrderSummaryResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}": {
      "get": {
        "tags": [
          "老板订单"
        ],
        "summary": "获取本人订单完整详情",
        "description": "动态资料默认掩码；聚合报价、派单、进度、验收、售后、评价和时间线",
        "operationId": "owner_get_api_owner_v1_orders_order_id",
        "x-feature-id": "CUST-ORDLIST-03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/cancel": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "取消未交易订单",
        "description": "仅 PENDING_QUOTE/PENDING_OWNER_CONFIRMATION/PENDING_PAYMENT 且交易未确认；幂等",
        "operationId": "owner_post_api_owner_v1_orders_order_id_cancel",
        "x-feature-id": "CUST-ORDER-03/CUST-CUSTOM-02/03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCancelOrderRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/supplements": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "追加自定义需求补充",
        "description": "仅 CUSTOM 且 PENDING_QUOTE/PENDING_OWNER_CONFIRMATION；只追加",
        "operationId": "owner_post_api_owner_v1_orders_order_id_supplements",
        "x-feature-id": "CUST-CUSTOM-02",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderBusinessNoteResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerOrderSupplementRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/quotes": {
      "get": {
        "tags": [
          "老板订单"
        ],
        "summary": "获取报价历史",
        "description": "只允许本人；历史只读",
        "operationId": "owner_get_api_owner_v1_orders_order_id_quotes",
        "x-feature-id": "CUST-CUSTOM-03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerQuoteListResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/quotes/{quoteId}/accept": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "接受当前有效报价",
        "description": "报价必须 ACTIVE；订单进入 PENDING_PAYMENT；幂等",
        "operationId": "owner_post_api_owner_v1_orders_order_id_quotes_quote_id_accept",
        "x-feature-id": "CUST-CUSTOM-03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "接受当前有效报价接口的报价标识路径参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerVersionedCommandRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/quotes/{quoteId}/adjustment-request": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "提交结构化调价请求",
        "description": "不改变订单状态；创建后台待办；不是聊天",
        "operationId": "owner_post_api_owner_v1_orders_order_id_quotes_quote_id_adjustment_request",
        "x-feature-id": "CUST-CUSTOM-03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "quoteId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "提交结构化调价请求接口的报价标识路径参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderBusinessNoteResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerQuoteAdjustmentRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/progress": {
      "get": {
        "tags": [
          "老板订单"
        ],
        "summary": "获取进度时间线",
        "description": "返回全部可见进度，按 sequence ASC",
        "operationId": "owner_get_api_owner_v1_orders_order_id_progress",
        "x-feature-id": "CUST-PROG-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            },
            "description": "分页页码，从 1 开始。"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "description": "每页返回的记录数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedProgressResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/service-provider-change-requests/current": {
      "get": {
        "tags": [
          "老板订单"
        ],
        "summary": "获取当前指定打手变更请求",
        "description": "无待确认时 data=null",
        "operationId": "owner_get_api_owner_v1_orders_order_id_service_provider_change_requests_current",
        "x-feature-id": "CUST-SERVICE_PROVIDER-04",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerServiceProviderChangeRequestResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/service-provider-change-requests/{requestId}/respond": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "批准或拒绝打手替换",
        "description": "仅 PENDING_OWNER；不自动派单；幂等",
        "operationId": "owner_post_api_owner_v1_orders_order_id_service_provider_change_requests_request_id_respond",
        "x-feature-id": "CUST-SERVICE_PROVIDER-04/ADM-DISP-02",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "用于关联日志与排查问题的请求标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerServiceProviderChangeRequestResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerServiceProviderChangeResponseRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/acceptance": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "提交验收结果",
        "description": "仅 PENDING_OWNER_ACCEPTANCE；confirm=true 时完成订单并生成结算；confirm=false 时 rejectionReason 必填，订单退回 IN_PROGRESS 且不生成结算；幂等",
        "operationId": "owner_post_api_owner_v1_orders_order_id_acceptance",
        "x-feature-id": "CUST-ACCEPT-02",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerOrderDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerAcceptanceRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/reviews": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "提交一次性评价",
        "description": "本人已完成订单，或后台已重置评价期限且仍在新期限内的部分退款订单；每单一条；幂等",
        "operationId": "owner_post_api_owner_v1_orders_order_id_reviews",
        "x-feature-id": "CUST-REVIEW-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerReviewResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCreateReviewRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      },
      "patch": {
        "tags": [
          "老板订单"
        ],
        "summary": "修改已提交评价",
        "description": "老板可在评价提交后 24 小时内修改一次评分或内容，评价不可删除。",
        "operationId": "owner_patch_api_owner_v1_orders_order_id_reviews",
        "x-feature-id": "CUST-REVIEW-02",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "description": "被评价订单的文档标识。",
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "评价修改成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerReviewResponse"
                }
              }
            }
          },
          "409": {
            "description": "评价版本冲突或修改次数已用完",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "评价修改超期或参数不合法",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerReviewUpdateRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/after-sales": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "发起售后申诉",
        "description": "待老板验收或完成后 72h 内；同单一个活动售后；幂等",
        "operationId": "owner_post_api_owner_v1_orders_order_id_after_sales",
        "x-feature-id": "CUST-AFTER-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerAfterSaleDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCreateAfterSaleRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/after-sales/current": {
      "get": {
        "tags": [
          "老板订单"
        ],
        "summary": "获取当前/最近售后",
        "description": "仅本人",
        "operationId": "owner_get_api_owner_v1_orders_order_id_after_sales_current",
        "x-feature-id": "CUST-AFTER-02/03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerAfterSaleDetailResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/after-sales/{caseId}/records": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "追加售后证据",
        "description": "只能追加；状态允许补充时可用；幂等",
        "operationId": "owner_post_api_owner_v1_after_sales_case_id_records",
        "x-feature-id": "CUST-AFTER-02",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "caseId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "追加售后证据接口的工单标识路径参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerAfterSaleRecordResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerAfterSaleRecordCreateRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/service-values/{valueId}/reveal": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "显式查看本人敏感服务资料",
        "description": "仅本人；订单售后期结束前；每次审计；禁止缓存",
        "operationId": "owner_post_api_owner_v1_orders_order_id_service_values_value_id_reveal",
        "x-feature-id": "COM-SEC-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "valueId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "显式查看本人敏感服务资料接口的值标识路径参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerSensitiveValueResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerVersionedRevealRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/referral": {
      "get": {
        "tags": [
          "老板推荐"
        ],
        "summary": "查看推荐关系",
        "description": "只返回代码掩码、主体类型/名称、建立时间；不可修改",
        "operationId": "owner_get_api_owner_v1_referral",
        "x-feature-id": "CUST-REF-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerReferralResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/notifications": {
      "get": {
        "tags": [
          "系统通知"
        ],
        "summary": "分页获取通知中心收件箱",
        "description": "合并本人持久通知与当前角色可见的有效全局公告；不返回聊天正文。",
        "operationId": "owner_get_api_owner_v1_notifications",
        "x-feature-id": "COM-NOTICE-01/02",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "unread",
            "in": "query",
            "required": false,
            "description": "是否只返回未读通知。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "按订单、余额、消息或系统通知分类筛选。",
            "schema": {
              "type": "string",
              "enum": [
                "ORDER",
                "BALANCE",
                "MESSAGE",
                "SYSTEM"
              ],
              "description": "分页获取通知中心收件箱参数数据结构。",
              "x-enum-descriptions": [
                "取值 ORDER。",
                "取值 BALANCE。",
                "取值 MESSAGE。",
                "取值 SYSTEM。"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            },
            "description": "分页页码，从 1 开始。"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "description": "每页返回的记录数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPagedNotificationResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/notifications/{notificationId}/read": {
      "post": {
        "tags": [
          "系统通知"
        ],
        "summary": "标记单条已读",
        "description": "幂等",
        "operationId": "owner_post_api_owner_v1_notifications_notification_id_read",
        "x-feature-id": "COM-NOTICE-01",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "notificationId",
            "in": "path",
            "required": true,
            "description": "列表返回的 PERSONAL 或 ANNOUNCEMENT 前缀通知标识。",
            "schema": {
              "type": "string",
              "minLength": 3,
              "maxLength": 100
            }
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerNotificationResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/notifications/read-all": {
      "post": {
        "tags": [
          "系统通知"
        ],
        "summary": "标记全部已读",
        "description": "可按 before 时间限制；幂等",
        "operationId": "owner_post_api_owner_v1_notifications_read_all",
        "x-feature-id": "COM-NOTICE-01",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerReadAllNotificationsResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "资源不存在或不可访问",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本、幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "业务校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerReadAllNotificationsRequest"
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/notification-center/push-installations/{installationId}": {
      "put": {
        "tags": [
          "系统通知"
        ],
        "summary": "登记当前老板端推送安装",
        "description": "按安装标识幂等写入 TPNS Token；Token 不进入响应、日志或 Outbox。",
        "operationId": "owner_put_api_owner_v1_notification_center_push_installations_installation_id",
        "x-feature-id": "COM-NOTICE-PUSH-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "installationId",
            "in": "path",
            "required": true,
            "description": "App 持久化的随机安装标识；同一安装重装前保持稳定。",
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9._:-]+$"
            }
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerPushInstallationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "登记成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPushInstallationResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "平台、环境或 Token 校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      },
      "delete": {
        "tags": [
          "系统通知"
        ],
        "summary": "注销当前老板端推送安装",
        "description": "幂等撤销安装与老板账号的绑定；安装不存在时仍返回成功。",
        "operationId": "owner_delete_api_owner_v1_notification_center_push_installations_installation_id",
        "x-feature-id": "COM-NOTICE-PUSH-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "installationId",
            "in": "path",
            "required": true,
            "description": "App 持久化的随机安装标识。",
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9._:-]+$"
            }
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "同一主体和命令范围内唯一；重复请求返回原结果。"
          }
        ],
        "responses": {
          "200": {
            "description": "注销成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerPushInstallationResponse"
                }
              }
            }
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "401": {
            "description": "未认证",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "403": {
            "description": "权限不足",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "409": {
            "description": "幂等或唯一冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "422": {
            "description": "安装标识校验失败",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "500": {
            "description": "服务内部错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/public/dictionaries": {
      "get": {
        "tags": [
          "公共字典"
        ],
        "summary": "统一获取代码锁定与开放型字典",
        "description": "返回面向公开端的代码内置只读字典和数据库动态字典；支持 ETag，缓存时间不超过 30 秒。",
        "operationId": "owner_get_api_owner_v1_public_dictionaries",
        "x-feature-id": "COM-DICT-01",
        "x-auth-scope": "公开",
        "parameters": [
          {
            "name": "codes",
            "in": "query",
            "required": false,
            "description": "逗号分隔的字典编码，最多 50 个；省略时返回全部 PUBLIC 字典。",
            "schema": {
              "type": "string",
              "maxLength": 3249
            }
          },
          {
            "name": "If-None-Match",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "统一获取代码锁定与开放型字典接口的ifnonematch请求头参数。"
          },
          {
            "name": "X-Request-Id",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "description": "可选的请求标识；未提供时由服务端生成，用于日志关联。"
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                },
                "description": "etag响应头。"
              },
              "Cache-Control": {
                "schema": {
                  "type": "string"
                },
                "description": "cachecontrol响应头。"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerDictionaryCollectionResponse"
                }
              }
            }
          },
          "304": {
            "description": "字典版本未变化"
          },
          "400": {
            "description": "请求格式错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "404": {
            "description": "字典不存在或不面向公开端",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "429": {
            "description": "限流",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          },
          "503": {
            "description": "依赖暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/files/media": {
      "post": {
        "tags": [
          "文件"
        ],
        "summary": "上传通用业务媒体",
        "description": "根据文件头、ffprobe、大小、时长和 ClamAV 校验图片、视频或录音；WebSocket 不传输二进制。",
        "operationId": "owner_post_api_owner_v1_files_media",
        "x-feature-id": "COM-FILE-03",
        "x-auth-scope": "Owner",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "上传通用业务媒体接口的idempotency键请求头参数。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/OwnerBusinessMediaUploadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "媒体校验并上传成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerBusinessFileResponse"
                }
              }
            }
          },
          "422": {
            "description": "MIME、编码、大小、时长或病毒扫描未通过",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner",
        "x-api-encryption": "unsupported-v1"
      }
    },
    "/api/owner/v1/orders/{orderId}/reassignment-requests": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "发起订单改派请求",
        "description": "仅实际新打手派单成功后消耗一次改派次数；驳回、撤回、失败和售后返工不计数。",
        "operationId": "owner_post_api_owner_v1_orders_order_id_reassignment_requests",
        "x-feature-id": "CUST-REASSIGN-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "发起订单改派请求接口的idempotency键请求头参数。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerReassignmentRequestCreateInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "改派请求创建成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerReassignmentResponse"
                }
              }
            }
          },
          "409": {
            "description": "状态、版本或次数上限冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/orders/{orderId}/reassignment-requests/{requestId}/withdraw": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "撤回订单改派请求",
        "operationId": "owner_post_api_owner_v1_orders_order_id_reassignment_requests_request_id_withdraw",
        "x-feature-id": "CUST-REASSIGN-01",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "用于关联日志与排查问题的请求标识。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "撤回订单改派请求接口的idempotency键请求头参数。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerVersionedReasonRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "改派请求已撤回",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerReassignmentResponse"
                }
              }
            }
          },
          "409": {
            "description": "请求已处理或版本冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner",
        "description": "撤回订单改派请求。详细请求字段、响应字段和业务约束见下方模型说明。"
      }
    },
    "/api/owner/v1/orders/{orderId}/review-deletion": {
      "post": {
        "tags": [
          "老板订单"
        ],
        "summary": "软删除订单评价",
        "description": "受评价删除开关和编辑期限限制；保留原评分、原文和完整审计。",
        "operationId": "owner_post_api_owner_v1_orders_order_id_review_deletion",
        "x-feature-id": "CUST-REVIEW-03",
        "x-auth-scope": "老板",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            },
            "description": "软删除订单评价接口的idempotency键请求头参数。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerVersionedReasonRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "评价已软删除",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerReviewResponse"
                }
              }
            }
          },
          "409": {
            "description": "版本或评价状态冲突",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/payment-center/wallet": {
      "get": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_get_api_owner_v1_payment_center_wallet",
        "summary": "Owner 获取当前钱包",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterWalletResponse",
            "description": "GET /api/owner/v1/payment-center/wallet 的 200 响应。"
          }
        },
        "x-surface": "owner",
        "description": "只返回当前 Owner 本人的钱包余额与版本。"
      }
    },
    "/api/owner/v1/payment-center/ledger": {
      "get": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_get_api_owner_v1_payment_center_ledger",
        "summary": "获取当前钱包不可变资金流水",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterPage"
          },
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterPageSize"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterLedgerPagedResponse",
            "description": "GET /api/owner/v1/payment-center/ledger 的 200 响应。"
          }
        },
        "x-surface": "owner",
        "description": "获取当前钱包不可变资金流水。详细请求字段、响应字段和业务约束见下方模型说明。"
      }
    },
    "/api/owner/v1/payment-center/payment-orders": {
      "get": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_get_api_owner_v1_payment_center_payment_orders",
        "summary": "获取老板本人支付单",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterPage"
          },
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterPageSize"
          },
          {
            "name": "scene",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ORDER_PAYMENT",
                "RECHARGE"
              ],
              "description": "获取老板本人支付单参数数据结构。",
              "x-enum-descriptions": [
                "订单支付：订单支付。",
                "钱包充值：钱包充值。"
              ]
            },
            "description": "按订单支付或钱包充值筛选。"
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "PENDING",
                "SUCCEEDED",
                "PARTIALLY_REFUNDED",
                "REFUNDED",
                "FAILED",
                "CLOSED"
              ],
              "description": "获取老板本人支付单参数数据结构。",
              "x-enum-descriptions": [
                "待支付：待支付。",
                "支付成功：支付成功。",
                "部分退款：部分退款。",
                "已退款：已退款。",
                "支付失败：支付失败。",
                "支付单关闭：支付单关闭。"
              ]
            },
            "description": "按支付单权威状态筛选；PENDING 表示尚未完成支付。"
          },
          {
            "name": "channel",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "BALANCE",
                "ALIPAY"
              ],
              "description": "获取老板本人支付单参数数据结构。",
              "x-enum-descriptions": [
                "使用平台钱包可用余额支付。",
                "使用支付宝 App 支付。"
              ]
            },
            "description": "本次支付使用的资金渠道。"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterPaymentOrderPagedResponse",
            "description": "GET /api/owner/v1/payment-center/payment-orders 的 200 响应。"
          }
        },
        "x-surface": "owner",
        "description": "获取老板本人支付单。详细请求字段、响应字段和业务约束见下方模型说明。"
      }
    },
    "/api/owner/v1/payment-center/payment-orders/{paymentNo}": {
      "get": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_get_api_owner_v1_payment_center_payment_orders_payment_no",
        "summary": "获取老板本人单个支付单",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "paymentNo",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "支付中心生成的全局唯一支付单号。"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterPaymentOrderResponse",
            "description": "GET /api/owner/v1/payment-center/payment-orders/{paymentNo} 的 200 响应。"
          }
        },
        "x-surface": "owner",
        "description": "获取老板本人单个支付单。详细请求字段、响应字段和业务约束见下方模型说明。"
      }
    },
    "/api/owner/v1/payment-center/payment-orders/{paymentNo}/sync": {
      "post": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_post_api_owner_v1_payment_center_payment_orders_payment_no_sync",
        "summary": "主动向支付宝查单并同步可信支付状态",
        "description": "Go 调用 alipay.trade.query 并校验响应 RSA2 签名、商户单号与金额；不接受客户端支付结果。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "paymentNo",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "支付中心生成的全局唯一支付单号。"
          },
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterIdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterPaymentSyncResultResponse",
            "description": "POST /api/owner/v1/payment-center/payment-orders/{paymentNo}/sync 的 200 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/payment-center/payment-orders/{paymentNo}/checkout": {
      "post": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_post_api_owner_v1_payment_center_payment_orders_payment_no_checkout",
        "summary": "重新发起未过期的支付宝充值支付",
        "description": "仅允许老板本人对 RECHARGE、ALIPAY、PENDING 且未过期的原充值单重新取得支付载荷；复用原 paymentNo、金额和到期时间，不创建新充值单。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "paymentNo",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "支付中心生成的全局唯一支付单号。"
          },
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterIdempotencyKey"
          },
          {
            "name": "presentation",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "APP",
                "WAP"
              ],
              "default": "APP",
              "description": "重新发起未过期的支付宝充值支付参数数据结构。",
              "x-enum-descriptions": [
                "取值 APP。",
                "取值 WAP。"
              ]
            },
            "description": "APP 返回支付宝客户端 orderString；WAP 返回系统浏览器可打开的手机网站收银台 URL。"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterPaymentInitiationResponse",
            "description": "POST /api/owner/v1/payment-center/payment-orders/{paymentNo}/checkout 的 200 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/payment-center/orders/{orderId}/pay": {
      "post": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_post_api_owner_v1_payment_center_orders_order_id_pay",
        "summary": "使用钱包余额、支付宝或自动组合支付现有待付款订单",
        "description": "支持 STANDARD、CUSTOM 和指定打手入口订单；AUTO 会优先使用可用余额，余额不足时冻结余额并仅为差额创建支付宝支付单；金额只读取服务端订单快照。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterIdempotencyKey"
          },
          {
            "name": "presentation",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "APP",
                "WAP"
              ],
              "default": "APP",
              "description": "使用钱包余额、支付宝或自动组合支付现有待付款订单参数数据结构。",
              "x-enum-descriptions": [
                "取值 APP。",
                "取值 WAP。"
              ]
            },
            "description": "APP 返回支付宝客户端 orderString；WAP 返回系统浏览器可打开的手机网站收银台 URL。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "channel"
                ],
                "properties": {
                  "channel": {
                    "type": "string",
                    "enum": [
                      "AUTO",
                      "BALANCE",
                      "ALIPAY"
                    ],
                    "description": "老板注册验证码的接收渠道，当前仅支持 PHONE 手机号短信。",
                    "x-enum-descriptions": [
                      "自动选择渠道：自动选择渠道。",
                      "仅钱包余额：仅钱包余额。",
                      "仅支付宝：仅支付宝。"
                    ]
                  }
                },
                "description": "使用钱包余额、支付宝或自动组合支付现有待付款订单请求体数据结构。"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterPaymentInitiationResponse",
            "description": "POST /api/owner/v1/payment-center/orders/{orderId}/pay 的 200 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/payment-center/recharges/alipay": {
      "post": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_post_api_owner_v1_payment_center_recharges_alipay",
        "summary": "老板创建支付宝钱包充值单",
        "description": "打手无充值能力；验签成功后按支付金额一比一入可用余额且不收手续费；iOS 沙箱测试可请求 WAP 手机网站收银台。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterIdempotencyKey"
          },
          {
            "name": "presentation",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "APP",
                "WAP"
              ],
              "default": "APP",
              "description": "老板创建支付宝钱包充值单参数数据结构。",
              "x-enum-descriptions": [
                "取值 APP。",
                "取值 WAP。"
              ]
            },
            "description": "APP 返回支付宝客户端 orderString；WAP 返回系统浏览器可打开的手机网站收银台 URL。"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "amountMinor"
                ],
                "properties": {
                  "amountMinor": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor"
                      }
                    ],
                    "description": "充值金额，单位为人民币分，使用十进制字符串传输。"
                  }
                },
                "description": "老板创建支付宝钱包充值单请求体数据结构。"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterPaymentInitiationResponse",
            "description": "POST /api/owner/v1/payment-center/recharges/alipay 的 200 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/payment-center/withdrawals": {
      "get": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_get_api_owner_v1_payment_center_withdrawals",
        "summary": "Owner 获取本人提现申请",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterPage"
          },
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterPageSize"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterWithdrawalPagedResponse",
            "description": "GET /api/owner/v1/payment-center/withdrawals 的 200 响应。"
          }
        },
        "x-surface": "owner",
        "description": "分页返回当前 Owner 本人的提现申请。"
      },
      "post": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_post_api_owner_v1_payment_center_withdrawals",
        "summary": "Owner 申请提现",
        "description": "仅允许当前 Owner 从本人钱包申请提现；必须提交支付宝登录号与实名，服务端加密保存收款资料。申请金额先转入冻结余额，审批后由支付中心执行打款。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerPaymentCenterIdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "amountMinor",
                  "payoutChannel",
                  "alipayLoginId",
                  "alipayRealName"
                ],
                "properties": {
                  "amountMinor": {
                    "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor",
                    "description": "人民币分金额，以十进制字符串传输，避免浮点精度损失。"
                  },
                  "payoutChannel": {
                    "type": "string",
                    "const": "ALIPAY",
                    "description": "本次提现使用的实际打款渠道，当前固定为支付宝且必须同时通过业务开关与部署能力开关。"
                  },
                  "alipayLoginId": {
                    "type": "string",
                    "minLength": 5,
                    "maxLength": 100,
                    "description": "支付宝登录手机号或邮箱，仅加密保存。"
                  },
                  "alipayRealName": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 50,
                    "description": "支付宝实名，仅加密保存。"
                  }
                },
                "description": "归属主体申请提现请求体数据结构。"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerPaymentCenterWithdrawalResponse",
            "description": "POST /api/owner/v1/payment-center/withdrawals 的 200 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/payment-center/alipay/notify": {
      "post": {
        "tags": [
          "支付中心"
        ],
        "operationId": "owner_post_api_owner_v1_payment_center_alipay_notify",
        "summary": "支付宝支付异步通知",
        "description": "公网 HTTPS form 端点；Go 完成 RSA2 验签及 app_id、seller_id 校验后才调用内部资金事务。",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "additionalProperties": true,
                "required": [
                  "app_id",
                  "out_trade_no",
                  "trade_no",
                  "trade_status",
                  "total_amount",
                  "sign",
                  "sign_type"
                ],
                "description": "支付宝支付异步通知请求体数据结构。"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "事务提交成功时正文精确为 success，否则为 failure",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "enum": [
                    "success",
                    "failure"
                  ],
                  "description": "支付宝支付异步通知响应数据结构。",
                  "x-enum-descriptions": [
                    "支付宝通知事务已提交，渠道无需重试。",
                    "通知未被业务接受，渠道应按规则重试。"
                  ]
                }
              }
            }
          }
        },
        "x-surface": "owner",
        "x-api-encryption": "signed-external"
      }
    },
    "/api/owner/v1/communication-center/orders/{orderId}/conversation": {
      "post": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_post_api_owner_v1_communication_center_orders_order_id_conversation",
        "summary": "创建或获取订单会话",
        "description": "仅订单老板和当前指派打手可访问；客服通过 Admin 会话队列访问。同一订单同一派单轮次返回同一会话，改派后创建新会话并保留旧会话历史。\nACTIVE 可创建；READ_ONLY 只允许返回已存在会话；DISABLED 返回模块停用错误。\n",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterOrderId"
          },
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterIdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterConversationResponse",
            "description": "POST /api/owner/v1/communication-center/orders/{orderId}/conversation 的 200 响应。"
          },
          "400": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/orders/{orderId}/conversation 的 400 响应。"
          },
          "404": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/orders/{orderId}/conversation 的 404 响应。"
          },
          "409": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/orders/{orderId}/conversation 的 409 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/orders/{orderId}/conversation 的 503 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/communication-center/support-conversation": {
      "post": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_post_api_owner_v1_communication_center_support_conversation",
        "summary": "创建或获取客服会话",
        "description": "同一老板同时最多存在一个未关闭客服会话；打手无此入口，READ_ONLY 和 DISABLED 均禁止创建。",
        "x-auth-scope": "老板",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterIdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterSupportConversationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterConversationResponse",
            "description": "POST /api/owner/v1/communication-center/support-conversation 的 200 响应。"
          },
          "400": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/support-conversation 的 400 响应。"
          },
          "403": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/support-conversation 的 403 响应。"
          },
          "409": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/support-conversation 的 409 响应。"
          },
          "422": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/support-conversation 的 422 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/support-conversation 的 503 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/communication-center/conversations": {
      "get": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_get_api_owner_v1_communication_center_conversations",
        "summary": "获取本人会话列表",
        "description": "只返回当前身份参与的会话，使用不透明 cursor 分页；DISABLED 不允许读取。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterCursor"
          },
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterLimit"
          },
          {
            "name": "unreadOnly",
            "in": "query",
            "description": "是否仅返回当前身份存在未读消息的会话。",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "按订单会话或客服会话过滤。",
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterConversationType"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterConversationListResponse",
            "description": "GET /api/owner/v1/communication-center/conversations 的 200 响应。"
          },
          "400": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations 的 400 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations 的 503 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/communication-center/conversations/{conversationId}": {
      "get": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_get_api_owner_v1_communication_center_conversations_conversation_id",
        "summary": "获取本人会话详情",
        "description": "仅会话参与者可读取；响应包含当前最新 sequence 和本人已读 sequence。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterConversationId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterConversationResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId} 的 200 响应。"
          },
          "400": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId} 的 400 响应。"
          },
          "404": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId} 的 404 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId} 的 503 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/communication-center/conversations/{conversationId}/messages": {
      "get": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_get_api_owner_v1_communication_center_conversations_conversation_id_messages",
        "summary": "按顺序获取本人会话消息",
        "description": "仅会话参与者可读取。首次加载使用 cursor 向历史方向分页；断线补偿使用 afterSequence，\ncursor 与 afterSequence 不得同时传入。响应消息始终按 sequence 升序排列。\n",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterConversationId"
          },
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterCursor"
          },
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterAfterSequence"
          },
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterLimit"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterMessageListResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 200 响应。"
          },
          "400": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 400 响应。"
          },
          "404": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 404 响应。"
          },
          "422": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 422 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "GET /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 503 响应。"
          }
        },
        "x-surface": "owner"
      },
      "post": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_post_api_owner_v1_communication_center_conversations_conversation_id_messages",
        "summary": "发送文字或媒体消息",
        "description": "接受文字、图片、视频或混合消息。附件必须先通过通用媒体入口上传并使用 CHAT_ATTACHMENT 用途；\nclientMessageId 在同一会话和发送者范围内唯一；完全相同的重试返回原消息，\n相同 clientMessageId 携带不同正文返回 409。READ_ONLY 和 DISABLED 均禁止发送。\n",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterConversationId"
          },
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterIdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterSendMessageInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterMessageResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 200 响应。"
          },
          "400": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 400 响应。"
          },
          "403": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 403 响应。"
          },
          "404": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 404 响应。"
          },
          "409": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 409 响应。"
          },
          "422": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 422 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/messages 的 503 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/communication-center/conversations/{conversationId}/read": {
      "post": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_post_api_owner_v1_communication_center_conversations_conversation_id_read",
        "summary": "更新本人已读位置",
        "description": "readSequence 只允许单调递增，重复提交保持幂等；READ_ONLY 仍允许更新已读位置。",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterConversationId"
          },
          {
            "$ref": "#/components/parameters/OwnerCommunicationCenterIdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterReadInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterReadResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/read 的 200 响应。"
          },
          "400": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/read 的 400 响应。"
          },
          "404": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/read 的 404 响应。"
          },
          "422": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/read 的 422 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/conversations/{conversationId}/read 的 503 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/communication-center/realtime-ticket": {
      "post": {
        "tags": [
          "即时通讯"
        ],
        "operationId": "owner_post_api_owner_v1_communication_center_realtime_ticket",
        "summary": "签发一次性实时连接凭证",
        "description": "为当前身份签发一次性 ticket，有效期由公开客户端配置控制并在响应中返回；首次 WebSocket 握手原子消费后立即失效。\nticket 不得写入日志、持久化明文或复用；签发会话在握手时重新校验，DISABLED 不签发。\n",
        "security": [
          {
            "OwnerBearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OwnerCommunicationCenterRealtimeTicketResponse",
            "description": "POST /api/owner/v1/communication-center/realtime-ticket 的 200 响应。"
          },
          "429": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/realtime-ticket 的 429 响应。"
          },
          "503": {
            "$ref": "#/components/responses/OwnerCommunicationCenterErrorResponse",
            "description": "POST /api/owner/v1/communication-center/realtime-ticket 的 503 响应。"
          }
        },
        "x-surface": "owner"
      }
    },
    "/api/owner/v1/api-encryption/bootstrap": {
      "get": {
        "tags": [
          "接口加密"
        ],
        "summary": "获取 API 加密公钥与当前必需加密策略",
        "description": "公共明文引导端点；响应禁止缓存。可配置接口默认关闭；policyKnown=false 表示当前策略不可判定，客户端不得将其视为明确关闭。",
        "operationId": "owner_get_api_owner_v1_api_encryption_bootstrap",
        "security": [],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerAPIEncryptionBootstrapResponse"
                }
              }
            }
          },
          "503": {
            "description": "加密私钥暂不可用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerErrorEnvelope"
                }
              }
            }
          }
        },
        "x-surface": "owner",
        "x-api-encryption": "plaintext-bootstrap"
      }
    },
    "/api/owner/v1/health/live": {
      "get": {
        "tags": [
          "运维"
        ],
        "summary": "Go Gateway 存活检查",
        "description": "检查 Go Gateway HTTP 进程是否能够接受请求，不检查下游依赖。",
        "operationId": "owner_get_api_owner_v1_health_live",
        "x-surface": "owner",
        "security": [],
        "responses": {
          "200": {
            "description": "Go Gateway 进程存活。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerGoLiveStatus"
                }
              }
            }
          }
        }
      }
    },
    "/api/owner/v1/health/ready": {
      "get": {
        "tags": [
          "运维"
        ],
        "summary": "Go Gateway 就绪检查",
        "description": "检查 Strapi、Redis 和 API 加密服务是否满足接收业务流量的条件。",
        "operationId": "owner_get_api_owner_v1_health_ready",
        "x-surface": "owner",
        "security": [],
        "responses": {
          "200": {
            "description": "Go Gateway 及必要依赖已就绪。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerGoReadinessStatus"
                }
              }
            }
          },
          "503": {
            "description": "至少一个必要依赖尚未就绪。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OwnerGoReadinessStatus"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "OwnerPasswordLoginRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "method",
          "account",
          "password",
          "deviceId",
          "platform",
          "agreementVersion",
          "privacyVersion"
        ],
        "description": "老板账号密码登录请求，仅接受 ACCOUNT_PASSWORD 身份；手机号注册账号不能使用本请求登录。",
        "properties": {
          "method": {
            "type": "string",
            "const": "ACCOUNT_PASSWORD",
            "description": "固定为 ACCOUNT_PASSWORD；身份类型由该字段决定，与 account 字符内容无关。"
          },
          "account": {
            "type": "string",
            "minLength": 3,
            "maxLength": 80,
            "description": "普通 username 登录账号；含 @ 或全数字仍不表示邮箱或手机号，也不会进入其他认证流程。"
          },
          "password": {
            "type": "string",
            "format": "password",
            "minLength": 12,
            "maxLength": 128,
            "description": "账号密码注册老板与打手用于密码登录；手机号注册老板保存系统随机不可用密码。由 Strapi 密码类型哈希，业务代码不得返回或记录明文。"
          },
          "deviceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "客户端设备 UUID，用于会话识别与安全审计。"
          },
          "deviceName": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 120,
            "description": "deviceName 字段属于“前台刷新会话”内容类型。字段含义：设备展示名。数据类型：字符串。业务填写与默认规则：可空。业务约束与索引要求：最大 120。"
          },
          "platform": {
            "$ref": "#/components/schemas/OwnerPlatform",
            "description": "平台字段。"
          },
          "agreementVersion": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "description": "当前客户端明确同意的用户协议版本，必须满足 SECURITY_ACCOUNT 的协议版本策略。"
          },
          "privacyVersion": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "description": "当前客户端明确同意的隐私政策版本，必须满足 SECURITY_ACCOUNT 的协议版本策略。"
          }
        }
      },
      "OwnerAuthResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerAuthPayload",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "认证数据结构。"
      },
      "OwnerErrorEnvelope": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "error": {
            "$ref": "#/components/schemas/OwnerErrorObject",
            "description": "接口失败时返回的结构化错误对象。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "error"
        ],
        "description": "错误envelope数据结构。"
      },
      "OwnerRegistrationCodeRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "channel",
          "identifier",
          "deviceId",
          "platform"
        ],
        "properties": {
          "channel": {
            "type": "string",
            "const": "PHONE",
            "description": "固定为 PHONE 手机短信验证码。"
          },
          "identifier": {
            "type": "string",
            "pattern": "^\\\\+[1-9][0-9]{7,14}$",
            "description": "E.164 手机号。"
          },
          "deviceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "客户端设备 UUID，用于会话识别与安全审计。"
          },
          "platform": {
            "$ref": "#/components/schemas/OwnerPlatform",
            "description": "平台字段。"
          }
        },
        "description": "归属主体registration编码数据结构。"
      },
      "OwnerRegistrationCodeResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "challengeNo",
              "channel",
              "cooldownSeconds",
              "expiresInSeconds"
            ],
            "properties": {
              "challengeNo": {
                "$ref": "#/components/schemas/OwnerUuid",
                "description": "注册验证码挑战的全局唯一 UUID 业务编号，用于参与验证码哈希计算、审计追踪和幂等识别。"
              },
              "channel": {
                "type": "string",
                "const": "PHONE",
                "description": "固定为 PHONE 手机短信验证码。"
              },
              "cooldownSeconds": {
                "type": "integer",
                "minimum": 0,
                "description": "再次发送验证码前需要等待的秒数。"
              },
              "expiresInSeconds": {
                "type": "integer",
                "minimum": 1,
                "description": "该结果或临时凭据的有效时长，单位为秒。"
              }
            },
            "description": "本次响应返回的业务数据。"
          }
        },
        "description": "归属主体registration编码数据结构。"
      },
      "OwnerRegisterRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "deviceId",
          "platform",
          "agreementVersion",
          "privacyVersion"
        ],
        "description": "老板统一注册请求。新版客户端必须使用 oneOf 中与 method 一致的字段组合；服务端拒绝混用不同注册方式字段以及新版、旧版字段混用。",
        "oneOf": [
          {
            "title": "账号密码注册",
            "required": [
              "method",
              "account",
              "password",
              "passwordConfirmation"
            ],
            "properties": {
              "method": {
                "const": "ACCOUNT_PASSWORD",
                "description": "接口使用的 HTTP 方法。"
              }
            },
            "description": "归属主体register数据结构。"
          },
          {
            "title": "手机号注册",
            "required": [
              "method",
              "phone"
            ],
            "properties": {
              "method": {
                "const": "PHONE",
                "description": "接口使用的 HTTP 方法。"
              }
            },
            "description": "归属主体register数据结构。"
          },
          {
            "title": "旧版手机号注册",
            "required": [
              "channel",
              "identifier"
            ]
          }
        ],
        "properties": {
          "challengeNo": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OwnerUuid"
              }
            ],
            "description": "手机号注册验证开关开启时必填。"
          },
          "method": {
            "type": "string",
            "enum": [
              "ACCOUNT_PASSWORD",
              "PHONE"
            ],
            "description": "新版显式注册方式，必须来自公开客户端配置中 available=true 的方式；后端不会根据任何输入内容重新推断类型。",
            "x-enum-descriptions": [
              "取值 ACCOUNT_PASSWORD。",
              "取值 PHONE。"
            ]
          },
          "account": {
            "type": "string",
            "minLength": 3,
            "maxLength": 80,
            "description": "ACCOUNT_PASSWORD 普通登录账号，写入 username 且规范化后大小写不敏感唯一；允许包含 @ 或全部由数字组成，但这些字符不会赋予邮箱或手机号语义。"
          },
          "password": {
            "type": "string",
            "minLength": 12,
            "maxLength": 128,
            "format": "password",
            "description": "账号密码注册老板与打手用于密码登录；手机号注册老板保存系统随机不可用密码。由 Strapi 密码类型哈希，业务代码不得返回或记录明文。"
          },
          "passwordConfirmation": {
            "type": "string",
            "minLength": 12,
            "maxLength": 128,
            "format": "password",
            "description": "ACCOUNT_PASSWORD 注册时必填，必须与 password 完全一致。"
          },
          "phone": {
            "type": "string",
            "pattern": "^\\\\+[1-9][0-9]{7,14}$",
            "description": "E.164 手机号。"
          },
          "channel": {
            "type": "string",
            "const": "PHONE",
            "deprecated": true,
            "description": "旧版兼容字段；新客户端应使用 method。"
          },
          "identifier": {
            "type": "string",
            "minLength": 3,
            "maxLength": 254,
            "deprecated": true,
            "description": "旧版兼容字段；语义由 channel 决定。"
          },
          "code": {
            "type": "string",
            "pattern": "^[0-9]{6}$",
            "description": "手机号注册验证开关开启时必填。"
          },
          "referralCode": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[A-Z0-9]{4,32}$",
            "description": "新码为纯数字顺序码；为兼容历史推荐关系仍接受原有大写字母数字码。"
          },
          "deviceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "客户端设备 UUID，用于会话识别与安全审计。"
          },
          "deviceName": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 120,
            "description": "deviceName 字段属于“前台刷新会话”内容类型。字段含义：设备展示名。数据类型：字符串。业务填写与默认规则：可空。业务约束与索引要求：最大 120。"
          },
          "platform": {
            "$ref": "#/components/schemas/OwnerPlatform",
            "description": "平台字段。"
          },
          "agreementVersion": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "description": "本次明确同意的用户协议版本，必须与 SECURITY_ACCOUNT 当前值一致。"
          },
          "privacyVersion": {
            "type": "string",
            "minLength": 1,
            "maxLength": 32,
            "description": "本次明确同意的隐私政策版本，必须与 SECURITY_ACCOUNT 当前值一致。"
          }
        }
      },
      "OwnerAuthTokensResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "object",
            "properties": {
              "accessToken": {
                "type": "string",
                "description": "用于访问受保护接口的短期访问令牌。"
              },
              "accessTokenExpiresIn": {
                "type": "integer",
                "description": "访问令牌剩余有效时长，单位为秒。"
              },
              "refreshToken": {
                "type": "string",
                "description": "用于轮换访问令牌的刷新令牌。"
              },
              "refreshTokenExpiresIn": {
                "type": "integer",
                "description": "刷新令牌剩余有效时长，单位为秒。"
              },
              "sessionId": {
                "$ref": "#/components/schemas/OwnerUuid",
                "description": "会话标识字段。"
              }
            },
            "additionalProperties": false,
            "required": [
              "accessToken",
              "accessTokenExpiresIn",
              "refreshToken",
              "refreshTokenExpiresIn",
              "sessionId"
            ],
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "认证tokens数据结构。"
      },
      "OwnerRefreshRequest": {
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string",
            "minLength": 32,
            "maxLength": 2048,
            "description": "用于轮换访问令牌的刷新令牌。"
          },
          "sessionId": {
            "$ref": "#/components/schemas/OwnerUuid",
            "description": "会话标识字段。"
          },
          "deviceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "客户端设备 UUID，用于会话识别与安全审计。"
          }
        },
        "additionalProperties": false,
        "required": [
          "refreshToken",
          "sessionId",
          "deviceId"
        ],
        "description": "刷新数据结构。"
      },
      "OwnerEmptyResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "null",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "empty数据结构。"
      },
      "OwnerLogoutRequest": {
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string",
            "minLength": 32,
            "maxLength": 2048,
            "description": "用于轮换访问令牌的刷新令牌。"
          },
          "sessionId": {
            "$ref": "#/components/schemas/OwnerUuid",
            "description": "会话标识字段。"
          }
        },
        "additionalProperties": false,
        "required": [
          "refreshToken",
          "sessionId"
        ],
        "description": "logout数据结构。"
      },
      "OwnerMeResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "触发本次变更的请求标识，用于把消息历史、统一审计记录和服务端日志串联排查。"
          },
          "data": {
            "type": "object",
            "properties": {
              "account": {
                "$ref": "#/components/schemas/OwnerAuthAccount",
                "description": "本条资金事实对应的钱包账户，账本余额快照必须与该账户事务内更新后的值一致。"
              },
              "profile": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/OwnerProfile"
                  }
                ],
                "description": "与账号类型对应的老板资料或打手资料。"
              }
            },
            "additionalProperties": false,
            "required": [
              "account",
              "profile"
            ],
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "me数据结构。"
      },
      "OwnerProfileResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerProfile",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "归属主体资料数据结构。"
      },
      "OwnerProfilePatchRequest": {
        "type": "object",
        "properties": {
          "nickname": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "nickname 字段属于“老板资料”内容类型。字段含义：老板展示昵称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-40 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 40 个字符。"
          },
          "avatarFileId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "需要设置为头像的业务文件标识。"
          },
          "expectedProfileVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的资料版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "expectedProfileVersion"
        ],
        "description": "归属主体资料数据结构。"
      },
      "OwnerClientConfigurationResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "公开客户端启动配置响应。",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerClientConfiguration",
            "description": "本次响应返回的业务数据。"
          }
        }
      },
      "OwnerPagedGameResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGame"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta"
        ],
        "description": "paged游戏数据结构。"
      },
      "OwnerDocumentId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64,
        "description": "Strapi documentId"
      },
      "OwnerPagedServiceTypeResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceType"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta"
        ],
        "description": "paged服务类型数据结构。"
      },
      "OwnerGameAttributeTreeResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerGameAttributeTree",
            "description": "本次响应返回的业务数据。"
          }
        },
        "description": "游戏attributetree数据结构。"
      },
      "OwnerPagedPackageResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerPackageSummary"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta"
        ],
        "description": "paged套餐数据结构。"
      },
      "OwnerPackageDetailResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerPackageDetail",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "套餐数据结构。"
      },
      "OwnerPagedServiceProviderResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderSummary"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta"
        ],
        "description": "paged服务提供者数据结构。"
      },
      "OwnerServiceProviderPublicDetailResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerServiceProviderPublicDetail",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "服务提供者数据结构。"
      },
      "OwnerPagedReviewResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerReview"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta"
        ],
        "description": "paged审核数据结构。"
      },
      "OwnerBusinessFileResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerBusinessFile",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "业务文件数据结构。"
      },
      "OwnerFileAccessUrlResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "服务端签发的资源访问地址。"
              },
              "expiresInSeconds": {
                "type": "integer",
                "minimum": 1,
                "description": "该结果或临时凭据的有效时长，单位为秒。"
              }
            },
            "additionalProperties": false,
            "required": [
              "url",
              "expiresInSeconds"
            ],
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "文件access地址数据结构。"
      },
      "OwnerOrderDetailResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerOrderDetail",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "订单数据结构。"
      },
      "OwnerCreateStandardOrderRequest": {
        "type": "object",
        "properties": {
          "packageId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联服务套餐的 Strapi 文档标识。"
          },
          "gameId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "套餐存在多个游戏上下文时可显式选择；完全未绑定套餐可不传。"
          },
          "serviceTypeId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "套餐存在多个服务类型时可显式选择；完全未绑定套餐可不传。"
          },
          "designatedServiceProviderId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "老板指定打手的 Strapi 文档标识。"
          },
          "serviceValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceValueInput"
            },
            "minItems": 0,
            "maxItems": 100,
            "description": "订单按套餐动态字段保存的服务需求值。"
          },
          "remark": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "调用方为本次业务操作填写的补充备注。"
          },
          "agreementVersion": {
            "type": "string",
            "maxLength": 80,
            "description": "用户确认时实际展示并接受的用户协议版本号，用于后续审计还原当时协议文本。"
          },
          "expectedPackageConfigVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端下单时读取到的套餐配置版本；不一致时需刷新后重试。"
          },
          "expectedGameAttributeConfigVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "预期游戏attribute配置版本字段。"
          },
          "attributeSelections": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeSelectionInput"
            },
            "description": "attributeselections字段。"
          }
        },
        "additionalProperties": false,
        "required": [
          "packageId",
          "serviceValues",
          "agreementVersion",
          "expectedPackageConfigVersion"
        ],
        "description": "createstandard订单数据结构。"
      },
      "OwnerCreateCustomOrderRequest": {
        "type": "object",
        "properties": {
          "gameId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联游戏的 Strapi 文档标识。"
          },
          "serviceTypeId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联服务类型的 Strapi 文档标识。"
          },
          "expectedGameAttributeConfigVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "预期游戏attribute配置版本字段。"
          },
          "attributeSelections": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeSelectionInput"
            },
            "description": "attributeselections字段。"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "title 字段属于“订单主表”内容类型。字段含义：标准订单使用套餐名；自定义订单使用需求标题。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-160 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 160 个字符。"
          },
          "targetResult": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "targetResult 字段属于“订单主表”内容类型。字段含义：老板期望目标。数据类型：长文本。业务填写与默认规则：CUSTOM 必填。业务约束与索引要求：最多 2000 字符。当前 schema.json 已声明：最多 2000 个字符。"
          },
          "description": {
            "type": "string",
            "minLength": 10,
            "maxLength": 10000,
            "description": "该资源或记录的业务说明。"
          },
          "ownerExpectedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "ownerExpectedAt 字段属于“订单主表”内容类型。字段含义：老板期望完成时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：UTC。"
          },
          "designatedServiceProviderId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "老板指定打手的 Strapi 文档标识。"
          },
          "attachmentFileIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "maxItems": 9,
            "description": "需要绑定到当前业务记录的附件文件标识列表。"
          }
        },
        "additionalProperties": false,
        "required": [
          "gameId",
          "serviceTypeId",
          "expectedGameAttributeConfigVersion",
          "attributeSelections",
          "title",
          "targetResult",
          "description"
        ],
        "description": "createcustom订单数据结构。"
      },
      "OwnerServiceProviderBookingEligibilityRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "gameId",
          "serviceTypeId",
          "expectedGameAttributeConfigVersion",
          "attributeSelections"
        ],
        "properties": {
          "gameId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联游戏的 Strapi 文档标识。"
          },
          "serviceTypeId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联服务类型的 Strapi 文档标识。"
          },
          "expectedGameAttributeConfigVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "预期游戏attribute配置版本字段。"
          },
          "attributeSelections": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeSelectionInput"
            },
            "description": "attributeselections字段。"
          }
        },
        "description": "服务提供者bookingeligibility数据结构。"
      },
      "OwnerServiceProviderBookingEligibilityResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerServiceProviderBookingEligibility",
            "description": "本次响应返回的业务数据。"
          }
        },
        "description": "服务提供者bookingeligibility数据结构。"
      },
      "OwnerDateTime": {
        "type": "string",
        "format": "date-time"
      },
      "OwnerPagedOrderSummaryResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerOrderSummary"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta"
        ],
        "description": "paged订单数据结构。"
      },
      "OwnerCancelOrderRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000,
            "description": "执行本次业务操作的原因；用于审计和问题追踪。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "reason",
          "expectedVersion"
        ],
        "description": "cancel订单数据结构。"
      },
      "OwnerOrderBusinessNoteResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerOrderBusinessNote",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "订单业务备注数据结构。"
      },
      "OwnerOrderSupplementRequest": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "minLength": 1,
            "maxLength": 5000,
            "description": "该记录的正文内容。"
          },
          "attachmentFileIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "maxItems": 9,
            "description": "需要绑定到当前业务记录的附件文件标识列表。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "content",
          "expectedVersion"
        ],
        "description": "订单supplement数据结构。"
      },
      "OwnerQuoteListResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerQuote"
            },
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "报价数据结构。"
      },
      "OwnerVersionedCommandRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "expectedVersion"
        ],
        "description": "versionedcommand数据结构。"
      },
      "OwnerQuoteAdjustmentRequest": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "minLength": 1,
            "maxLength": 5000,
            "description": "该记录的正文内容。"
          },
          "attachmentFileIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "maxItems": 9,
            "description": "需要绑定到当前业务记录的附件文件标识列表。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "content",
          "expectedVersion"
        ],
        "description": "报价adjustment数据结构。"
      },
      "OwnerPagedProgressResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerProgressRecord"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta"
        ],
        "description": "paged进度数据结构。"
      },
      "OwnerServiceProviderChangeRequestResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerServiceProviderChangeRequest",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "服务提供者change数据结构。"
      },
      "OwnerServiceProviderChangeResponseRequest": {
        "type": "object",
        "properties": {
          "decision": {
            "type": "string",
            "enum": [
              "APPROVE",
              "REJECT"
            ],
            "description": "本次审核、验收或换人请求的处理决定。",
            "x-enum-descriptions": [
              "同意当前申请或通过本次审核。",
              "拒绝当前申请或退回本次审核。"
            ]
          },
          "responseNote": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1000
              },
              {
                "type": "null"
              }
            ],
            "description": "responseNote 字段属于“指定打手变更同意单”内容类型。字段含义：老板补充说明。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 1000 字符。当前 schema.json 已声明：最多 1000 个字符。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "decision",
          "expectedVersion"
        ],
        "description": "服务提供者change数据结构。"
      },
      "OwnerAcceptanceRequest": {
        "type": "object",
        "properties": {
          "confirm": {
            "type": "boolean",
            "description": "true 表示通过验收；false 表示拒绝验收并退回进行中。"
          },
          "rejectionReason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 5,
                "maxLength": 3000
              },
              {
                "type": "null"
              }
            ],
            "description": "confirm=false 时必填，填写拒绝验收原因。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          },
          "issueType": {
            "$ref": "#/components/schemas/OwnerAfterSaleIssueType",
            "description": "issueType 字段属于“售后申诉单”内容类型。字段含义：问题类型。数据类型：枚举值。允许保存的枚举值为：DELIVERY_MISMATCH、ACCOUNT_SECURITY、PROGRESS_DISPUTE、OVERDUE、SERVICE_ATTITUDE、OTHER。业务填写与默认规则：必填。业务约束与索引要求：DELIVERY_MISMATCH/ACCOUNT_SECURITY/PROGRESS_DISPUTE/OVERDUE/SERVICE_ATTITUDE/OTHER；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "expectedResolution": {
            "$ref": "#/components/schemas/OwnerAfterSaleExpectedResolution",
            "description": "expectedResolution 字段属于“售后申诉单”内容类型。字段含义：老板期望结果。数据类型：枚举值。允许保存的枚举值为：CONTINUE_SERVICE、PARTIAL_REFUND、FULL_REFUND、OTHER。业务填写与默认规则：必填。业务约束与索引要求：CONTINUE_SERVICE/PARTIAL_REFUND/FULL_REFUND/OTHER。当前 schema.json 已声明：模型层声明为必填。"
          },
          "evidenceFileIds": {
            "type": "array",
            "maxItems": 9,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "作为完工或售后证据提交的业务文件标识列表。"
          }
        },
        "allOf": [
          {
            "if": {
              "properties": {
                "confirm": {
                  "const": false,
                  "description": "当 confirm 为 false 时应用拒绝验收参数约束。"
                }
              },
              "required": [
                "confirm"
              ]
            },
            "then": {
              "properties": {
                "rejectionReason": {
                  "type": "string",
                  "minLength": 5,
                  "maxLength": 3000,
                  "description": "拒绝验收时必须填写的原因。"
                }
              },
              "required": [
                "rejectionReason"
              ]
            }
          }
        ],
        "additionalProperties": false,
        "required": [
          "confirm",
          "expectedVersion"
        ],
        "description": "归属主体acceptance数据结构。"
      },
      "OwnerReviewResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerReview",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "审核数据结构。"
      },
      "OwnerCreateReviewRequest": {
        "type": "object",
        "properties": {
          "rating": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "rating 字段属于“订单评价”内容类型。字段含义：评分。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：1-5；索引。当前 schema.json 已声明：模型层声明为必填；最小值为 1；最大值为 5。"
          },
          "content": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "content 字段属于“订单评价”内容类型。字段含义：文字评价。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 2000 字符。当前 schema.json 已声明：最多 2000 个字符。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          },
          "isAnonymous": {
            "type": "boolean",
            "default": false,
            "description": "老板是否选择匿名评价；公共端和打手端隐藏老板身份，后台仍可审计查看。"
          }
        },
        "additionalProperties": false,
        "required": [
          "rating",
          "expectedVersion"
        ],
        "description": "create审核数据结构。"
      },
      "OwnerReviewUpdateRequest": {
        "type": "object",
        "properties": {
          "rating": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "rating 字段属于“订单评价”内容类型。字段含义：评分。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：1-5；索引。当前 schema.json 已声明：模型层声明为必填；最小值为 1；最大值为 5。"
          },
          "content": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "content 字段属于“订单评价”内容类型。字段含义：文字评价。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 2000 字符。当前 schema.json 已声明：最多 2000 个字符。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          },
          "isAnonymous": {
            "type": "boolean",
            "description": "老板是否选择匿名评价；公共端和打手端隐藏老板身份，后台仍可审计查看。"
          }
        },
        "additionalProperties": false,
        "required": [
          "expectedVersion"
        ],
        "anyOf": [
          {
            "required": [
              "rating"
            ]
          },
          {
            "required": [
              "content"
            ]
          },
          {
            "required": [
              "isAnonymous"
            ]
          }
        ],
        "description": "审核数据结构。"
      },
      "OwnerAfterSaleDetailResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerAfterSaleDetail",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "售后sale数据结构。"
      },
      "OwnerCreateAfterSaleRequest": {
        "type": "object",
        "properties": {
          "issueType": {
            "$ref": "#/components/schemas/OwnerAfterSaleIssueType",
            "description": "issueType 字段属于“售后申诉单”内容类型。字段含义：问题类型。数据类型：枚举值。允许保存的枚举值为：DELIVERY_MISMATCH、ACCOUNT_SECURITY、PROGRESS_DISPUTE、OVERDUE、SERVICE_ATTITUDE、OTHER。业务填写与默认规则：必填。业务约束与索引要求：DELIVERY_MISMATCH/ACCOUNT_SECURITY/PROGRESS_DISPUTE/OVERDUE/SERVICE_ATTITUDE/OTHER；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "description": {
            "type": "string",
            "minLength": 10,
            "maxLength": 10000,
            "description": "该资源或记录的业务说明。"
          },
          "expectedResolution": {
            "$ref": "#/components/schemas/OwnerAfterSaleExpectedResolution",
            "description": "expectedResolution 字段属于“售后申诉单”内容类型。字段含义：老板期望结果。数据类型：枚举值。允许保存的枚举值为：CONTINUE_SERVICE、PARTIAL_REFUND、FULL_REFUND、OTHER。业务填写与默认规则：必填。业务约束与索引要求：CONTINUE_SERVICE/PARTIAL_REFUND/FULL_REFUND/OTHER。当前 schema.json 已声明：模型层声明为必填。"
          },
          "evidenceFileIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "maxItems": 9,
            "description": "作为完工或售后证据提交的业务文件标识列表。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "issueType",
          "description",
          "expectedResolution",
          "expectedVersion"
        ],
        "description": "create售后sale数据结构。"
      },
      "OwnerAfterSaleRecordResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerAfterSaleRecord",
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "售后sale记录数据结构。"
      },
      "OwnerAfterSaleRecordCreateRequest": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "minLength": 1,
            "maxLength": 10000,
            "description": "content 字段属于“售后处理时间线”内容类型。字段含义：记录内容。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：1-10000 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 10000 个字符。"
          },
          "attachmentFileIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "maxItems": 9,
            "description": "需要绑定到当前业务记录的附件文件标识列表。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "content",
          "expectedVersion"
        ],
        "description": "售后sale记录数据结构。"
      },
      "OwnerSensitiveValueResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "object",
            "properties": {
              "fieldKey": {
                "type": "string",
                "description": "套餐动态字段的稳定业务键。"
              },
              "label": {
                "type": "string",
                "description": "面向用户展示的字段或选项名称。"
              },
              "value": {
                "type": "string",
                "description": "value 字段属于“动态字典项”内容类型。字段含义：业务数据实际保存和接口传输的稳定枚举值。数据类型：字符串。业务填写与默认规则：必填，创建后不可修改。业务约束与索引要求：仅允许 1-80 位大写字母、数字和下划线。"
              },
              "expiresInSeconds": {
                "type": "integer",
                "minimum": 1,
                "description": "该结果或临时凭据的有效时长，单位为秒。"
              }
            },
            "additionalProperties": false,
            "required": [
              "fieldKey",
              "label",
              "value",
              "expiresInSeconds"
            ],
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "是否敏感值数据结构。"
      },
      "OwnerVersionedRevealRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "执行本次业务操作的原因；用于审计和问题追踪。"
          },
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          }
        },
        "additionalProperties": false,
        "required": [
          "reason",
          "expectedVersion"
        ],
        "description": "versionedreveal数据结构。"
      },
      "OwnerReferralResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerReferral"
              },
              {
                "type": "null"
              }
            ],
            "description": "本次响应返回的业务数据。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "description": "归属主体推荐数据结构。"
      },
      "OwnerPagedNotificationResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerNotification"
            },
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "$ref": "#/components/schemas/OwnerNotificationPaginationMeta",
            "description": "分页、版本或其他响应附加信息。"
          },
          "error": {
            "type": "null",
            "description": "接口失败时返回的结构化错误对象。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta",
          "error"
        ],
        "description": "paged通知数据结构。"
      },
      "OwnerNotificationResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerNotification",
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "description": "分页、版本或其他响应附加信息。"
          },
          "error": {
            "type": "null",
            "description": "接口失败时返回的结构化错误对象。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta",
          "error"
        ],
        "description": "通知数据结构。"
      },
      "OwnerReadAllNotificationsResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "object",
            "properties": {
              "updatedCount": {
                "type": "integer",
                "minimum": 0,
                "description": "本次批量操作实际更新的通知数量。"
              }
            },
            "additionalProperties": false,
            "required": [
              "updatedCount"
            ],
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "description": "分页、版本或其他响应附加信息。"
          },
          "error": {
            "type": "null",
            "description": "接口失败时返回的结构化错误对象。"
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta",
          "error"
        ],
        "description": "readallnotifications数据结构。"
      },
      "OwnerReadAllNotificationsRequest": {
        "type": "object",
        "properties": {
          "before": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "仅处理该时间或游标之前的通知记录。"
          }
        },
        "additionalProperties": false,
        "description": "readallnotifications数据结构。"
      },
      "OwnerPushInstallationRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "platform",
          "appEnvironment",
          "token"
        ],
        "properties": {
          "platform": {
            "type": "string",
            "enum": [
              "IOS",
              "ANDROID"
            ],
            "description": "平台字段。",
            "x-enum-descriptions": [
              "取值 IOS。",
              "取值 ANDROID。"
            ]
          },
          "appEnvironment": {
            "type": "string",
            "enum": [
              "product",
              "dev"
            ],
            "description": "TPNS iOS 证书环境；Android 保持随构建写入的对应环境值。",
            "x-enum-descriptions": [
              "取值 product。",
              "取值 dev。"
            ]
          },
          "token": {
            "type": "string",
            "minLength": 1,
            "maxLength": 36,
            "writeOnly": true,
            "description": "TPNS SDK 返回的设备 Token；服务端仅加密保存。"
          }
        },
        "description": "pushinstallation数据结构。"
      },
      "OwnerPushInstallationResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "meta",
          "error"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerPushInstallationStatus",
            "description": "本次响应返回的业务数据。"
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "description": "分页、版本或其他响应附加信息。"
          },
          "error": {
            "type": "null",
            "description": "接口失败时返回的结构化错误对象。"
          }
        },
        "description": "pushinstallation数据结构。"
      },
      "OwnerDictionaryCollectionResponse": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "type": "object",
            "properties": {
              "revision": {
                "type": "string",
                "pattern": "^[0-9a-f]{64}$",
                "description": "本次公开字典集合的整体修订版本。"
              },
              "dictionaries": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OwnerDictionary"
                },
                "description": "当前查询返回的公开字典列表。"
              }
            },
            "required": [
              "revision",
              "dictionaries"
            ],
            "additionalProperties": false,
            "description": "本次响应返回的业务数据。"
          }
        },
        "required": [
          "requestId",
          "data"
        ],
        "additionalProperties": false,
        "description": "字典数据结构。"
      },
      "OwnerBusinessMediaUploadRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "purpose",
          "file"
        ],
        "properties": {
          "purpose": {
            "type": "string",
            "enum": [
              "ORDER_REQUIREMENT",
              "ORDER_PROGRESS",
              "COMPLETION_EVIDENCE",
              "AFTER_SALE_EVIDENCE",
              "PROFILE_AVATAR",
              "SERVICE_PROVIDER_SHOWCASE",
              "SETTLEMENT_VOUCHER",
              "CHAT_ATTACHMENT"
            ],
            "description": "上传图片将用于的业务场景。",
            "x-enum-descriptions": [
              "取值 ORDER_REQUIREMENT。",
              "取值 ORDER_PROGRESS。",
              "取值 COMPLETION_EVIDENCE。",
              "取值 AFTER_SALE_EVIDENCE。",
              "取值 PROFILE_AVATAR。",
              "取值 SERVICE_PROVIDER_SHOWCASE。",
              "取值 SETTLEMENT_VOUCHER。",
              "取值 CHAT_ATTACHMENT。"
            ]
          },
          "orderId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          "file": {
            "type": "string",
            "contentEncoding": "binary",
            "contentMediaType": "application/octet-stream",
            "description": "需要上传的 JPEG、PNG 或 WebP 图片二进制文件。"
          }
        },
        "description": "业务mediaupload数据结构。"
      },
      "OwnerReassignmentRequestCreateInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "expectedVersion",
          "reason"
        ],
        "properties": {
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "老板发起改派时必须填写的业务原因，客服审核和后续派单操作均可查看该原始说明。"
          },
          "preferredServiceProviderId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "preferred服务提供者标识字段。"
          }
        },
        "description": "归属主体reassignment数据结构。"
      },
      "OwnerReassignmentResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "data"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "用于关联日志与排查问题的请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerReassignmentRequest",
            "description": "本次响应返回的业务数据。"
          }
        },
        "description": "归属主体reassignment数据结构。"
      },
      "OwnerVersionedReasonRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "expectedVersion",
          "reason"
        ],
        "properties": {
          "expectedVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "客户端最后读取到的业务版本号；不一致时服务端拒绝修改。"
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "执行本次业务操作的原因；用于审计和问题追踪。"
          }
        },
        "description": "versioned原因数据结构。"
      },
      "OwnerPaymentCenterMoneyMinor": {
        "type": "string",
        "pattern": "^[1-9][0-9]*$",
        "examples": [
          "10000"
        ]
      },
      "OwnerCommunicationCenterSupportConversationInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "subject"
        ],
        "properties": {
          "subject": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "客服会话主题。"
          }
        },
        "description": "supportconversation数据结构。"
      },
      "OwnerCommunicationCenterConversationType": {
        "type": "string",
        "description": "ORDER 为订单参与者会话，SUPPORT 为用户与客服会话。",
        "enum": [
          "ORDER",
          "SUPPORT"
        ],
        "x-enum-descriptions": [
          "订单老板与当前打手的业务会话。",
          "用户与客服管理员的支持会话。"
        ]
      },
      "OwnerCommunicationCenterSendMessageInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "clientMessageId"
        ],
        "properties": {
          "clientMessageId": {
            "type": "string",
            "minLength": 8,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9._:-]+$",
            "description": "客户端生成的消息幂等标识，在同一会话和发送者范围内唯一。"
          },
          "text": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 2000,
            "description": "文本可选，但文字和附件不能同时为空。"
          },
          "attachmentFileIds": {
            "type": "array",
            "maxItems": 9,
            "uniqueItems": true,
            "description": "已通过通用媒体入口上传且 purpose=CHAT_ATTACHMENT 的图片或视频；单条最多一个视频。",
            "items": {
              "type": "string"
            }
          }
        },
        "anyOf": [
          {
            "required": [
              "text"
            ]
          },
          {
            "required": [
              "attachmentFileIds"
            ]
          }
        ],
        "description": "send消息数据结构。"
      },
      "OwnerCommunicationCenterReadInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "readSequence"
        ],
        "properties": {
          "readSequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "当前身份已读到的最大消息序号。"
          }
        },
        "description": "read数据结构。"
      },
      "OwnerAPIEncryptionBootstrapResponse": {
        "type": "object",
        "required": [
          "requestId",
          "data",
          "error"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "请求标识。"
          },
          "data": {
            "$ref": "#/components/schemas/OwnerAPIEncryptionBootstrap",
            "description": "本次响应返回的业务数据。"
          },
          "error": {
            "type": "null",
            "description": "成功响应的错误字段固定为空。"
          }
        },
        "additionalProperties": false,
        "description": "apiencryptionbootstrap数据结构。"
      },
      "OwnerGoLiveStatus": {
        "type": "object",
        "required": [
          "status",
          "instanceId"
        ],
        "properties": {
          "status": {
            "type": "string",
            "const": "live",
            "description": "Go Gateway 进程存活状态。"
          },
          "instanceId": {
            "type": "string",
            "description": "当前 Go Gateway 实例标识。"
          }
        },
        "additionalProperties": false,
        "description": "golive状态数据结构。"
      },
      "OwnerGoReadinessStatus": {
        "type": "object",
        "required": [
          "status",
          "checks"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ready",
              "not-ready"
            ],
            "description": "Go Gateway 总体就绪状态。",
            "x-enum-descriptions": [
              "Go Gateway 及必要依赖均已就绪。",
              "至少一个必要依赖尚未就绪。"
            ]
          },
          "checks": {
            "type": "object",
            "description": "Strapi、Redis、API 加密和即时通讯实时服务的依赖检查结果。",
            "required": [
              "strapi",
              "redis",
              "apiEncryption",
              "communicationRealtime"
            ],
            "properties": {
              "strapi": {
                "type": "string",
                "description": "Strapi 依赖状态。"
              },
              "redis": {
                "type": "string",
                "description": "Redis 依赖状态。"
              },
              "apiEncryption": {
                "type": "string",
                "description": "API 加密私钥与策略状态。"
              },
              "communicationRealtime": {
                "type": "string",
                "description": "WebSocket 事件泵、模块模式和 Redis Broker 状态。"
              }
            },
            "additionalProperties": false
          },
          "realtime": {
            "type": "object",
            "description": "当前 Gateway 实例的实时连接、投递、限流与在线权限复核观测快照。",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "description": "goreadiness状态数据结构。"
      },
      "OwnerPlatform": {
        "x-dictionary-code": "AUTH_PLATFORM",
        "x-dictionary-source": "DATABASE",
        "type": "string",
        "description": "platform 字段属于“前台刷新会话”内容类型。\n\n该值来自数据库动态字典 AUTH_PLATFORM，不在文档中固化取值；请通过当前调用面的公开字典接口查询可用项。"
      },
      "OwnerAuthPayload": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "description": "用于访问受保护接口的短期访问令牌。"
          },
          "accessTokenExpiresIn": {
            "type": "integer",
            "description": "访问令牌剩余有效时长，单位为秒。"
          },
          "refreshToken": {
            "type": "string",
            "description": "用于轮换访问令牌的刷新令牌。"
          },
          "refreshTokenExpiresIn": {
            "type": "integer",
            "description": "刷新令牌剩余有效时长，单位为秒。"
          },
          "sessionId": {
            "$ref": "#/components/schemas/OwnerUuid",
            "description": "sessionId 字段属于“前台刷新会话”内容类型。字段含义：会话公开标识。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：UUID；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "account": {
            "$ref": "#/components/schemas/OwnerAuthAccount",
            "description": "认证结果中的账号基础信息。"
          },
          "profile": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/OwnerProfile"
              }
            ],
            "description": "与账号类型对应的老板资料或打手资料。"
          }
        },
        "additionalProperties": false,
        "required": [
          "accessToken",
          "accessTokenExpiresIn",
          "refreshToken",
          "refreshTokenExpiresIn",
          "sessionId",
          "account",
          "profile"
        ],
        "description": "认证数据结构。"
      },
      "OwnerErrorObject": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "业务编码；在对应资源类型内保持唯一。"
          },
          "message": {
            "type": "string",
            "description": "面向调用方展示的错误或结果说明。"
          },
          "details": {
            "$ref": "#/components/schemas/OwnerErrorDetail",
            "description": "用于定位字段错误、资源冲突或当前版本的结构化补充信息。"
          }
        },
        "additionalProperties": false,
        "required": [
          "code",
          "message"
        ],
        "description": "错误object数据结构。"
      },
      "OwnerUuid": {
        "type": "string",
        "format": "uuid"
      },
      "OwnerAuthAccount": {
        "type": "object",
        "properties": {
          "accountType": {
            "$ref": "#/components/schemas/OwnerAccountType",
            "description": "accountType 字段属于“Users & Permissions 用户扩展”内容类型。字段含义：快速区分老板与打手。数据类型：枚举值。允许保存的枚举值为：OWNER、SERVICE_PROVIDER。业务填写与默认规则：必填。业务约束与索引要求：OWNER/SERVICE_PROVIDER；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "blocked": {
            "type": "boolean",
            "description": "blocked 字段属于“Users & Permissions 用户扩展”内容类型。字段含义：账号禁用的唯一权威字段；true 时所有旧会话一并失效。数据类型：布尔值。业务填写与默认规则：默认 false。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 false；禁止通过内容类型构建器修改字段定义。"
          }
        },
        "additionalProperties": false,
        "required": [
          "accountType",
          "blocked"
        ],
        "description": "认证账号数据结构。"
      },
      "OwnerProfile": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "userId": {
            "type": "string",
            "pattern": "^V[0-9]{5,}$",
            "description": "V 开头且至少 5 位数字的老板业务用户 ID。"
          },
          "ownerNo": {
            "type": "string",
            "description": "面向后台和日志的老板业务编号；格式为 V 加至少 5 位十进制顺序号，生成时跳过豹子号和完整升降连号。"
          },
          "nickname": {
            "type": "string",
            "description": "nickname 字段属于“老板资料”内容类型。字段含义：老板展示昵称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-40 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 40 个字符。"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "头像文件的受控访问地址；未设置头像时为空。"
          },
          "registrationChannel": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "ACCOUNT_PASSWORD",
              "PHONE",
              null
            ],
            "x-enum-descriptions": [
              "账号密码注册",
              "手机号注册",
              "已停用历史身份"
            ],
            "description": "老板首次完成注册所使用的明确方式，供认证策略和审计追溯使用。"
          },
          "phoneMasked": {
            "type": [
              "string",
              "null"
            ],
            "description": "phone脱敏值字段。"
          },
          "registeredAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "registeredAt 字段属于“老板资料”内容类型。字段含义：首次验证码登录并创建账号的时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：必填。业务约束与索引要求：UTC；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "profileVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "profileVersion 字段属于“老板资料”内容类型。字段含义：资料乐观锁版本。数据类型：整数。业务填写与默认规则：默认 1。业务约束与索引要求：>=1。当前 schema.json 已声明：默认值为 1；最小值为 1。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "userId",
          "ownerNo",
          "nickname",
          "registrationChannel",
          "phoneMasked",
          "registeredAt",
          "profileVersion"
        ],
        "description": "归属主体资料数据结构。"
      },
      "OwnerClientConfiguration": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schemaVersion",
          "revision",
          "surface",
          "application",
          "capabilities"
        ],
        "description": "公开客户端启动配置，仅包含允许免登录读取的白名单字段。",
        "properties": {
          "schemaVersion": {
            "type": "integer",
            "const": 3,
            "description": "响应结构版本；发生不兼容调整时递增。"
          },
          "revision": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "当前投影内容的修订摘要，可用于本地缓存比对。"
          },
          "surface": {
            "type": "string",
            "description": "当前配置适用的客户端调用面。",
            "const": "OWNER"
          },
          "application": {
            "$ref": "#/components/schemas/OwnerClientApplicationConfiguration",
            "description": "当前客户端的公开品牌展示配置，不包含任何后台私有配置。"
          },
          "capabilities": {
            "$ref": "#/components/schemas/OwnerClientCapabilities",
            "description": "当前客户端可据此展示或隐藏入口的公开功能能力集合。"
          }
        }
      },
      "OwnerGame": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "code": {
            "type": "string",
            "description": "游戏范围内稳定且唯一的属性编码，供接口、快照和业务规则引用，不随展示名称变化。"
          },
          "name": {
            "type": "string",
            "description": "面向老板端、打手端和后台展示的属性名称，允许后续修改且不影响历史订单快照。"
          },
          "iconUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "图标文件的公开或受控访问地址。"
          },
          "intro": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "intro 字段属于“游戏”内容类型。字段含义：游戏简介。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 1000 字符。当前 schema.json 已声明：最多 1000 个字符。"
          },
          "featured": {
            "type": "boolean",
            "description": "featured 字段属于“游戏”内容类型。字段含义：是否在首页突出展示。数据类型：布尔值。业务填写与默认规则：默认 false。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 false。"
          },
          "sortOrder": {
            "type": "integer",
            "description": "打手公开资料中同类领域能力的稳定展示排序值，数值越小越靠前，标识符用于补充排序。"
          },
          "attributeConfigVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "游戏额外属性树的乐观锁版本；每次批量新增、移动、编辑、停用属性或选项时仅递增一次。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "code",
          "name",
          "featured",
          "sortOrder",
          "attributeConfigVersion"
        ],
        "description": "游戏数据结构。"
      },
      "OwnerPaginationMeta": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "分页页码，从 1 开始。"
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "每页返回的记录数。"
          },
          "pageCount": {
            "type": "integer",
            "minimum": 0,
            "description": "按当前每页条数计算出的总页数。"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "符合查询条件的记录总数。"
          }
        },
        "additionalProperties": false,
        "required": [
          "page",
          "pageSize",
          "pageCount",
          "total"
        ],
        "description": "pagination附加信息数据结构。"
      },
      "OwnerServiceType": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "gameId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联游戏的 Strapi 文档标识。"
          },
          "gameIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "游戏标识列表字段。"
          },
          "attributeIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "attribute标识列表字段。"
          },
          "games": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogGameRelation"
            },
            "description": "服务类型直接适用的游戏集合，可为空且支持多选；用于商品列表展示、游戏启用校验和打手能力匹配。"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogAttributeRelation"
            },
            "description": "服务类型适用的游戏属性节点集合，可绑定任意层级并支持多选；其所属游戏同样参与启用校验和能力匹配。"
          },
          "code": {
            "type": "string",
            "description": "服务类型的全局稳定编码；服务类型独立于游戏，编码在全部服务类型中全局唯一并用于接口筛选。"
          },
          "name": {
            "type": "string",
            "description": "name 字段属于“服务类型”内容类型。字段含义：服务名称，如跑刀、段位代练、陪玩。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 80 个字符。"
          },
          "intro": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "intro 字段属于“服务类型”内容类型。字段含义：服务简介。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 1000 字符。当前 schema.json 已声明：最多 1000 个字符。"
          },
          "sortOrder": {
            "type": "integer",
            "description": "sortOrder 字段属于“服务类型”内容类型。字段含义：后台和客户端列表的稳定排序值。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 0。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "gameId",
          "gameIds",
          "attributeIds",
          "games",
          "attributes",
          "code",
          "name",
          "intro",
          "sortOrder"
        ],
        "description": "服务类型数据结构。"
      },
      "OwnerGameAttributeTree": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "gameId",
          "configVersion",
          "nodes",
          "optionLinks"
        ],
        "properties": {
          "gameId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联游戏的 Strapi 文档标识。"
          },
          "configVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "configVersion 字段属于“标准套餐”内容类型。字段含义：配置变化版本，用于客户端缓存和订单快照。数据类型：整数。业务填写与默认规则：默认 1。业务约束与索引要求：>=1。当前 schema.json 已声明：默认值为 1；最小值为 1。"
          },
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeNode"
            },
            "description": "nodes字段。"
          },
          "optionLinks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeOptionLink"
            },
            "description": "optionlinks字段。"
          }
        },
        "description": "游戏attributetree数据结构。"
      },
      "OwnerPackageSummary": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "packageCode": {
            "type": "string",
            "description": "packageCode 字段属于“标准套餐”内容类型。字段含义：稳定套餐编码。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：大写业务编码；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "serviceTypeId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联服务类型的 Strapi 文档标识。"
          },
          "serviceTypeIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "服务类型标识列表字段。"
          },
          "gameIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "游戏标识列表字段。"
          },
          "attributeIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "attribute标识列表字段。"
          },
          "serviceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogServiceTypeRelation"
            },
            "description": "套餐适用的服务类型，可为空且支持多选；为空表示不限制服务类型。"
          },
          "games": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogGameRelation"
            },
            "description": "套餐直接适用的游戏集合，可为空且支持多选；为空表示不限制游戏，并允许套餐在没有任何商品关联时独立销售。"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogAttributeRelation"
            },
            "description": "套餐适用的游戏属性节点，可选择任意层级并支持多选；为空表示不限制属性。"
          },
          "name": {
            "type": "string",
            "description": "name 字段属于“标准套餐”内容类型。字段含义：套餐名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-120 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 120 个字符。"
          },
          "coverUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "封面图片的公开或受控访问地址。"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "summary 字段属于“标准套餐”内容类型。字段含义：列表摘要。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 500 字符。当前 schema.json 已声明：最多 500 个字符。"
          },
          "priceMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "老板购买价格，人民币分；禁止 0 元，当前默认最低售价由 CATALOG 配置域设为 100 分。"
          },
          "estimatedDurationMinutes": {
            "type": "integer",
            "minimum": 1,
            "description": "estimatedDurationMinutes 字段属于“标准套餐”内容类型。字段含义：预计交付周期，统一存分钟。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：>0。当前 schema.json 已声明：模型层声明为必填；最小值为 1。"
          },
          "allowDesignatedServiceProvider": {
            "type": "boolean",
            "description": "allowDesignatedServiceProvider 字段属于“标准套餐”内容类型。字段含义：是否允许老板指定打手。数据类型：布尔值。业务填写与默认规则：默认 true。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 true。"
          },
          "completedOrderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "completedOrderCount 字段属于“标准套餐”内容类型。字段含义：已完成订单数，用于展示。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "packageCode",
          "serviceTypeId",
          "serviceTypeIds",
          "gameIds",
          "attributeIds",
          "serviceTypes",
          "games",
          "attributes",
          "name",
          "coverUrl",
          "summary",
          "priceMinor",
          "estimatedDurationMinutes",
          "allowDesignatedServiceProvider",
          "completedOrderCount"
        ],
        "description": "套餐数据结构。"
      },
      "OwnerPackageDetail": {
        "type": "object",
        "description": "PackageDetail 数据结构。",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "packageCode": {
            "type": "string",
            "description": "packageCode 字段属于“标准套餐”内容类型。字段含义：稳定套餐编码。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：大写业务编码；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "serviceTypeId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联服务类型的 Strapi 文档标识。"
          },
          "serviceTypeIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "服务类型标识列表字段。"
          },
          "gameIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "游戏标识列表字段。"
          },
          "attributeIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "attribute标识列表字段。"
          },
          "serviceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogServiceTypeRelation"
            },
            "description": "套餐适用的服务类型，可为空且支持多选；为空表示不限制服务类型。"
          },
          "games": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogGameRelation"
            },
            "description": "套餐直接适用的游戏集合，可为空且支持多选；为空表示不限制游戏，并允许套餐在没有任何商品关联时独立销售。"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogAttributeRelation"
            },
            "description": "套餐适用的游戏属性节点，可选择任意层级并支持多选；为空表示不限制属性。"
          },
          "name": {
            "type": "string",
            "description": "name 字段属于“标准套餐”内容类型。字段含义：套餐名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-120 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 120 个字符。"
          },
          "coverUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "封面图片的公开或受控访问地址。"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "summary 字段属于“标准套餐”内容类型。字段含义：列表摘要。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 500 字符。当前 schema.json 已声明：最多 500 个字符。"
          },
          "priceMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "老板购买价格，人民币分；禁止 0 元，当前默认最低售价由 CATALOG 配置域设为 100 分。"
          },
          "estimatedDurationMinutes": {
            "type": "integer",
            "minimum": 1,
            "description": "estimatedDurationMinutes 字段属于“标准套餐”内容类型。字段含义：预计交付周期，统一存分钟。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：>0。当前 schema.json 已声明：模型层声明为必填；最小值为 1。"
          },
          "allowDesignatedServiceProvider": {
            "type": "boolean",
            "description": "allowDesignatedServiceProvider 字段属于“标准套餐”内容类型。字段含义：是否允许老板指定打手。数据类型：布尔值。业务填写与默认规则：默认 true。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 true。"
          },
          "completedOrderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "completedOrderCount 字段属于“标准套餐”内容类型。字段含义：已完成订单数，用于展示。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          },
          "serviceContent": {
            "type": "string",
            "description": "serviceContent 字段属于“标准套餐”内容类型。字段含义：服务内容。数据类型：富文本。业务填写与默认规则：必填。业务约束与索引要求：最多 10000 字符。当前 schema.json 已声明：模型层声明为必填；最多 10000 个字符。"
          },
          "deliveryStandard": {
            "type": "string",
            "description": "deliveryStandard 字段属于“标准套餐”内容类型。字段含义：交付标准。数据类型：富文本。业务填写与默认规则：必填。业务约束与索引要求：最多 10000 字符。当前 schema.json 已声明：模型层声明为必填；最多 10000 个字符。"
          },
          "restrictionNote": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "restrictionNote 字段属于“标准套餐”内容类型。字段含义：限制说明。数据类型：富文本。业务填写与默认规则：可空。业务约束与索引要求：最多 5000 字符。当前 schema.json 已声明：最多 5000 个字符。"
          },
          "ownerPreparation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "ownerPreparation 字段属于“标准套餐”内容类型。字段含义：老板需准备资料说明。数据类型：富文本。业务填写与默认规则：可空。业务约束与索引要求：最多 5000 字符。当前 schema.json 已声明：最多 5000 个字符。"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerPackageFieldDefinition"
            },
            "description": "套餐配置的动态下单字段列表。"
          },
          "availableServiceProviderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "当前满足该套餐能力与状态条件的可接单打手数量。"
          },
          "configVersion": {
            "type": "integer",
            "minimum": 1,
            "description": "configVersion 字段属于“标准套餐”内容类型。字段含义：配置变化版本，用于客户端缓存和订单快照。数据类型：整数。业务填写与默认规则：默认 1。业务约束与索引要求：>=1。当前 schema.json 已声明：默认值为 1；最小值为 1。"
          }
        },
        "required": [
          "documentId",
          "packageCode",
          "serviceTypeId",
          "serviceTypeIds",
          "gameIds",
          "attributeIds",
          "serviceTypes",
          "games",
          "attributes",
          "name",
          "coverUrl",
          "summary",
          "priceMinor",
          "estimatedDurationMinutes",
          "allowDesignatedServiceProvider",
          "completedOrderCount",
          "serviceContent",
          "deliveryStandard",
          "fields",
          "availableServiceProviderCount",
          "configVersion"
        ],
        "additionalProperties": false
      },
      "OwnerServiceProviderSummary": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "userId": {
            "type": "string",
            "pattern": "^D[0-9]{5,}$",
            "description": "D 开头且至少 5 位数字的打手业务用户 ID。"
          },
          "serviceProviderNo": {
            "type": "string",
            "description": "打手业务编号；格式为 D 加至少 5 位十进制顺序号，生成时跳过豹子号和完整升降连号，可用于管理端和老板端查询。"
          },
          "displayName": {
            "type": "string",
            "description": "displayName 字段属于“打手资料”内容类型。字段含义：老板与订单中展示的名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-40 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 40 个字符。"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "头像文件的受控访问地址；未设置头像时为空。"
          },
          "level": {
            "$ref": "#/components/schemas/OwnerServiceProviderLevel",
            "description": "打手五级成长等级：青铜、白银、黄金、铂金、钻石；由成长值规则自动升降级，后台字典用于展示。"
          },
          "growthPoints": {
            "type": "integer",
            "minimum": 0,
            "description": "当前累计成长值；由成长事件汇总维护。"
          },
          "levelProtectedUntil": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "当前等级降级保护截止时间；没有保护期时为 null。"
          },
          "featured": {
            "type": "boolean",
            "description": "featured 字段属于“打手资料”内容类型。字段含义：首页推荐标识。数据类型：布尔值。业务填写与默认规则：默认 false。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 false。"
          },
          "averageRating": {
            "type": "string",
            "pattern": "^[0-5]\\.[0-9]{2}$",
            "description": "averageRating 字段属于“打手资料”内容类型。字段含义：可见评价平均分。数据类型：小数。业务填写与默认规则：默认 0。业务约束与索引要求：0-5，保留 2 位；索引；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0；最大值为 5。"
          },
          "reviewCount": {
            "type": "integer",
            "minimum": 0,
            "description": "reviewCount 字段属于“打手资料”内容类型。字段含义：可见评价数量。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          },
          "completedOrderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "completedOrderCount 字段属于“打手资料”内容类型。字段含义：已完成订单数。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；索引；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          },
          "activeOrderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "activeOrderCount 字段属于“打手资料”内容类型。字段含义：当前待派单后且未终结的本人订单数。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；索引；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          },
          "availableForBooking": {
            "type": "boolean",
            "description": "当前是否满足指定打手下单条件；进行中或已预留时为 false。"
          },
          "strictGameAttributeMatch": {
            "type": "boolean",
            "description": "开启后，MATCH_REQUIRED 游戏属性也必须与订单选择完全匹配。"
          },
          "primaryCapabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderCapabilitySummary"
            },
            "description": "打手用于列表展示的主要游戏与服务能力。"
          },
          "startingPriceMinor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerMoneyMinor"
              },
              {
                "type": "null"
              }
            ],
            "description": "打手相关可用套餐中的最低人民币分价格。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "userId",
          "serviceProviderNo",
          "displayName",
          "avatarUrl",
          "level",
          "growthPoints",
          "levelProtectedUntil",
          "featured",
          "averageRating",
          "reviewCount",
          "completedOrderCount",
          "activeOrderCount",
          "availableForBooking",
          "strictGameAttributeMatch",
          "primaryCapabilities",
          "startingPriceMinor"
        ],
        "description": "服务提供者数据结构。"
      },
      "OwnerServiceProviderPublicDetail": {
        "type": "object",
        "description": "ServiceProviderPublicDetail 数据结构。",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "userId": {
            "type": "string",
            "pattern": "^D[0-9]{5,}$",
            "description": "D 开头且至少 5 位数字的打手业务用户 ID。"
          },
          "serviceProviderNo": {
            "type": "string",
            "description": "打手业务编号；格式为 D 加至少 5 位十进制顺序号，生成时跳过豹子号和完整升降连号，可用于管理端和老板端查询。"
          },
          "displayName": {
            "type": "string",
            "description": "displayName 字段属于“打手资料”内容类型。字段含义：老板与订单中展示的名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-40 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 40 个字符。"
          },
          "avatarUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "头像文件的受控访问地址；未设置头像时为空。"
          },
          "level": {
            "$ref": "#/components/schemas/OwnerServiceProviderLevel",
            "description": "打手五级成长等级：青铜、白银、黄金、铂金、钻石；由成长值规则自动升降级，后台字典用于展示。"
          },
          "growthPoints": {
            "type": "integer",
            "minimum": 0,
            "description": "当前累计成长值；由成长事件汇总维护。"
          },
          "levelProtectedUntil": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "当前等级降级保护截止时间；没有保护期时为 null。"
          },
          "featured": {
            "type": "boolean",
            "description": "featured 字段属于“打手资料”内容类型。字段含义：首页推荐标识。数据类型：布尔值。业务填写与默认规则：默认 false。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 false。"
          },
          "averageRating": {
            "type": "string",
            "pattern": "^[0-5]\\.[0-9]{2}$",
            "description": "averageRating 字段属于“打手资料”内容类型。字段含义：可见评价平均分。数据类型：小数。业务填写与默认规则：默认 0。业务约束与索引要求：0-5，保留 2 位；索引；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0；最大值为 5。"
          },
          "reviewCount": {
            "type": "integer",
            "minimum": 0,
            "description": "reviewCount 字段属于“打手资料”内容类型。字段含义：可见评价数量。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          },
          "completedOrderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "completedOrderCount 字段属于“打手资料”内容类型。字段含义：已完成订单数。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；索引；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          },
          "activeOrderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "activeOrderCount 字段属于“打手资料”内容类型。字段含义：当前待派单后且未终结的本人订单数。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：>=0；索引；只读聚合。当前 schema.json 已声明：默认值为 0；最小值为 0。"
          },
          "availableForBooking": {
            "type": "boolean",
            "description": "当前是否满足指定打手下单条件；进行中或已预留时为 false。"
          },
          "strictGameAttributeMatch": {
            "type": "boolean",
            "description": "开启后，MATCH_REQUIRED 游戏属性也必须与订单选择完全匹配。"
          },
          "primaryCapabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderCapabilitySummary"
            },
            "description": "打手用于列表展示的主要游戏与服务能力。"
          },
          "startingPriceMinor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerMoneyMinor"
              },
              {
                "type": "null"
              }
            ],
            "description": "打手相关可用套餐中的最低人民币分价格。"
          },
          "bio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "bio 字段属于“打手资料”内容类型。字段含义：个人介绍，不允许包含平台外联系方式。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 2000 字符。当前 schema.json 已声明：最多 2000 个字符。"
          },
          "historicalRecordSummary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "historicalRecordSummary 字段属于“打手资料”内容类型。字段含义：后台维护的历史战绩概述。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 3000 字符。当前 schema.json 已声明：最多 3000 个字符。"
          },
          "showcaseItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderShowcaseItem"
            },
            "description": "打手公开展示的素材列表。"
          },
          "servicePackages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerPackageSummary"
            },
            "description": "打手具备能力且当前可售的服务套餐列表。"
          },
          "gameDomains": {
            "type": "array",
            "description": "打手已配置的游戏、服务类型和额外属性能力。",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderGameDomain"
            }
          }
        },
        "required": [
          "documentId",
          "userId",
          "serviceProviderNo",
          "displayName",
          "avatarUrl",
          "level",
          "growthPoints",
          "levelProtectedUntil",
          "featured",
          "averageRating",
          "reviewCount",
          "completedOrderCount",
          "activeOrderCount",
          "availableForBooking",
          "strictGameAttributeMatch",
          "primaryCapabilities",
          "startingPriceMinor",
          "bio",
          "historicalRecordSummary",
          "showcaseItems",
          "servicePackages",
          "gameDomains"
        ],
        "additionalProperties": false
      },
      "OwnerReview": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "orderId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          "serviceProvider": {
            "$ref": "#/components/schemas/OwnerSimpleServiceProvider",
            "description": "关联提交本次评价申诉的打手档案，用于校验申诉主体与原评价对应履约关系。"
          },
          "owner": {
            "description": "实名评价返回老板公开摘要；匿名评价固定返回 null。",
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "documentId",
                  "ownerNo",
                  "nickname"
                ],
                "properties": {
                  "documentId": {
                    "$ref": "#/components/schemas/OwnerDocumentId",
                    "description": "Strapi 文档标识；用于后续读取或修改该资源。"
                  },
                  "ownerNo": {
                    "type": "string",
                    "description": "面向后台和日志的老板业务编号；格式为 V 加至少 5 位十进制顺序号，生成时跳过豹子号和完整升降连号。"
                  },
                  "nickname": {
                    "type": "string",
                    "description": "nickname 字段属于“老板资料”内容类型。字段含义：老板展示昵称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-40 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 40 个字符。"
                  }
                },
                "description": "审核数据结构。"
              },
              {
                "type": "null"
              }
            ]
          },
          "rating": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "rating 字段属于“订单评价”内容类型。字段含义：评分。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：1-5；索引。当前 schema.json 已声明：模型层声明为必填；最小值为 1；最大值为 5。"
          },
          "content": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "content 字段属于“订单评价”内容类型。字段含义：文字评价。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 2000 字符。当前 schema.json 已声明：最多 2000 个字符。"
          },
          "isAnonymous": {
            "type": "boolean",
            "default": false,
            "description": "老板是否选择匿名；公共端和打手端不返回匿名老板身份。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerReviewStatus",
            "description": "记录评价申诉当前处理状态，区分待处理、申诉成立和申诉驳回三种业务结果。"
          },
          "submittedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "记录打手正式提交评价申诉的业务时间，用于校验七日申诉期限并计算后台处理时效。"
          },
          "editCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1,
            "description": "记录老板成功修改该评价的累计次数，用于执行最多允许修改一次的业务限制并支持审计。"
          },
          "editedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "记录老板最近一次成功修改评价内容或评分的业务时间，未发生修改时保持为空。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "评价申诉记录的乐观锁版本号，每次状态或处理信息更新时递增以防止并发覆盖。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "orderId",
          "serviceProvider",
          "owner",
          "rating",
          "isAnonymous",
          "status",
          "submittedAt",
          "editCount",
          "version"
        ],
        "description": "审核数据结构。"
      },
      "OwnerBusinessFile": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "fileNo": {
            "$ref": "#/components/schemas/OwnerUuid",
            "description": "fileNo 字段属于“业务文件包装记录”内容类型。字段含义：业务文件编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：UUID；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "purpose": {
            "type": "string",
            "enum": [
              "ORDER_REQUIREMENT",
              "AFTER_SALE_EVIDENCE",
              "PROFILE_AVATAR"
            ],
            "description": "Owner 仅可使用 ORDER_REQUIREMENT、AFTER_SALE_EVIDENCE、PROFILE_AVATAR。",
            "x-enum-descriptions": [
              "取值 ORDER_REQUIREMENT。",
              "取值 AFTER_SALE_EVIDENCE。",
              "取值 PROFILE_AVATAR。"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "TEMPORARY",
              "BOUND",
              "DELETED"
            ],
            "description": "status 字段属于“业务文件包装记录”内容类型。字段含义：上传后绑定状态。数据类型：枚举值。允许保存的枚举值为：TEMPORARY、BOUND、DELETED。业务填写与默认规则：默认 TEMPORARY。业务约束与索引要求：TEMPORARY/BOUND/DELETED；索引。当前 schema.json 已声明：默认值为 TEMPORARY。",
            "x-enum-descriptions": [
              "临时文件：临时文件。",
              "已绑定：已绑定。",
              "已删除：已删除。"
            ]
          },
          "mimeType": {
            "type": "string",
            "description": "通过文件头和媒体探测得到的实际 MIME，不信任文件扩展名或上传声明。"
          },
          "mediaType": {
            "type": "string",
            "enum": [
              "IMAGE",
              "VIDEO",
              "AUDIO",
              "DOCUMENT",
              "TEXT"
            ],
            "description": "统一标识业务文件属于图片、视频或录音，决定后续大小、时长与编码校验规则。",
            "x-enum-descriptions": [
              "图片：图片。",
              "视频：视频。",
              "录音：录音。",
              "文档：文档。",
              "文本：文本。"
            ]
          },
          "sizeBytes": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "实际文件大小；上限按媒体类型从 FILE_NOTIFICATION 配置域校验。"
          },
          "durationSeconds": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0
              },
              {
                "type": "null"
              }
            ],
            "description": "视频或录音由 ffprobe 探测的实际时长秒数，图片保持为空且不得由上传参数伪造。"
          },
          "width": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "媒体探测得到的实际像素宽度，用于展示布局和证据文件完整性审计，未知时保持为空。"
          },
          "height": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "媒体探测得到的实际像素高度，用于展示布局和证据文件完整性审计，未知时保持为空。"
          },
          "codec": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 80
              },
              {
                "type": "null"
              }
            ],
            "description": "媒体探测得到的视频或音频编码名称，用于执行 H.264、HEVC 等允许编码白名单。"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "PASSED",
              "REJECTED"
            ],
            "description": "记录文件头、媒体探测与病毒扫描的综合校验状态，只有通过后才能绑定到业务记录。",
            "x-enum-descriptions": [
              "待校验：待校验。",
              "校验通过：校验通过。",
              "校验拒绝：校验拒绝。"
            ]
          },
          "expiresAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "expiresAt 字段属于“业务文件包装记录”内容类型。字段含义：临时文件 24 小时失效。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：TEMPORARY 必填。业务约束与索引要求：索引。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "fileNo",
          "purpose",
          "status",
          "mediaType",
          "mimeType",
          "sizeBytes",
          "validationStatus"
        ],
        "description": "业务文件数据结构。"
      },
      "OwnerOrderDetail": {
        "type": "object",
        "description": "订单详情数据结构。",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "orderNo": {
            "type": "string",
            "description": "orderNo 字段属于“订单主表”内容类型。字段含义：面向老板、打手和后台展示的订单号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：格式 LZyyyyMMdd + 10 位序列；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "orderType": {
            "$ref": "#/components/schemas/OwnerOrderType",
            "description": "orderType 字段属于“订单主表”内容类型。字段含义：标准套餐订单或自定义估价订单。数据类型：枚举值。允许保存的枚举值为：STANDARD、CUSTOM。业务填写与默认规则：必填。业务约束与索引要求：STANDARD/CUSTOM；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerOrderStatus",
            "description": "ACTIVE 为仍参与履约，REPLACED 为已退出但保留合作分成。"
          },
          "clientCategory": {
            "type": "string",
            "enum": [
              "ALL",
              "PENDING_PAYMENT",
              "IN_PROGRESS",
              "PENDING_ACCEPTANCE",
              "COMPLETED",
              "AFTER_SALE"
            ],
            "description": "用于列表展示和筛选的老板类别快照。",
            "x-enum-descriptions": [
              "全部：全部。",
              "待付款：待付款。",
              "进行中：进行中。",
              "待验收：待验收。",
              "已完成：已完成。",
              "售后中：售后中。"
            ]
          },
          "title": {
            "type": "string",
            "description": "title 字段属于“订单主表”内容类型。字段含义：标准订单使用套餐名；自定义订单使用需求标题。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-160 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 160 个字符。"
          },
          "gameName": {
            "type": "string",
            "description": "关联游戏的名称快照。"
          },
          "serviceTypeName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联服务类型的名称快照。"
          },
          "packageName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单创建时保存的套餐名称快照。"
          },
          "designatedServiceProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
              },
              {
                "type": "null"
              }
            ],
            "description": "designatedServiceProvider 字段属于“订单主表”内容类型。字段含义：老板指定的打手意向。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：可空。业务约束与索引要求：索引。"
          },
          "assignedServiceProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
              },
              {
                "type": "null"
              }
            ],
            "description": "assignedServiceProvider 字段属于“订单主表”内容类型。字段含义：当前实际执行打手。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：可空。业务约束与索引要求：复合索引 assignedServiceProvider+status。"
          },
          "hasServiceProviderChanged": {
            "type": "boolean",
            "description": "是否至少发生过一次有效打手更换；该标记一旦为 true 不会恢复为 false。"
          },
          "fulfillmentMode": {
            "type": "string",
            "enum": [
              "SINGLE",
              "MULTI"
            ],
            "description": "SINGLE 包含单打手及先后改派；MULTI 仅表示多个打手共同履约。",
            "x-enum-descriptions": [
              "单打手履约：单打手履约。",
              "多打手共同履约：多打手共同履约。"
            ]
          },
          "assignedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "最近一次主打手派单时间。"
          },
          "serviceProviderAcceptanceDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "要求打手确认派单时固化的最晚响应时间；接受、拒绝或超时后清空。"
          },
          "scheduledStartAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "等待开始倒计时截止时间；到期后系统自动正式开始。"
          },
          "startedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "正式履约计时开始时间。"
          },
          "startSource": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "SERVICE_PROVIDER",
                  "SERVICE_PROVIDER_ACCEPTANCE",
                  "SYSTEM_TIMEOUT",
                  "LEGACY_MIGRATION"
                ],
                "x-enum-descriptions": [
                  "打手提前开始",
                  "打手接受派单并立即开始",
                  "等待倒计时到期自动开始",
                  "历史订单迁移补齐"
                ],
                "description": "订单数据结构。"
              },
              {
                "type": "null"
              }
            ],
            "description": "正式开始来源。"
          },
          "serviceDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "从 startedAt 加预计履约时长计算的正式服务截止时间。"
          },
          "ownerAcceptanceDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "老板最晚确认验收时间；客服初验通过时按当时配置固化。"
          },
          "acceptanceSource": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "OWNER",
                  "SYSTEM_TIMEOUT"
                ],
                "x-enum-descriptions": [
                  "老板主动确认验收",
                  "系统因老板验收超时自动同意"
                ],
                "description": "订单数据结构。"
              },
              {
                "type": "null"
              }
            ],
            "description": "最终验收来源；SYSTEM_TIMEOUT 表示系统超时自动同意。"
          },
          "orderAmountMinor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerMoneyMinor"
              },
              {
                "type": "null"
              }
            ],
            "description": "orderAmountMinor 字段属于“订单主表”内容类型。字段含义：订单老板实付前金额，人民币分；不是支付流水。数据类型：大整数。业务填写与默认规则：STANDARD 必填；CUSTOM 接受报价后必填。业务约束与索引要求：>=0；API 以字符串返回。当前 schema.json 已声明：最小值为 0。"
          },
          "progressPercent": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "progressPercent 字段属于“订单主表”内容类型。字段含义：当前总体进度，来源于最后一条有效进度。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：0-100；索引。当前 schema.json 已声明：默认值为 0；最小值为 0；最大值为 100。"
          },
          "deadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单当前履约截止时间，采用 ISO 8601 日期时间格式。"
          },
          "createdAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "记录创建时间，采用 ISO 8601 日期时间格式。"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "记录最后更新时间，采用 ISO 8601 日期时间格式。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "订单打手参与记录的乐观锁版本；每次调整合作分成、换手或重新加入时递增。"
          },
          "availableActions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "基于当前状态和调用方权限可执行的订单操作编码列表。"
          },
          "catalogSnapshot": {
            "$ref": "#/components/schemas/OwnerOrderCatalogSnapshot",
            "description": "从内部下单快照中按白名单裁剪出的游戏、服务类型与套餐展示信息；不直接返回私有原始 JSON。"
          },
          "requirement": {
            "$ref": "#/components/schemas/OwnerOrderRequirementSummary",
            "description": "订单的老板需求、动态服务值和附件汇总。"
          },
          "gameAttributeSelections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeSelectionSnapshot"
            },
            "description": "游戏attributeselections字段。"
          },
          "serviceValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceValueView"
            },
            "description": "订单按套餐动态字段保存的服务需求值。"
          },
          "quoteSummary": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerQuote"
              },
              {
                "type": "null"
              }
            ],
            "description": "当前有效报价及报价状态摘要。"
          },
          "assignmentSummary": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerAssignmentSummary"
              },
              {
                "type": "null"
              }
            ],
            "description": "当前打手分配和换人状态摘要。"
          },
          "assignmentHistory": {
            "type": "array",
            "description": "按派单序号升序返回全部首次派单和改派记录。",
            "items": {
              "$ref": "#/components/schemas/OwnerAssignmentSummary"
            }
          },
          "serviceProviderParticipants": {
            "type": "array",
            "description": "Owner 与 Admin 可见全部当前及历史参与打手；ServiceProvider 仅返回本人参与记录。",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderParticipant"
            }
          },
          "progressSummary": {
            "$ref": "#/components/schemas/OwnerProgressSummary",
            "description": "订单最近履约进度和异常状态摘要。"
          },
          "latestCompletionSubmission": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerCompletionSubmission"
              },
              {
                "type": "null"
              }
            ],
            "description": "打手最近一次提交的完工申请与凭证。"
          },
          "platformReview": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerPlatformReviewSummary"
              },
              {
                "type": "null"
              }
            ],
            "description": "客服对完工申请的初验结果。"
          },
          "ownerAcceptance": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerAcceptanceSummary"
              },
              {
                "type": "null"
              }
            ],
            "description": "老板对订单交付结果的验收信息。"
          },
          "afterSaleSummary": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerAfterSaleDetail"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单当前售后工单及处理状态摘要。"
          },
          "review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerReview"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联打手提出异议的原始评价记录；配置允许时可保留多次申诉历史。"
          },
          "settlementPreview": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSettlementPreview"
              },
              {
                "type": "null"
              }
            ],
            "description": "结算preview字段。"
          },
          "statusTimeline": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerStatusHistory"
            },
            "description": "按发生顺序返回的订单状态变更时间线。"
          },
          "businessNotes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerOrderBusinessNote"
            },
            "description": "订单履约过程中追加的业务备注列表。"
          },
          "paymentIntegrationStatus": {
            "type": "string",
            "enum": [
              "IMPLEMENTED"
            ],
            "description": "订单与支付执行能力的集成边界状态。",
            "x-enum-descriptions": [
              "当前版本已接入统一支付中心；真实渠道能力仍受环境配置约束。"
            ]
          }
        },
        "required": [
          "documentId",
          "orderNo",
          "orderType",
          "status",
          "clientCategory",
          "title",
          "gameName",
          "hasServiceProviderChanged",
          "fulfillmentMode",
          "assignedAt",
          "serviceProviderAcceptanceDeadlineAt",
          "scheduledStartAt",
          "startedAt",
          "startSource",
          "serviceDeadlineAt",
          "progressPercent",
          "createdAt",
          "updatedAt",
          "version",
          "availableActions",
          "catalogSnapshot",
          "requirement",
          "gameAttributeSelections",
          "assignmentSummary",
          "assignmentHistory",
          "serviceProviderParticipants",
          "progressSummary",
          "platformReview",
          "ownerAcceptance",
          "serviceValues",
          "settlementPreview",
          "statusTimeline",
          "businessNotes",
          "paymentIntegrationStatus"
        ],
        "additionalProperties": false
      },
      "OwnerServiceValueInput": {
        "type": "object",
        "properties": {
          "fieldKey": {
            "type": "string",
            "description": "fieldKey 字段属于“订单服务资料值”内容类型。字段含义：字段稳定键。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：最大 50。当前 schema.json 已声明：模型层声明为必填；最多 50 个字符。"
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 5000
              },
              {
                "type": "null"
              }
            ],
            "description": "value 字段属于“动态字典项”内容类型。字段含义：业务数据实际保存和接口传输的稳定枚举值。数据类型：字符串。业务填写与默认规则：必填，创建后不可修改。业务约束与索引要求：仅允许 1-80 位大写字母、数字和下划线。"
          },
          "fileIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "maxItems": 9,
            "description": "当前字段关联的业务文件标识列表。"
          }
        },
        "additionalProperties": false,
        "required": [
          "fieldKey"
        ],
        "description": "服务值数据结构。"
      },
      "OwnerGameAttributeSelectionInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "attributeId",
          "optionIds"
        ],
        "properties": {
          "attributeId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "attribute标识字段。"
          },
          "optionIds": {
            "type": "array",
            "uniqueItems": true,
            "maxItems": 200,
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "option标识列表字段。"
          }
        },
        "description": "游戏attributeselection数据结构。"
      },
      "OwnerServiceProviderBookingEligibility": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "eligible",
          "serviceProviderId",
          "strictGameAttributeMatch",
          "reasons",
          "message"
        ],
        "properties": {
          "eligible": {
            "type": "boolean",
            "description": "eligible字段。"
          },
          "serviceProviderId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联打手资料的 Strapi 文档标识。"
          },
          "strictGameAttributeMatch": {
            "type": "boolean",
            "description": "是否要求订单所选的 MATCH_REQUIRED 游戏额外属性全部命中打手绑定；游戏和服务类型无论本开关是否开启都必须匹配。"
          },
          "reasons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderMatchReason"
            },
            "description": "reasons字段。"
          },
          "message": {
            "type": [
              "string",
              "null"
            ],
            "description": "面向调用方展示的错误或结果说明。"
          }
        },
        "description": "服务提供者bookingeligibility数据结构。"
      },
      "OwnerOrderSummary": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "orderNo": {
            "type": "string",
            "description": "orderNo 字段属于“订单主表”内容类型。字段含义：面向老板、打手和后台展示的订单号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：格式 LZyyyyMMdd + 10 位序列；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "orderType": {
            "$ref": "#/components/schemas/OwnerOrderType",
            "description": "orderType 字段属于“订单主表”内容类型。字段含义：标准套餐订单或自定义估价订单。数据类型：枚举值。允许保存的枚举值为：STANDARD、CUSTOM。业务填写与默认规则：必填。业务约束与索引要求：STANDARD/CUSTOM；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerOrderStatus",
            "description": "ACTIVE 为仍参与履约，REPLACED 为已退出但保留合作分成。"
          },
          "clientCategory": {
            "type": "string",
            "enum": [
              "ALL",
              "PENDING_PAYMENT",
              "IN_PROGRESS",
              "PENDING_ACCEPTANCE",
              "COMPLETED",
              "AFTER_SALE"
            ],
            "description": "用于列表展示和筛选的老板类别快照。",
            "x-enum-descriptions": [
              "全部：全部。",
              "待付款：待付款。",
              "进行中：进行中。",
              "待验收：待验收。",
              "已完成：已完成。",
              "售后中：售后中。"
            ]
          },
          "title": {
            "type": "string",
            "description": "title 字段属于“订单主表”内容类型。字段含义：标准订单使用套餐名；自定义订单使用需求标题。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-160 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 160 个字符。"
          },
          "gameName": {
            "type": "string",
            "description": "关联游戏的名称快照。"
          },
          "serviceTypeName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联服务类型的名称快照。"
          },
          "packageName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单创建时保存的套餐名称快照。"
          },
          "designatedServiceProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
              },
              {
                "type": "null"
              }
            ],
            "description": "designatedServiceProvider 字段属于“订单主表”内容类型。字段含义：老板指定的打手意向。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：可空。业务约束与索引要求：索引。"
          },
          "assignedServiceProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
              },
              {
                "type": "null"
              }
            ],
            "description": "assignedServiceProvider 字段属于“订单主表”内容类型。字段含义：当前实际执行打手。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：可空。业务约束与索引要求：复合索引 assignedServiceProvider+status。"
          },
          "hasServiceProviderChanged": {
            "type": "boolean",
            "description": "是否至少发生过一次有效打手更换；该标记一旦为 true 不会恢复为 false。"
          },
          "fulfillmentMode": {
            "type": "string",
            "enum": [
              "SINGLE",
              "MULTI"
            ],
            "description": "SINGLE 包含单打手及先后改派；MULTI 仅表示多个打手共同履约。",
            "x-enum-descriptions": [
              "单打手履约：单打手履约。",
              "多打手共同履约：多打手共同履约。"
            ]
          },
          "assignedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "最近一次主打手派单时间。"
          },
          "serviceProviderAcceptanceDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "要求打手确认派单时固化的最晚响应时间；接受、拒绝或超时后清空。"
          },
          "scheduledStartAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "等待开始倒计时截止时间；到期后系统自动正式开始。"
          },
          "startedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "正式履约计时开始时间。"
          },
          "startSource": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "SERVICE_PROVIDER",
                  "SERVICE_PROVIDER_ACCEPTANCE",
                  "SYSTEM_TIMEOUT",
                  "LEGACY_MIGRATION"
                ],
                "x-enum-descriptions": [
                  "打手提前开始",
                  "打手接受派单并立即开始",
                  "等待倒计时到期自动开始",
                  "历史订单迁移补齐"
                ],
                "description": "订单数据结构。"
              },
              {
                "type": "null"
              }
            ],
            "description": "正式开始来源。"
          },
          "serviceDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "从 startedAt 加预计履约时长计算的正式服务截止时间。"
          },
          "ownerAcceptanceDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "老板最晚确认验收时间；客服初验通过时按当时配置固化。"
          },
          "acceptanceSource": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "OWNER",
                  "SYSTEM_TIMEOUT"
                ],
                "x-enum-descriptions": [
                  "老板主动确认验收",
                  "系统因老板验收超时自动同意"
                ],
                "description": "订单数据结构。"
              },
              {
                "type": "null"
              }
            ],
            "description": "最终验收来源；SYSTEM_TIMEOUT 表示系统超时自动同意。"
          },
          "orderAmountMinor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerMoneyMinor"
              },
              {
                "type": "null"
              }
            ],
            "description": "orderAmountMinor 字段属于“订单主表”内容类型。字段含义：订单老板实付前金额，人民币分；不是支付流水。数据类型：大整数。业务填写与默认规则：STANDARD 必填；CUSTOM 接受报价后必填。业务约束与索引要求：>=0；API 以字符串返回。当前 schema.json 已声明：最小值为 0。"
          },
          "progressPercent": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "progressPercent 字段属于“订单主表”内容类型。字段含义：当前总体进度，来源于最后一条有效进度。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：0-100；索引。当前 schema.json 已声明：默认值为 0；最小值为 0；最大值为 100。"
          },
          "deadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单当前履约截止时间，采用 ISO 8601 日期时间格式。"
          },
          "createdAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "记录创建时间，采用 ISO 8601 日期时间格式。"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "记录最后更新时间，采用 ISO 8601 日期时间格式。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "订单打手参与记录的乐观锁版本；每次调整合作分成、换手或重新加入时递增。"
          },
          "availableActions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "基于当前状态和调用方权限可执行的订单操作编码列表。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "orderNo",
          "orderType",
          "status",
          "clientCategory",
          "title",
          "gameName",
          "hasServiceProviderChanged",
          "fulfillmentMode",
          "assignedAt",
          "serviceProviderAcceptanceDeadlineAt",
          "scheduledStartAt",
          "startedAt",
          "startSource",
          "serviceDeadlineAt",
          "progressPercent",
          "createdAt",
          "updatedAt",
          "version",
          "availableActions"
        ],
        "description": "订单数据结构。"
      },
      "OwnerOrderBusinessNote": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "noteType": {
            "type": "string",
            "description": "结构化记录类型；OWNER_SUPPLEMENT 表示老板补充需求，其余值分别表示调价请求、履约指令和后台内部备注。"
          },
          "content": {
            "type": "string",
            "description": "content 字段属于“订单结构化补充记录”内容类型。字段含义：补充内容。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：1-5000 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 5000 个字符。"
          },
          "actorName": {
            "type": "string",
            "description": "执行该操作的老板、打手或管理员名称快照。"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerBusinessFile"
            },
            "description": "attachments 字段属于“订单结构化补充记录”内容类型。字段含义：相关图片。数据类型：多对多关联关系。该字段建立多对多关联，关联目标为“业务文件包装记录”。业务填写与默认规则：可空。业务约束与索引要求：最多 9 张。"
          },
          "createdAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "记录创建时间，采用 ISO 8601 日期时间格式。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "noteType",
          "content",
          "actorName",
          "attachments",
          "createdAt"
        ],
        "description": "订单业务备注数据结构。"
      },
      "OwnerQuote": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "quoteNo": {
            "type": "string",
            "description": "quoteNo 字段属于“自定义订单报价”内容类型。字段含义：报价业务编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "version 字段属于“自定义订单报价”内容类型。字段含义：报价版本。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：从 1 递增。当前 schema.json 已声明：模型层声明为必填。"
          },
          "ownerAmountMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "老板报价金额，人民币分；只允许 0 元或不低于配置的自定义报价最低价。"
          },
          "estimatedDurationMinutes": {
            "type": "integer",
            "minimum": 1,
            "description": "estimatedDurationMinutes 字段属于“自定义订单报价”内容类型。字段含义：预计交付周期。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：>0。当前 schema.json 已声明：模型层声明为必填；最小值为 1。"
          },
          "costDeductionRateBps": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10000,
            "description": "仅后台订单详情返回的成本扣除比例。"
          },
          "description": {
            "type": "string",
            "description": "description 字段属于“自定义订单报价”内容类型。字段含义：报价说明。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：1-5000 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 5000 个字符。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerQuoteStatus",
            "description": "报价状态；ACTIVE 报价超过 expiresAt 后由调度器改为 EXPIRED。"
          },
          "submittedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "submittedAt 字段属于“自定义订单报价”内容类型。字段含义：提交时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "acceptedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "acceptedAt 字段属于“自定义订单报价”内容类型。字段含义：老板接受时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：UTC。"
          },
          "isCurrent": {
            "type": "boolean",
            "description": "该报价是否为当前可接受的有效版本。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "quoteNo",
          "version",
          "ownerAmountMinor",
          "estimatedDurationMinutes",
          "description",
          "status",
          "submittedAt",
          "isCurrent"
        ],
        "description": "报价数据结构。"
      },
      "OwnerProgressRecord": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "sequence": {
            "type": "integer",
            "minimum": 1,
            "description": "sequence 字段属于“订单进度记录”内容类型。字段含义：时间线序号。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：从 1 递增。当前 schema.json 已声明：模型层声明为必填。"
          },
          "recordType": {
            "$ref": "#/components/schemas/OwnerProgressRecordType",
            "description": "进度记录来源；ADMIN_PROXY_REPORT 表示客服代打手上报，不与后台纠正混用。"
          },
          "previousPercent": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "previousPercent 字段属于“订单进度记录”内容类型。字段含义：变更前进度。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：0-100。当前 schema.json 已声明：模型层声明为必填；最小值为 0；最大值为 100。"
          },
          "percent": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "percent 字段属于“订单进度记录”内容类型。字段含义：变更后进度。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：0-100；索引。当前 schema.json 已声明：模型层声明为必填；最小值为 0；最大值为 100。"
          },
          "description": {
            "type": "string",
            "description": "description 字段属于“订单进度记录”内容类型。字段含义：进度说明。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：1-3000 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 3000 个字符。"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerBusinessFile"
            },
            "description": "images 字段属于“订单进度记录”内容类型。字段含义：进度截图。数据类型：多对多关联关系。该字段建立多对多关联，关联目标为“业务文件包装记录”。业务填写与默认规则：可空。业务约束与索引要求：最多 9 张。"
          },
          "actorName": {
            "type": "string",
            "description": "执行该操作的老板、打手或管理员名称快照。"
          },
          "submittedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "submittedAt 字段属于“订单进度记录”内容类型。字段含义：提交时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "sequence",
          "recordType",
          "previousPercent",
          "percent",
          "description",
          "images",
          "actorName",
          "submittedAt"
        ],
        "description": "进度记录数据结构。"
      },
      "OwnerServiceProviderChangeRequest": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "requestNo": {
            "type": "string",
            "description": "requestNo 字段属于“指定打手变更同意单”内容类型。字段含义：变更请求编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "orderId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          "originalDesignatedServiceProvider": {
            "$ref": "#/components/schemas/OwnerSimpleServiceProvider",
            "description": "originalDesignatedServiceProvider 字段属于“指定打手变更同意单”内容类型。字段含义：老板原指定打手。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "proposedServiceProvider": {
            "$ref": "#/components/schemas/OwnerSimpleServiceProvider",
            "description": "proposedServiceProvider 字段属于“指定打手变更同意单”内容类型。字段含义：拟替换打手。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "reason": {
            "type": "string",
            "description": "reason 字段属于“指定打手变更同意单”内容类型。字段含义：后台说明不可执行原因与替换理由。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：1-2000 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 2000 个字符。"
          },
          "proposedDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "proposedDeadlineAt 字段属于“指定打手变更同意单”内容类型。字段含义：如需调整期限，明确给出；不自动变更。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：UTC。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerServiceProviderChangeStatus",
            "description": "status 字段属于“指定打手变更同意单”内容类型。字段含义：老板响应状态。数据类型：枚举值。允许保存的枚举值为：PENDING_OWNER、APPROVED、REJECTED、CANCELLED、EXPIRED。业务填写与默认规则：默认 PENDING_OWNER。业务约束与索引要求：PENDING_OWNER/APPROVED/REJECTED/CANCELLED/EXPIRED；索引。当前 schema.json 已声明：默认值为 PENDING_OWNER。"
          },
          "expiresAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "指定打手更换确认截止时间；创建时按配置固化，默认 10 小时。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "requestNo",
          "orderId",
          "originalDesignatedServiceProvider",
          "proposedServiceProvider",
          "reason",
          "status",
          "expiresAt"
        ],
        "description": "服务提供者change数据结构。"
      },
      "OwnerAfterSaleIssueType": {
        "x-dictionary-code": "AFTER_SALE_ISSUE_TYPE",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "DELIVERY_MISMATCH",
          "ACCOUNT_SECURITY",
          "PROGRESS_DISPUTE",
          "OVERDUE",
          "SERVICE_ATTITUDE",
          "OTHER"
        ],
        "description": "售后saleissue类型数据结构。\n\nissueType 字段属于“售后申诉单”内容类型。\n\n该值来自代码锁定字典 AFTER_SALE_ISSUE_TYPE，随服务版本发布。",
        "x-enum-descriptions": [
          "交付不符：结果与约定不一致。",
          "账号安全：账号或凭据风险。",
          "进度争议：进度真实性或记录争议。",
          "逾期：超过约定期限。",
          "服务态度：服务过程问题。",
          "其他：需填写完整说明。"
        ]
      },
      "OwnerAfterSaleExpectedResolution": {
        "x-dictionary-code": "AFTER_SALE_EXPECTED_RESOLUTION",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "CONTINUE_SERVICE",
          "PARTIAL_REFUND",
          "FULL_REFUND",
          "OTHER"
        ],
        "description": "售后sale预期处理方案数据结构。\n\nexpectedResolution 字段属于“售后申诉单”内容类型。\n\n该值来自代码锁定字典 AFTER_SALE_EXPECTED_RESOLUTION，随服务版本发布。",
        "x-enum-descriptions": [
          "继续履约：要求继续处理。",
          "部分退款：老板期望退回部分已支付金额。",
          "全额退款：老板期望退回全部可退款金额。",
          "其他：客服调查后处理。"
        ]
      },
      "OwnerAfterSaleDetail": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "caseNo": {
            "type": "string",
            "description": "caseNo 字段属于“售后申诉单”内容类型。字段含义：售后编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：格式 ASyyyyMMdd + 8 位序列；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "orderId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerAfterSaleStatus",
            "description": "售后处理权威状态；高额退款首审后进入 AWAITING_SECOND_APPROVAL，二审通过后才可进入外部退款。"
          },
          "issueType": {
            "$ref": "#/components/schemas/OwnerAfterSaleIssueType",
            "description": "issueType 字段属于“售后申诉单”内容类型。字段含义：问题类型。数据类型：枚举值。允许保存的枚举值为：DELIVERY_MISMATCH、ACCOUNT_SECURITY、PROGRESS_DISPUTE、OVERDUE、SERVICE_ATTITUDE、OTHER。业务填写与默认规则：必填。业务约束与索引要求：DELIVERY_MISMATCH/ACCOUNT_SECURITY/PROGRESS_DISPUTE/OVERDUE/SERVICE_ATTITUDE/OTHER；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "description": {
            "type": "string",
            "description": "description 字段属于“售后申诉单”内容类型。字段含义：问题说明。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：10-10000 字符。当前 schema.json 已声明：模型层声明为必填；最少 10 个字符；最多 10000 个字符。"
          },
          "expectedResolution": {
            "$ref": "#/components/schemas/OwnerAfterSaleExpectedResolution",
            "description": "expectedResolution 字段属于“售后申诉单”内容类型。字段含义：老板期望结果。数据类型：枚举值。允许保存的枚举值为：CONTINUE_SERVICE、PARTIAL_REFUND、FULL_REFUND、OTHER。业务填写与默认规则：必填。业务约束与索引要求：CONTINUE_SERVICE/PARTIAL_REFUND/FULL_REFUND/OTHER。当前 schema.json 已声明：模型层声明为必填。"
          },
          "assignedOperatorName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "当前负责处理售后工单的管理员名称快照。"
          },
          "resolutionType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerAfterSaleResolution"
              },
              {
                "type": "null"
              }
            ],
            "description": "resolutionType 字段属于“售后申诉单”内容类型。字段含义：最终结论。数据类型：枚举值。允许保存的枚举值为：CONTINUE_SERVICE、REJECT_APPEAL、PARTIAL_REFUND、FULL_REFUND。业务填写与默认规则：可空。业务约束与索引要求：CONTINUE_SERVICE/REJECT_APPEAL/PARTIAL_REFUND/FULL_REFUND。"
          },
          "approvedRefundAmountMinor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerMoneyMinor"
              },
              {
                "type": "null"
              }
            ],
            "description": "approvedRefundAmountMinor 字段属于“售后申诉单”内容类型。字段含义：批准退款金额，仅为业务决策数据。数据类型：大整数。业务填写与默认规则：退款结论时必填。业务约束与索引要求：>=0 且 <= order.retainedAmountMinor 或 order.orderAmountMinor；API 字符串。当前 schema.json 已声明：最小值为 0。"
          },
          "resolutionNote": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "resolutionNote 字段属于“售后申诉单”内容类型。字段含义：结论说明。数据类型：长文本。业务填写与默认规则：结论时必填。业务约束与索引要求：1-5000 字符。当前 schema.json 已声明：最少 1 个字符；最多 5000 个字符。"
          },
          "refundExecution": {
            "$ref": "#/components/schemas/OwnerRefundExecutionBoundary",
            "description": "退款业务决策与渠道执行边界说明。"
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerAfterSaleRecord"
            },
            "description": "售后处理过程中按时间追加的记录列表。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "version 字段属于“售后申诉单”内容类型。字段含义：乐观锁版本。数据类型：整数。业务填写与默认规则：默认 1。业务约束与索引要求：>=1。当前 schema.json 已声明：默认值为 1；最小值为 1。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "caseNo",
          "orderId",
          "status",
          "issueType",
          "description",
          "expectedResolution",
          "refundExecution",
          "records",
          "version"
        ],
        "description": "售后sale数据结构。"
      },
      "OwnerAfterSaleRecord": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "sequence": {
            "type": "integer",
            "minimum": 1,
            "description": "sequence 字段属于“售后处理时间线”内容类型。字段含义：时间线序号。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：从 1 递增。当前 schema.json 已声明：模型层声明为必填。"
          },
          "recordType": {
            "type": "string",
            "description": "recordType 字段属于“售后处理时间线”内容类型。字段含义：记录类型。数据类型：枚举值。允许保存的枚举值为：OWNER_SUPPLEMENT、SERVICE_PROVIDER_SUPPLEMENT、ADMIN_NOTE、REQUEST_OWNER_EVIDENCE、REQUEST_SERVICE_PROVIDER_EVIDENCE、STATUS_CHANGE、DECISION、SYSTEM。业务填写与默认规则：必填。当前 schema.json 已声明：模型层声明为必填。"
          },
          "visibility": {
            "type": "string",
            "description": "visibility 字段属于“售后处理时间线”内容类型。字段含义：可见范围。数据类型：枚举值。允许保存的枚举值为：ALL_PARTIES、ADMIN_ONLY、OWNER_ADMIN、SERVICE_PROVIDER_ADMIN。业务填写与默认规则：必填。当前 schema.json 已声明：模型层声明为必填。"
          },
          "content": {
            "type": "string",
            "description": "content 字段属于“售后处理时间线”内容类型。字段含义：记录内容。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：1-10000 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 10000 个字符。"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerBusinessFile"
            },
            "description": "attachments 字段属于“售后处理时间线”内容类型。字段含义：补充证据。数据类型：多对多关联关系。该字段建立多对多关联，关联目标为“业务文件包装记录”。业务填写与默认规则：可空。业务约束与索引要求：最多 9 张。"
          },
          "actorName": {
            "type": "string",
            "description": "执行该操作的老板、打手或管理员名称快照。"
          },
          "createdAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "记录创建时间，采用 ISO 8601 日期时间格式。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "sequence",
          "recordType",
          "visibility",
          "content",
          "attachments",
          "actorName",
          "createdAt"
        ],
        "description": "售后sale记录数据结构。"
      },
      "OwnerReferral": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "status",
          "codeSnapshot",
          "rateBpsSnapshot",
          "establishedAt",
          "firstOrderState",
          "effectiveFirstOrderId",
          "referralProgram",
          "commission"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "CORRECTED",
              "VOIDED"
            ],
            "description": "该资源当前所处的业务状态。",
            "x-enum-descriptions": [
              "有效：当前生效关系。",
              "已纠正：被新关系替代。",
              "作废：严重错误关系。"
            ]
          },
          "codeSnapshot": {
            "type": "string",
            "description": "codeSnapshot 字段属于“老板推荐关系”内容类型。字段含义：注册时推荐码快照。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：最大 20。当前 schema.json 已声明：模型层声明为必填。"
          },
          "rateBpsSnapshot": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10000,
            "description": "rateBpsSnapshot 字段属于“老板推荐关系”内容类型。字段含义：建立关系时比例快照。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：0-10000。当前 schema.json 已声明：模型层声明为必填；最小值为 0；最大值为 10000。"
          },
          "establishedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "establishedAt 字段属于“老板推荐关系”内容类型。字段含义：建立时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "firstOrderState": {
            "type": "string",
            "enum": [
              "UNDETERMINED",
              "ELIGIBLE",
              "COMMISSION_CREATED",
              "INVALIDATED"
            ],
            "description": "首单资格状态：创建订单后为 ELIGIBLE，有有效保留金额时生成佣金，否则最终为 INVALIDATED。",
            "x-enum-descriptions": [
              "待判定：待判定。",
              "符合佣金条件：符合佣金条件。",
              "已生成佣金：已生成佣金。",
              "已失效：已失效。"
            ]
          },
          "effectiveFirstOrderId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "effective名字订单标识字段。"
          },
          "referralProgram": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "documentId",
              "programNo",
              "subjectType",
              "subjectName",
              "code",
              "rateBps",
              "status",
              "serviceProvider"
            ],
            "properties": {
              "documentId": {
                "$ref": "#/components/schemas/OwnerDocumentId",
                "description": "Strapi 文档标识；用于后续读取或修改该资源。"
              },
              "programNo": {
                "type": "string",
                "description": "programNo 字段属于“推荐主体与推荐码”内容类型。字段含义：推荐主体业务编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
              },
              "subjectType": {
                "type": "string",
                "enum": [
                  "SERVICE_PROVIDER",
                  "STREAMER"
                ],
                "description": "subjectType 字段属于“推荐主体与推荐码”内容类型。字段含义：推荐主体类型。数据类型：枚举值。允许保存的枚举值为：SERVICE_PROVIDER、STREAMER。业务填写与默认规则：必填。业务约束与索引要求：SERVICE_PROVIDER/STREAMER；索引。当前 schema.json 已声明：模型层声明为必填。",
                "x-enum-descriptions": [
                  "打手：关联 serviceProviderProfile。",
                  "外部主播：一期无独立端。"
                ]
              },
              "subjectName": {
                "type": "string",
                "description": "subjectName 字段属于“推荐主体与推荐码”内容类型。字段含义：主体展示名；主播无需账号。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-120 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 120 个字符。"
              },
              "code": {
                "type": "string",
                "description": "业务编码；在对应资源类型内保持唯一。"
              },
              "rateBps": {
                "type": "integer",
                "minimum": 0,
                "maximum": 10000,
                "description": "比例bps字段。"
              },
              "status": {
                "type": "string",
                "enum": [
                  "ENABLED",
                  "DISABLED"
                ],
                "description": "该资源当前所处的业务状态。",
                "x-enum-descriptions": [
                  "启用/上架：允许展示和新建订单。",
                  "禁用/下架：不允许新建订单，历史快照保留。"
                ]
              },
              "serviceProvider": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "推荐计划关联的打手资料摘要；推荐主体不是打手时为空。"
              }
            },
            "description": "推荐program字段。"
          },
          "commission": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerReferralCommission"
              },
              {
                "type": "null"
              }
            ],
            "description": "佣金字段。"
          }
        },
        "description": "归属主体推荐数据结构。"
      },
      "OwnerNotification": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "notificationId",
          "documentId",
          "kind",
          "category",
          "eventType",
          "title",
          "summary",
          "resourceType",
          "resourceDocumentId",
          "payload",
          "priority",
          "read",
          "readAt",
          "occurredAt"
        ],
        "properties": {
          "notificationId": {
            "type": "string",
            "description": "PERSONAL 或 ANNOUNCEMENT 前缀的客户端稳定通知标识。"
          },
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "kind": {
            "type": "string",
            "enum": [
              "PERSONAL",
              "ANNOUNCEMENT"
            ],
            "x-enum-descriptions": [
              "个人持久通知",
              "全局公告"
            ],
            "description": "素材的技术类型，由服务端按文件头和外部探测工具校验后写入，客户端声明不能覆盖结果。"
          },
          "category": {
            "type": "string",
            "enum": [
              "ORDER",
              "BALANCE",
              "MESSAGE",
              "SYSTEM"
            ],
            "x-enum-descriptions": [
              "订单节点",
              "余额变化",
              "会话消息",
              "系统公告"
            ],
            "description": "通知业务分类，覆盖订单节点、余额变化、会话消息和系统信息，供收件箱筛选和客户端分组展示。"
          },
          "eventType": {
            "type": "string",
            "description": "稳定的业务事件类型编码，例如 ORDER_ASSIGNED 或 MESSAGE_RECEIVED，供客户端决定展示模板和跳转行为。"
          },
          "title": {
            "type": "string",
            "description": "管理员编辑并面向目标受众展示的公告标题，发布后不可修改，避免已接收内容与后台记录不一致。"
          },
          "summary": {
            "type": "string",
            "description": "管理员编辑的公告正文摘要，发布后不可修改且不得包含内部凭据、用户敏感信息或不应公开的运营数据。"
          },
          "resourceType": {
            "type": [
              "string",
              "null"
            ],
            "description": "通知关联的可跳转业务资源类型，例如 order、conversation 或 payment-ledger-entry；无关联资源时为空。"
          },
          "resourceDocumentId": {
            "type": [
              "string",
              "null"
            ],
            "description": "通知关联业务资源的 documentId，客户端必须通过对应有权接口重新加载详情，不得将通知载荷视为事实来源。"
          },
          "payload": {
            "type": "object",
            "additionalProperties": true,
            "description": "最大 8KB 的端侧展示白名单数据，不含消息正文和敏感凭据。"
          },
          "priority": {
            "type": "string",
            "enum": [
              "LOW",
              "NORMAL",
              "HIGH"
            ],
            "x-enum-descriptions": [
              "低优先级",
              "普通优先级",
              "高优先级"
            ],
            "description": "公告展示优先级，支持低、普通和高三个级别，供客户端决定提示强度，不改变受众或可见时间。"
          },
          "read": {
            "type": "boolean",
            "description": "当前通知是否已被用户标记为已读。"
          },
          "readAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "当前接收主体首次标记该公告已读的 UTC 时间；重复请求不会覆盖原时间并保持幂等结果。"
          },
          "occurredAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "触发该通知的原始业务事件发生 UTC 时间，用于统一排序和断线补偿，不等同于数据库记录创建时间。"
          }
        },
        "description": "通知数据结构。"
      },
      "OwnerNotificationPaginationMeta": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "page",
          "pageSize",
          "pageCount",
          "total",
          "unreadCount"
        ],
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "分页页码，从 1 开始。"
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "每页返回的记录数。"
          },
          "pageCount": {
            "type": "integer",
            "minimum": 0,
            "description": "按当前每页条数计算出的总页数。"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "符合查询条件的记录总数。"
          },
          "unreadCount": {
            "type": "integer",
            "minimum": 0,
            "description": "当前收件人全部有效通知中的未读总数。"
          }
        },
        "description": "通知pagination附加信息数据结构。"
      },
      "OwnerPushInstallationStatus": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enabled",
          "registeredAt"
        ],
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "当前安装已登记且 FILE_NOTIFICATION.tencentPushEnabled 运行时开关已开启。"
          },
          "registeredAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "description": "registeredat字段。"
          }
        },
        "description": "pushinstallation状态数据结构。"
      },
      "OwnerDictionary": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "code 字段属于“动态字典定义”内容类型。字段含义：开放型字典的稳定业务编码。数据类型：字符串。业务填写与默认规则：必填、唯一，创建后不可修改。业务约束与索引要求：仅允许 2-64 位大写字母、数字和下划线；不得使用代码锁定字典的保留编码。"
          },
          "name": {
            "type": "string",
            "description": "name 字段属于“动态字典定义”内容类型。字段含义：管理后台和客户端展示的简体中文字典名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 个字符；修改时必须携带乐观锁版本。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "description 字段属于“动态字典定义”内容类型。字段含义：解释该字典在本项目中的业务用途和使用边界。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 1000 个字符，不得保存脚本、口令或其他敏感信息。"
          },
          "source": {
            "type": "string",
            "enum": [
              "CODE",
              "DATABASE"
            ],
            "description": "来源字段。",
            "x-enum-descriptions": [
              "代码锁定字典，值随版本发布。",
              "数据库动态字典，值通过字典接口查询。"
            ]
          },
          "mutable": {
            "type": "boolean",
            "description": "该字典是否允许后台动态维护。"
          },
          "audiences": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "允许获取字典的使用端列表，必填且默认包含 PUBLIC；仅允许 PUBLIC、OWNER、SERVICE_PROVIDER、ADMIN，去重后保存。"
          },
          "status": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ],
            "description": "status 字段属于“动态字典定义”内容类型。字段含义：控制整本动态字典是否可被查询和用于新数据校验。数据类型：基础设施枚举。允许值为 ENABLED、DISABLED。业务填写与默认规则：默认 ENABLED；停用不会删除历史字典项。",
            "x-enum-descriptions": [
              "启用/上架：允许展示和新建订单。",
              "禁用/下架：不允许新建订单，历史快照保留。"
            ]
          },
          "sortOrder": {
            "type": "integer",
            "description": "sortOrder 字段属于“动态字典定义”内容类型。字段含义：管理后台和公开接口中的人工排序值，数值越小越靠前。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：必须大于或等于 0。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "version 字段属于“动态字典定义”内容类型。字段含义：字典定义及其字典项发生变化时递增的乐观锁版本。数据类型：整数。业务填写与默认规则：默认 1，由服务端维护。业务约束与索引要求：必须大于或等于 1，客户端不得直接指定新版本。"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDictionaryItem"
            },
            "description": "items 字段属于“动态字典定义”内容类型。字段含义：该开放型字典包含的全部可配置字典项。数据类型：一对多关联关系，关联目标为“动态字典项”。业务填写与默认规则：由字典项接口维护；读取详情时按 sortOrder 和 value 排序。"
          }
        },
        "required": [
          "code",
          "name",
          "source",
          "mutable",
          "audiences",
          "status",
          "sortOrder",
          "version",
          "items"
        ],
        "additionalProperties": false,
        "description": "字典数据结构。"
      },
      "OwnerReassignmentRequest": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "documentId",
          "requestNo",
          "status",
          "reason",
          "requestedAt",
          "version"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "requestNo": {
            "type": "string",
            "description": "系统为每次老板改派请求生成的全局唯一业务编号，用于列表展示、审计和客服检索。"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "APPROVED",
              "REJECTED",
              "WITHDRAWN",
              "APPLIED"
            ],
            "description": "改派请求处理状态；审核通过不代表已计次，只有 APPLIED 表示新打手已实际生效。",
            "x-enum-descriptions": [
              "待审核：待审核。",
              "审核通过：审核通过。",
              "审核驳回：审核驳回。",
              "老板撤回：老板撤回。",
              "改派已生效：改派已生效。"
            ]
          },
          "reason": {
            "type": "string",
            "description": "老板发起改派时必须填写的业务原因，客服审核和后续派单操作均可查看该原始说明。"
          },
          "requestedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "老板提交改派请求并成功持久化的服务端时间，作为审核队列排序和审计时间基准。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "改派请求的乐观锁版本，老板撤回和管理员审核必须携带读取到的当前版本。"
          }
        },
        "description": "归属主体reassignment数据结构。"
      },
      "OwnerPaymentCenterWallet": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "accountNo",
          "ownerType",
          "currency",
          "availableBalanceMinor",
          "frozenBalanceMinor",
          "version"
        ],
        "properties": {
          "accountNo": {
            "type": "string",
            "description": "支付中心生成的稳定钱包账户编号，用于后台展示与资金流水关联，不使用数据库自增编号。"
          },
          "ownerType": {
            "type": "string",
            "const": "OWNER",
            "description": "Owner 调用面的钱包归属主体固定为 OWNER。"
          },
          "currency": {
            "type": "string",
            "enum": [
              "CNY"
            ],
            "description": "资金币种；当前支付中心仅支持人民币 CNY。",
            "x-enum-descriptions": [
              "人民币：人民币。"
            ]
          },
          "availableBalanceMinor": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "Owner 当前可用于订单支付或申请提现的人民币分余额。"
          },
          "frozenBalanceMinor": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "因提现申请或订单售后窗口暂时不可使用的人民币分余额，只能由成对账本动作解冻或扣除。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "用于乐观锁和并发修改校验的业务版本号。"
          }
        },
        "description": "钱包数据结构。"
      },
      "OwnerPaymentCenterLedgerEntry": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "entryNo",
          "entryType",
          "availableDeltaMinor",
          "frozenDeltaMinor",
          "availableBalanceAfterMinor",
          "frozenBalanceAfterMinor",
          "businessType",
          "businessNo",
          "description",
          "occurredAt"
        ],
        "properties": {
          "entryNo": {
            "type": "string",
            "description": "支付中心生成的唯一账本流水编号，供用户查询、后台审计和问题排查时稳定引用。"
          },
          "entryType": {
            "type": "string",
            "enum": [
              "RECHARGE",
              "ORDER_PAYMENT",
              "ORDER_REFUND",
              "WITHDRAWAL_HOLD",
              "WITHDRAWAL_RELEASE",
              "WITHDRAWAL_DEBIT"
            ],
            "description": "Owner 钱包可能出现的资金动作类型。",
            "x-enum-descriptions": [
              "取值 RECHARGE。",
              "取值 ORDER_PAYMENT。",
              "取值 ORDER_REFUND。",
              "取值 WITHDRAWAL_HOLD。",
              "取值 WITHDRAWAL_RELEASE。",
              "取值 WITHDRAWAL_DEBIT。"
            ]
          },
          "availableDeltaMinor": {
            "type": "string",
            "pattern": "^-?[0-9]+$",
            "description": "本次动作对可用余额产生的人民币分增量，正数增加、负数减少，允许保存负整数。"
          },
          "frozenDeltaMinor": {
            "type": "string",
            "pattern": "^-?[0-9]+$",
            "description": "本次动作对冻结余额产生的人民币分增量，正数冻结、负数解冻或完成扣款。"
          },
          "availableBalanceAfterMinor": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "完成本次资金动作后的可用余额人民币分快照，用于审计校验连续账本是否完整。"
          },
          "frozenBalanceAfterMinor": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "完成本次资金动作后的冻结余额人民币分快照，用于审计校验冻结与释放是否闭环。"
          },
          "businessType": {
            "type": "string",
            "enum": [
              "PAYMENT_ORDER",
              "ORDER",
              "WITHDRAWAL"
            ],
            "description": "Owner 钱包流水关联的业务类型。",
            "x-enum-descriptions": [
              "取值 PAYMENT_ORDER。",
              "取值 ORDER。",
              "取值 WITHDRAWAL。"
            ]
          },
          "businessNo": {
            "type": "string",
            "description": "关联业务对象可展示编号，例如支付单号、订单号、结算号或提现申请编号。"
          },
          "description": {
            "type": "string",
            "description": "面向用户和后台展示的简短资金变动说明，不得包含支付密钥、令牌或渠道敏感原文。"
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time",
            "description": "资金事实实际入账时间，统一保存 UTC 时间并用于账本列表的稳定倒序查询。"
          }
        },
        "description": "ledger入口数据结构。"
      },
      "OwnerPaymentCenterPaginationMeta": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "page",
          "pageSize",
          "pageCount",
          "total"
        ],
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "分页页码，从 1 开始。"
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "每页返回的记录数。"
          },
          "pageCount": {
            "type": "integer",
            "minimum": 0,
            "description": "按当前每页条数计算出的总页数。"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "符合查询条件的记录总数。"
          }
        },
        "description": "pagination附加信息数据结构。"
      },
      "OwnerPaymentCenterPaymentOrder": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "paymentNo",
          "scene",
          "channel",
          "requestedChannel",
          "status",
          "amountMinor",
          "totalAmountMinor",
          "balanceAmountMinor",
          "externalAmountMinor",
          "refundedAmountMinor",
          "currency",
          "subjectSnapshot",
          "initiatedAt",
          "expiresAt",
          "paidAt",
          "closedAt",
          "lastRefundedAt",
          "lastNotifiedAt",
          "notifyCount",
          "failureCode",
          "availableActions",
          "order"
        ],
        "properties": {
          "documentId": {
            "type": "string",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "paymentNo": {
            "type": "string",
            "description": "支付中心生成并传给支付宝 out_trade_no 的唯一商户支付单号，禁止重复使用或修改。"
          },
          "scene": {
            "type": "string",
            "enum": [
              "ORDER_PAYMENT",
              "RECHARGE"
            ],
            "description": "支付业务场景，ORDER_PAYMENT 表示订单付款，RECHARGE 表示老板钱包一比一充值。",
            "x-enum-descriptions": [
              "订单支付：订单支付。",
              "钱包充值：钱包充值。"
            ]
          },
          "channel": {
            "type": "string",
            "enum": [
              "BALANCE",
              "ALIPAY"
            ],
            "description": "实际支付渠道，BALANCE 使用支付中心钱包，ALIPAY 使用支付宝 APP 支付协议。",
            "x-enum-descriptions": [
              "使用平台钱包可用余额支付。",
              "使用支付宝 App 支付。"
            ]
          },
          "requestedChannel": {
            "type": "string",
            "enum": [
              "AUTO",
              "BALANCE",
              "ALIPAY"
            ],
            "description": "API 请求渠道；AUTO 会根据可用余额拆分为余额和支付宝。",
            "x-enum-descriptions": [
              "自动选择渠道：自动选择渠道。",
              "仅钱包余额：仅钱包余额。",
              "仅支付宝：仅支付宝。"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "SUCCEEDED",
              "PARTIALLY_REFUNDED",
              "REFUNDED",
              "FAILED",
              "CLOSED"
            ],
            "description": "支付单权威状态，只有支付宝验签回调或余额事务可以将待支付状态变更为成功。",
            "x-enum-descriptions": [
              "待支付：待支付。",
              "支付成功：支付成功。",
              "部分退款：部分退款。",
              "已退款：已退款。",
              "支付失败：支付失败。",
              "支付单关闭：支付单关闭。"
            ]
          },
          "amountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor",
            "description": "创建支付单时固化的应付人民币分金额，回调必须与该值精确一致后才允许入账。"
          },
          "totalAmountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor",
            "description": "总数金额minor字段。"
          },
          "balanceAmountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterNonnegativeMoneyMinor",
            "description": "余额金额minor字段。"
          },
          "externalAmountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterNonnegativeMoneyMinor",
            "description": "external金额minor字段。"
          },
          "refundedAmountMinor": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "该支付单累计成功退款的人民币分金额，必须大于等于零且任何时刻不得超过原支付金额。"
          },
          "currency": {
            "type": "string",
            "enum": [
              "CNY"
            ],
            "description": "支付单币种固定为人民币 CNY，支付宝 total_amount 与本字段共同限制跨币种风险。",
            "x-enum-descriptions": [
              "人民币：人民币。"
            ]
          },
          "subjectSnapshot": {
            "type": "string",
            "description": "发起支付时固化并传递给支付宝的商品标题快照，禁止包含账号、令牌等敏感信息。"
          },
          "initiatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "支付中心成功创建支付单的 UTC 时间，用于排序、超时关闭和渠道问题排查。"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "description": "支付单允许完成支付的最晚 UTC 时间，超过后不得创建新的资金入账事实。"
          },
          "paidAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "支付宝回调或余额扣款确认成功的 UTC 时间，未成功支付时必须保持为空。"
          },
          "closedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "支付单因本地超时或渠道关闭进入 CLOSED 状态的 UTC 时间；超时前已完成支付并恢复成功时清空。"
          },
          "lastRefundedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "最近一次支付宝渠道或余额钱包退款成功并完成本地事务提交的 UTC 时间。"
          },
          "lastNotifiedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "最近一次收到并通过支付宝签名校验的回调时间，用于重复通知与延迟排查。"
          },
          "notifyCount": {
            "type": "integer",
            "minimum": 0,
            "description": "通过支付宝签名和商户身份校验的通知次数，重复通知只增加计数而不得重复入账。"
          },
          "failureCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "支付失败或关闭时保存的稳定内部错误代码，不保存支付宝响应中可能出现的敏感原文。"
          },
          "availableActions": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "RETRY_PAYMENT",
                "SYNC_PAYMENT"
              ],
              "description": "支付订单数据结构。",
              "x-enum-descriptions": [
                "取值 RETRY_PAYMENT。",
                "取值 SYNC_PAYMENT。"
              ]
            },
            "description": "基于当前状态和调用方权限可执行的订单操作编码列表。"
          },
          "order": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "documentId",
                  "orderNo",
                  "title",
                  "status"
                ],
                "properties": {
                  "documentId": {
                    "type": "string",
                    "description": "Strapi 文档标识；用于后续读取或修改该资源。"
                  },
                  "orderNo": {
                    "type": "string",
                    "description": "orderNo 字段属于“订单主表”内容类型。字段含义：面向老板、打手和后台展示的订单号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：格式 LZyyyyMMdd + 10 位序列；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
                  },
                  "title": {
                    "type": "string",
                    "description": "title 字段属于“订单主表”内容类型。字段含义：标准订单使用套餐名；自定义订单使用需求标题。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-160 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 160 个字符。"
                  },
                  "status": {
                    "type": "string",
                    "description": "支付单权威状态，只有支付宝验签回调或余额事务可以将待支付状态变更为成功。"
                  }
                },
                "description": "支付订单数据结构。"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单付款场景关联的业务订单，充值场景为空，同一订单可保留多次终结支付尝试历史。"
          }
        },
        "description": "支付订单数据结构。"
      },
      "OwnerPaymentCenterPaymentOrderPaginationMeta": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "page",
          "pageSize",
          "pageCount",
          "total",
          "serverTime"
        ],
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "分页页码，从 1 开始。"
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "每页返回的记录数。"
          },
          "pageCount": {
            "type": "integer",
            "minimum": 0,
            "description": "按当前每页条数计算出的总页数。"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "符合查询条件的记录总数。"
          },
          "serverTime": {
            "type": "string",
            "format": "date-time",
            "description": "servertime字段。"
          }
        },
        "description": "支付订单pagination附加信息数据结构。"
      },
      "OwnerPaymentCenterPaymentSyncResult": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "paymentNo",
          "status",
          "resultCode",
          "duplicate"
        ],
        "properties": {
          "paymentNo": {
            "type": "string",
            "description": "支付中心生成的全局唯一支付单号。"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "SUCCEEDED",
              "PARTIALLY_REFUNDED",
              "REFUNDED",
              "FAILED",
              "CLOSED"
            ],
            "description": "该资源当前所处的业务状态。",
            "x-enum-descriptions": [
              "待支付：待支付。",
              "支付成功：支付成功。",
              "部分退款：部分退款。",
              "已退款：已退款。",
              "支付失败：支付失败。",
              "支付单关闭：支付单关闭。"
            ]
          },
          "resultCode": {
            "type": "string",
            "description": "稳定的本地处理结果代码，例如 PAYMENT_CONFIRMED、DUPLICATE 或 STATUS_IGNORED。"
          },
          "duplicate": {
            "type": "boolean",
            "description": "本次同步是否命中了已处理过的重复结果。"
          },
          "requiresReview": {
            "type": "boolean",
            "description": "requires审核字段。"
          }
        },
        "description": "支付syncresult数据结构。"
      },
      "OwnerPaymentCenterPaymentInitiation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "paymentNo",
          "amountMinor",
          "totalAmountMinor",
          "subject",
          "expiresAt",
          "channel",
          "requestedChannel",
          "balanceAmountMinor",
          "externalAmountMinor"
        ],
        "properties": {
          "paymentNo": {
            "type": "string",
            "description": "支付中心生成的全局唯一支付单号。"
          },
          "amountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor",
            "description": "人民币分金额，以十进制字符串传输，避免浮点精度损失。"
          },
          "totalAmountMinor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor"
              }
            ],
            "description": "订单本次支付总额；组合支付时等于余额部分与支付宝部分之和。"
          },
          "subject": {
            "type": "string",
            "description": "会话主题摘要；字符串类型，订单会话保存订单标题快照，客服会话由老板填写，长度限制为一至一百字符。"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "description": "该凭据或业务对象的失效时间，采用 ISO 8601 日期时间格式。"
          },
          "channel": {
            "type": "string",
            "enum": [
              "BALANCE",
              "ALIPAY"
            ],
            "description": "本次支付使用的资金渠道。",
            "x-enum-descriptions": [
              "使用平台钱包可用余额支付。",
              "使用支付宝 App 支付。"
            ]
          },
          "requestedChannel": {
            "type": "string",
            "enum": [
              "AUTO",
              "BALANCE",
              "ALIPAY"
            ],
            "description": "requested渠道字段。",
            "x-enum-descriptions": [
              "自动选择渠道：自动选择渠道。",
              "仅钱包余额：仅钱包余额。",
              "仅支付宝：仅支付宝。"
            ]
          },
          "balanceAmountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterNonnegativeMoneyMinor",
            "description": "余额金额minor字段。"
          },
          "externalAmountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterNonnegativeMoneyMinor",
            "description": "external金额minor字段。"
          },
          "channelPayload": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "description": "仅支付宝发起响应存在；不得记录完整 orderString",
                "required": [
                  "type",
                  "orderString"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "ALIPAY_APP_ORDER_STRING",
                    "description": "当前对象的业务类型或载荷分类。"
                  },
                  "orderString": {
                    "type": "string",
                    "description": "支付宝 App 支付所需的签名 orderString；不得写入业务日志。"
                  }
                }
              },
              {
                "type": "object",
                "additionalProperties": false,
                "description": "订单支付或显式请求 WAP 的钱包充值可返回；App 应在系统浏览器中打开，并以服务端查单结果为准。",
                "required": [
                  "type",
                  "url"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "ALIPAY_WAP_URL",
                    "description": "当前对象的业务类型或载荷分类。"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "description": "服务端签发的资源访问地址。"
                  }
                }
              },
              {
                "type": "null"
              }
            ],
            "description": "支付渠道发起结果；仅在需要客户端继续拉起渠道时返回。"
          }
        },
        "description": "支付initiation数据结构。"
      },
      "OwnerPaymentCenterWithdrawal": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "withdrawalNo",
          "ownerType",
          "amountMinor",
          "feeRateBpsSnapshot",
          "feeAmountMinor",
          "netAmountMinor",
          "payoutChannel",
          "payoutIdentityMasked",
          "approvalMode",
          "approvalStage",
          "dualApprovalRequiredSnapshot",
          "dualApprovalThresholdMinorSnapshot",
          "status",
          "requestedAt",
          "reviewedAt",
          "paidAt",
          "failedAt",
          "failureCode",
          "version",
          "rejectionReason"
        ],
        "properties": {
          "documentId": {
            "type": "string",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "withdrawalNo": {
            "type": "string",
            "description": "支付中心生成的唯一提现申请编号，用于用户查询、后台审批和后续二阶段打款关联。"
          },
          "ownerType": {
            "type": "string",
            "const": "OWNER",
            "description": "Owner 调用面的钱包归属主体固定为 OWNER。"
          },
          "amountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor",
            "description": "用户申请从可用余额转入冻结余额的人民币分总额，其中包含本次提现手续费。"
          },
          "feeRateBpsSnapshot": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10000,
            "description": "申请创建时固化的提现手续费基点比例，配置后续变化不得回写历史提现申请。"
          },
          "feeAmountMinor": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "按申请总额和费率向上取整得到的人民币分手续费，确保平台不因分位舍入少收。"
          },
          "netAmountMinor": {
            "$ref": "#/components/schemas/OwnerPaymentCenterMoneyMinor",
            "description": "申请总额扣除手续费后的实际渠道打款人民币分金额，支付宝请求与验签查询结果必须精确匹配该值。"
          },
          "payoutChannel": {
            "type": "string",
            "const": "ALIPAY",
            "description": "本次提现使用的实际打款渠道，当前固定为支付宝且必须同时通过业务开关与部署能力开关。"
          },
          "payoutIdentityMasked": {
            "type": "string",
            "maxLength": 120,
            "description": "面向申请人和管理员展示的支付宝登录号脱敏快照，不得用于还原或替代真实渠道收款账号。"
          },
          "approvalMode": {
            "type": "string",
            "enum": [
              "AUTO",
              "MANUAL"
            ],
            "description": "审批模式快照，AUTO 表示不超过阈值自动通过，MANUAL 表示必须由管理员审批。",
            "x-enum-descriptions": [
              "自动通过：自动通过。",
              "人工审批：人工审批。"
            ]
          },
          "approvalStage": {
            "type": "string",
            "enum": [
              "NOT_REQUIRED",
              "PENDING_FIRST",
              "PENDING_SECOND",
              "APPROVED",
              "REJECTED"
            ],
            "description": "人工审批阶段；达到双人复核阈值时第一人通过后停在 PENDING_SECOND。",
            "x-enum-descriptions": [
              "无需人工审批：无需人工审批。",
              "待首次审批：提现等待第一位管理员人工审批。",
              "待第二人复核：高额提现已由第一位管理员批准。",
              "审批通过：提现已完成所需人工审批并进入打款流程。",
              "审批驳回：提现被管理员驳回并解冻金额。"
            ]
          },
          "dualApprovalRequiredSnapshot": {
            "type": "boolean",
            "description": "申请创建时固化是否需要双人复核；后续配置变化不得改变该申请的审批链路。"
          },
          "dualApprovalThresholdMinorSnapshot": {
            "type": "string",
            "pattern": "^[0-9]+$",
            "description": "申请创建时固化的双人复核金额门槛，单位人民币分；旧待审批申请由迁移保守回填。"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING_APPROVAL",
              "PAYOUT_PENDING",
              "REJECTED",
              "PAID",
              "FAILED"
            ],
            "description": "提现申请权威状态；渠道成功后扣减冻结余额，明确失败后原额解冻。",
            "x-enum-descriptions": [
              "待审批：待审批。",
              "待打款：待打款。",
              "已驳回：已驳回。",
              "已打款：已打款。",
              "打款失败：打款失败。"
            ]
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "description": "提现申请成功冻结余额的 UTC 时间，用于列表排序、审批时效和资金占用审计。"
          },
          "reviewedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "人工审批完成或系统自动通过的 UTC 时间，待人工审批期间该字段保持为空。"
          },
          "paidAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "渠道确认打款成功且本地完成冻结余额扣减的 UTC 时间，只有 PAID 状态允许保存该值。"
          },
          "failedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "渠道明确拒绝且本地冻结余额已原额退回可用余额的 UTC 时间，不确定结果不得写入。"
          },
          "failureCode": {
            "type": [
              "string",
              "null"
            ],
            "description": "经过白名单规范化的稳定打款失败代码，只描述错误类别，不保存渠道账号或响应原文。"
          },
          "rejectionReason": {
            "type": [
              "string",
              "null"
            ],
            "description": "rejectionReason 字段属于“完工申请”内容类型。字段含义：驳回原因与补充要求。数据类型：长文本。业务填写与默认规则：REJECTED 必填。业务约束与索引要求：最多 3000 字符。当前 schema.json 已声明：最多 3000 个字符。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "提现申请乐观锁版本，审批或后续打款状态变化必须携带当前版本避免重复操作。"
          },
          "firstApprovedByNameSnapshot": {
            "type": [
              "string",
              "null"
            ],
            "description": "固化高额提现第一位审批管理员当时的显示名称，避免账号改名影响历史审批记录展示。"
          },
          "firstApprovedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "记录高额提现第一位管理员完成审批的业务时间，用于计算复核时效并还原审批顺序。"
          },
          "secondApprovedByNameSnapshot": {
            "type": [
              "string",
              "null"
            ],
            "description": "固化高额提现第二位复核管理员当时的显示名称，避免账号改名影响历史复核记录展示。"
          },
          "secondApprovedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "记录高额提现第二位管理员完成复核的业务时间，作为提现决策生效与审计追踪依据。"
          }
        },
        "description": "提现数据结构。"
      },
      "OwnerCommunicationCenterConversationEnvelope": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OwnerCommunicationCenterSuccessEnvelopeBase"
          },
          {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterConversation",
                "description": "本次响应返回的业务数据。"
              }
            },
            "description": "conversationenvelope数据结构。"
          }
        ],
        "description": "conversationenvelope数据结构。"
      },
      "OwnerCommunicationCenterErrorEnvelope": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "data",
          "error"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "请求追踪标识。"
          },
          "data": {
            "type": "null",
            "description": "失败响应固定为 null。"
          },
          "error": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "稳定错误码；模块停用与只读分别固定为 COMMUNICATION_MODULE_DISABLED、COMMUNICATION_MODULE_READ_ONLY。",
                "examples": [
                  "COMMUNICATION_MODULE_DISABLED",
                  "COMMUNICATION_MODULE_READ_ONLY",
                  "COMMUNICATION_CONVERSATION_NOT_FOUND",
                  "COMMUNICATION_FORBIDDEN",
                  "COMMUNICATION_INVALID_CURSOR",
                  "COMMUNICATION_INVALID_SEQUENCE",
                  "COMMUNICATION_IDEMPOTENCY_CONFLICT",
                  "COMMUNICATION_VERSION_CONFLICT",
                  "REALTIME_TICKET_INVALID",
                  "REALTIME_TICKET_EXPIRED",
                  "COMMUNICATION_TICKET_RATE_LIMITED",
                  "VALIDATION_ERROR",
                  "RATE_LIMITED"
                ]
              },
              "message": {
                "type": "string",
                "description": "不包含敏感数据的用户可读错误说明。"
              },
              "details": {
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": true,
                "description": "可选的结构化错误上下文。"
              }
            },
            "description": "接口失败时返回的结构化错误对象。"
          }
        },
        "description": "错误envelope数据结构。"
      },
      "OwnerCommunicationCenterConversationListEnvelope": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OwnerCommunicationCenterSuccessEnvelopeBase"
          },
          {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterConversationListData",
                "description": "本次响应返回的业务数据。"
              }
            },
            "description": "conversationlistenvelope数据结构。"
          }
        ],
        "description": "conversationlistenvelope数据结构。"
      },
      "OwnerCommunicationCenterMessageListEnvelope": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OwnerCommunicationCenterSuccessEnvelopeBase"
          },
          {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterMessageListData",
                "description": "本次响应返回的业务数据。"
              }
            },
            "description": "消息listenvelope数据结构。"
          }
        ],
        "description": "消息listenvelope数据结构。"
      },
      "OwnerCommunicationCenterMessageEnvelope": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OwnerCommunicationCenterSuccessEnvelopeBase"
          },
          {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterChatMessage",
                "description": "本次响应返回的业务数据。"
              }
            },
            "description": "消息envelope数据结构。"
          }
        ],
        "description": "消息envelope数据结构。"
      },
      "OwnerCommunicationCenterReadEnvelope": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OwnerCommunicationCenterSuccessEnvelopeBase"
          },
          {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterReadState",
                "description": "本次响应返回的业务数据。"
              }
            },
            "description": "readenvelope数据结构。"
          }
        ],
        "description": "readenvelope数据结构。"
      },
      "OwnerCommunicationCenterRealtimeTicketEnvelope": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OwnerCommunicationCenterSuccessEnvelopeBase"
          },
          {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "data": {
                "$ref": "#/components/schemas/OwnerCommunicationCenterRealtimeTicket",
                "description": "本次响应返回的业务数据。"
              }
            },
            "description": "realtimeticketenvelope数据结构。"
          }
        ],
        "description": "realtimeticketenvelope数据结构。"
      },
      "OwnerAPIEncryptionBootstrap": {
        "type": "object",
        "required": [
          "version",
          "algorithm",
          "kid",
          "publicKeySpki",
          "policyVersion",
          "policyKnown",
          "requiredOperationIds"
        ],
        "properties": {
          "version": {
            "type": "string",
            "const": "1",
            "description": "传输加密协议版本。"
          },
          "algorithm": {
            "type": "string",
            "const": "RSA-OAEP-256+A256GCM",
            "description": "密钥封装与正文加密算法组合。"
          },
          "kid": {
            "type": "string",
            "description": "当前 API 加密公钥标识。"
          },
          "publicKeySpki": {
            "type": "string",
            "description": "未填充 Base64URL 编码的 RSA SubjectPublicKeyInfo DER。"
          },
          "policyVersion": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "策略快照版本。"
          },
          "policyKnown": {
            "type": "boolean",
            "description": "是否存在未超过最大陈旧期的有效后台策略快照；为 false 时 OPTIONAL 明文请求会返回 503。"
          },
          "requiredOperationIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "uniqueItems": true,
            "description": "当前必须使用报文加密的 operationId。"
          }
        },
        "additionalProperties": false,
        "description": "apiencryptionbootstrap数据结构。"
      },
      "OwnerErrorDetail": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "错误数据结构。"
      },
      "OwnerAccountType": {
        "x-dictionary-code": "ACCOUNT_TYPE",
        "x-dictionary-source": "CODE",
        "type": "string",
        "const": "OWNER",
        "description": "钱包所有者业务类型，OWNER 对应老板账户，SERVICE_PROVIDER 对应打手账户并限制充值能力。\n\n该值来自代码锁定字典 ACCOUNT_TYPE，随服务版本发布。"
      },
      "OwnerClientApplicationConfiguration": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "logoUrl"
        ],
        "description": "客户端品牌展示配置的稳定扩展区；首期未配置时字段为空。",
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 120,
            "description": "App 展示名称；首期尚未纳入配置域时为空。"
          },
          "logoUrl": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "maxLength": 2048,
            "description": "App Logo 的公开 HTTPS 地址；首期尚未纳入配置域时为空。"
          }
        }
      },
      "OwnerClientCapabilities": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "registration",
          "communication"
        ],
        "description": "客户端按功能分区的公开能力集合，后续能力以可选字段扩展。",
        "properties": {
          "registration": {
            "$ref": "#/components/schemas/OwnerClientRegistrationCapability",
            "description": "registration字段。"
          },
          "communication": {
            "$ref": "#/components/schemas/OwnerClientCommunicationCapability",
            "description": "communication字段。"
          }
        }
      },
      "OwnerCatalogGameRelation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "code",
          "name",
          "status"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "code": {
            "type": "string",
            "description": "code 字段属于“游戏”内容类型。字段含义：稳定业务编码，如 delta-force。数据类型：唯一标识符。业务填写与默认规则：必填、唯一。业务约束与索引要求：小写短横线；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "name": {
            "type": "string",
            "description": "name 字段属于“游戏”内容类型。字段含义：游戏名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 80 个字符。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerCatalogStatus",
            "description": "status 字段属于“游戏”内容类型。字段含义：启用后才可在客户端展示。数据类型：枚举值。允许保存的枚举值为：ENABLED、DISABLED。业务填写与默认规则：默认 DISABLED。业务约束与索引要求：ENABLED/DISABLED；索引。当前 schema.json 已声明：默认值为 DISABLED。"
          }
        },
        "description": "catalog游戏关系数据结构。"
      },
      "OwnerCatalogAttributeRelation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "gameId",
          "code",
          "name",
          "status"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "gameId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联游戏的 Strapi 文档标识。"
          },
          "code": {
            "type": "string",
            "description": "业务编码；在对应资源类型内保持唯一。"
          },
          "name": {
            "type": "string",
            "description": "资源名称。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerCatalogStatus",
            "description": "该资源当前所处的业务状态。"
          }
        },
        "description": "catalogattribute关系数据结构。"
      },
      "OwnerGameAttributeNode": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "code",
          "name",
          "description",
          "selectionMode",
          "requiredOnCustomOrder",
          "matchingBehavior",
          "minSelections",
          "maxSelections",
          "icon",
          "assets",
          "metadata",
          "status",
          "sortOrder",
          "serviceTypes",
          "options",
          "children"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "code": {
            "type": "string",
            "maxLength": 80,
            "description": "code 字段属于“游戏”内容类型。字段含义：稳定业务编码，如 delta-force。数据类型：唯一标识符。业务填写与默认规则：必填、唯一。业务约束与索引要求：小写短横线；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "name": {
            "type": "string",
            "maxLength": 120,
            "description": "name 字段属于“游戏”内容类型。字段含义：游戏名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 80 个字符。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "该资源或记录的业务说明。"
          },
          "selectionMode": {
            "type": "string",
            "enum": [
              "GROUP",
              "SINGLE",
              "MULTIPLE"
            ],
            "description": "GROUP 仅用于分组，SINGLE 单选，MULTIPLE 多选。",
            "x-enum-descriptions": [
              "分组节点：分组节点。",
              "单选：单选。",
              "多选：多选。"
            ]
          },
          "requiredOnCustomOrder": {
            "type": "boolean",
            "description": "控制创建自定义订单时是否必须选择该属性；分组节点不得设置为必选。"
          },
          "matchingBehavior": {
            "type": "string",
            "enum": [
              "MATCH_REQUIRED",
              "INFORMATIONAL"
            ],
            "description": "MATCH_REQUIRED 要求参与打手严格匹配，INFORMATIONAL 仅记录和展示。",
            "x-enum-descriptions": [
              "参与严格匹配：参与严格匹配。",
              "仅记录展示：仅记录展示。"
            ]
          },
          "minSelections": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "MULTIPLE 多选属性允许选择的最少选项数；为空时根据下单必选配置自动推导。"
          },
          "maxSelections": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "description": "MULTIPLE 多选属性允许选择的最多选项数；为空表示不设置额外数量上限。"
          },
          "icon": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerGameAttributeAsset"
              },
              {
                "type": "null"
              }
            ],
            "description": "icon 字段属于“游戏”内容类型。字段含义：客户端图标。数据类型：单文件媒体文件（仅允许图片）。业务填写与默认规则：必填。业务约束与索引要求：仅图片。当前 schema.json 已声明：模型层声明为必填。"
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeAsset"
            },
            "description": "assets字段。"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true,
            "description": "metadata字段。"
          },
          "status": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ],
            "description": "status 字段属于“游戏”内容类型。字段含义：启用后才可在客户端展示。数据类型：枚举值。允许保存的枚举值为：ENABLED、DISABLED。业务填写与默认规则：默认 DISABLED。业务约束与索引要求：ENABLED/DISABLED；索引。当前 schema.json 已声明：默认值为 DISABLED。",
            "x-enum-descriptions": [
              "启用/上架：允许展示和新建订单。",
              "禁用/下架：不允许新建订单，历史快照保留。"
            ]
          },
          "sortOrder": {
            "type": "integer",
            "minimum": 0,
            "description": "sortOrder 字段属于“游戏”内容类型。字段含义：排序值，越小越靠前。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 0。"
          },
          "serviceTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCatalogServiceTypeRelation"
            },
            "description": "套餐适用的服务类型，可为空且支持多选；为空表示不限制服务类型。"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeOption"
            },
            "description": "options 字段属于“套餐下单资料字段”内容类型。字段含义：单选项。数据类型：JSON 结构数据。该字段以 JSON 结构保存，写入和读取时必须遵循对应业务服务定义的数据结构，不应存放未约定的敏感明文。业务填写与默认规则：SINGLE_SELECT 必填。业务约束与索引要求：数组项 {value,label}；value 唯一。"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeNode"
            },
            "description": "children字段。"
          }
        },
        "description": "游戏attributenode数据结构。"
      },
      "OwnerGameAttributeOptionLink": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "parentOptionId",
          "childOptionId",
          "status",
          "sortOrder"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "parentOptionId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "parentoption标识字段。"
          },
          "childOptionId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "childoption标识字段。"
          },
          "status": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ],
            "description": "父子选项约束的启停状态；停用后不再限制公开树中的新订单属性选择。",
            "x-enum-descriptions": [
              "启用/上架：允许展示和新建订单。",
              "禁用/下架：不允许新建订单，历史快照保留。"
            ]
          },
          "sortOrder": {
            "type": "integer",
            "minimum": 0,
            "description": "同组父子选项约束的稳定返回排序值，数值越小越先用于客户端展示。"
          }
        },
        "description": "游戏attributeoptionlink数据结构。"
      },
      "OwnerCatalogServiceTypeRelation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "code",
          "name",
          "status"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "code": {
            "type": "string",
            "description": "服务类型的全局稳定编码；服务类型独立于游戏，编码在全部服务类型中全局唯一并用于接口筛选。"
          },
          "name": {
            "type": "string",
            "description": "name 字段属于“服务类型”内容类型。字段含义：服务名称，如跑刀、段位代练、陪玩。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 80 个字符。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerCatalogStatus",
            "description": "status 字段属于“服务类型”内容类型。字段含义：是否允许展示和下单。数据类型：枚举值。允许保存的枚举值为：ENABLED、DISABLED。业务填写与默认规则：默认 DISABLED。业务约束与索引要求：ENABLED/DISABLED；索引。当前 schema.json 已声明：默认值为 DISABLED。"
          }
        },
        "description": "catalog服务类型关系数据结构。"
      },
      "OwnerMoneyMinor": {
        "type": "string",
        "pattern": "^(0|[1-9][0-9]*)$",
        "description": "人民币分，十进制字符串"
      },
      "OwnerPackageFieldDefinition": {
        "type": "object",
        "properties": {
          "fieldKey": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_]{1,49}$",
            "description": "fieldKey 字段属于“套餐下单资料字段”内容类型。字段含义：稳定字段键，不随展示文案修改。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：格式 [a-z][a-z0-9_]{1,49}。当前 schema.json 已声明：模型层声明为必填。"
          },
          "label": {
            "type": "string",
            "description": "label 字段属于“套餐下单资料字段”内容类型。字段含义：表单字段名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 80 个字符。"
          },
          "fieldType": {
            "type": "string",
            "enum": [
              "TEXT",
              "PASSWORD",
              "SINGLE_SELECT",
              "IMAGE"
            ],
            "description": "fieldType 字段属于“套餐下单资料字段”内容类型。字段含义：字段类型。数据类型：枚举值。允许保存的枚举值为：TEXT、PASSWORD、SINGLE_SELECT、IMAGE。业务填写与默认规则：必填。业务约束与索引要求：TEXT/PASSWORD/SINGLE_SELECT/IMAGE。当前 schema.json 已声明：模型层声明为必填。",
            "x-enum-descriptions": [
              "文本：文本。",
              "密码：密码。",
              "单选：单选。",
              "图片：图片。"
            ]
          },
          "required": {
            "type": "boolean",
            "description": "required 字段属于“套餐下单资料字段”内容类型。字段含义：是否必填。数据类型：布尔值。业务填写与默认规则：默认 false。当前 schema.json 已声明：默认值为 false。"
          },
          "sensitive": {
            "type": "boolean",
            "description": "sensitive 字段属于“套餐下单资料字段”内容类型。字段含义：是否按敏感资料加密与审计；PASSWORD 必须为 true。数据类型：布尔值。业务填写与默认规则：默认 false。当前 schema.json 已声明：默认值为 false。"
          },
          "placeholder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "placeholder 字段属于“套餐下单资料字段”内容类型。字段含义：输入提示。数据类型：字符串。业务填写与默认规则：可空。业务约束与索引要求：最多 200 字符。当前 schema.json 已声明：最多 200 个字符。"
          },
          "helpText": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "helpText 字段属于“套餐下单资料字段”内容类型。字段含义：字段说明。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 500 字符。当前 schema.json 已声明：最多 500 个字符。"
          },
          "options": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string",
                  "description": "value 字段属于“动态字典项”内容类型。字段含义：业务数据实际保存和接口传输的稳定枚举值。数据类型：字符串。业务填写与默认规则：必填，创建后不可修改。业务约束与索引要求：仅允许 1-80 位大写字母、数字和下划线。"
                },
                "label": {
                  "type": "string",
                  "description": "label 字段属于“套餐下单资料字段”内容类型。字段含义：表单字段名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 80 个字符。"
                }
              },
              "additionalProperties": false,
              "required": [
                "value",
                "label"
              ],
              "description": "套餐字段definition数据结构。"
            },
            "description": "options 字段属于“套餐下单资料字段”内容类型。字段含义：单选项。数据类型：JSON 结构数据。该字段以 JSON 结构保存，写入和读取时必须遵循对应业务服务定义的数据结构，不应存放未约定的敏感明文。业务填写与默认规则：SINGLE_SELECT 必填。业务约束与索引要求：数组项 {value,label}；value 唯一。"
          },
          "validationRules": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "validationRules 字段属于“套餐下单资料字段”内容类型。字段含义：字段校验规则。数据类型：JSON 结构数据。该字段以 JSON 结构保存，写入和读取时必须遵循对应业务服务定义的数据结构，不应存放未约定的敏感明文。业务填写与默认规则：默认 {}。业务约束与索引要求：仅允许 minLength/maxLength/minCount/maxCount。当前 schema.json 已声明：默认值为 {}。"
          },
          "sortOrder": {
            "type": "integer",
            "description": "sortOrder 字段属于“套餐下单资料字段”内容类型。字段含义：表单排序。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 0。"
          }
        },
        "additionalProperties": false,
        "required": [
          "fieldKey",
          "label",
          "fieldType",
          "required",
          "sensitive",
          "options",
          "validationRules",
          "sortOrder"
        ],
        "description": "套餐字段definition数据结构。"
      },
      "OwnerServiceProviderLevel": {
        "x-dictionary-code": "SERVICE_PROVIDER_LEVEL",
        "x-dictionary-source": "DATABASE",
        "type": "string",
        "description": "打手五级成长等级：青铜、白银、黄金、铂金、钻石；由成长值规则自动升降级，后台字典用于展示。\n\n该值来自数据库动态字典 SERVICE_PROVIDER_LEVEL，不在文档中固化取值；请通过当前调用面的公开字典接口查询可用项。"
      },
      "OwnerServiceProviderCapabilitySummary": {
        "type": "object",
        "properties": {
          "gameId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "关联游戏的 Strapi 文档标识。"
          },
          "gameName": {
            "type": [
              "string",
              "null"
            ],
            "description": "关联游戏的名称快照。"
          },
          "games": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "documentId",
                "name"
              ],
              "properties": {
                "documentId": {
                  "$ref": "#/components/schemas/OwnerDocumentId",
                  "description": "Strapi 文档标识；用于后续读取或修改该资源。"
                },
                "name": {
                  "type": "string",
                  "description": "资源名称。"
                }
              },
              "description": "服务提供者能力数据结构。"
            },
            "description": "games字段。"
          },
          "serviceTypeId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联服务类型的 Strapi 文档标识。"
          },
          "serviceTypeName": {
            "type": "string",
            "description": "关联服务类型的名称快照。"
          }
        },
        "additionalProperties": false,
        "required": [
          "gameId",
          "gameName",
          "games",
          "serviceTypeId",
          "serviceTypeName"
        ],
        "description": "服务提供者能力数据结构。"
      },
      "OwnerServiceProviderShowcaseItem": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "itemType",
          "title",
          "description",
          "imageUrl",
          "achievedAt"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "itemType": {
            "type": "string",
            "enum": [
              "PHOTO",
              "ACHIEVEMENT"
            ],
            "description": "itemType 字段属于“打手展示素材”内容类型。字段含义：展示类型。数据类型：枚举值。允许保存的枚举值为：PHOTO、ACHIEVEMENT。业务填写与默认规则：必填。业务约束与索引要求：PHOTO/ACHIEVEMENT。当前 schema.json 已声明：模型层声明为必填。",
            "x-enum-descriptions": [
              "照片：照片。",
              "战绩：战绩。"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "description": "title 字段属于“打手展示素材”内容类型。字段含义：标题。数据类型：字符串。业务填写与默认规则：可空。业务约束与索引要求：最多 120 字符。当前 schema.json 已声明：最多 120 个字符。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "description 字段属于“打手展示素材”内容类型。字段含义：说明。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 1000 字符。当前 schema.json 已声明：最多 1000 个字符。"
          },
          "imageUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "image地址字段。"
          },
          "achievedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date",
            "description": "achievedAt 字段属于“打手展示素材”内容类型。字段含义：战绩日期。数据类型：日期。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。"
          }
        },
        "description": "服务提供者展示素材数据结构。"
      },
      "OwnerServiceProviderGameDomain": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "gameId",
          "gameName",
          "serviceTypes",
          "attributes"
        ],
        "properties": {
          "gameId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联游戏的 Strapi 文档标识。"
          },
          "gameName": {
            "type": "string",
            "description": "关联游戏的名称快照。"
          },
          "serviceTypes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "serviceTypeId",
                "serviceTypeName"
              ],
              "properties": {
                "serviceTypeId": {
                  "$ref": "#/components/schemas/OwnerDocumentId",
                  "description": "关联服务类型的 Strapi 文档标识。"
                },
                "serviceTypeName": {
                  "type": "string",
                  "description": "关联服务类型的名称快照。"
                }
              },
              "description": "服务提供者游戏domain数据结构。"
            },
            "description": "套餐适用的服务类型，可为空且支持多选；为空表示不限制服务类型。"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderGameDomainAttribute"
            },
            "description": "attributes字段。"
          }
        },
        "description": "服务提供者游戏domain数据结构。"
      },
      "OwnerSimpleServiceProvider": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "userId": {
            "type": "string",
            "pattern": "^D[0-9]{5,}$",
            "description": "用户标识字段。"
          },
          "serviceProviderNo": {
            "type": "string",
            "pattern": "^D[0-9]{5,}$",
            "description": "打手业务编号；格式为 D 加至少 5 位十进制顺序号，生成时跳过豹子号和完整升降连号，可用于管理端和老板端查询。"
          },
          "displayName": {
            "type": "string",
            "description": "displayName 字段属于“打手资料”内容类型。字段含义：老板与订单中展示的名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-40 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 40 个字符。"
          },
          "avatarUrl": {
            "description": "打手头像地址；未设置时为 null。",
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "averageRating": {
            "type": "string",
            "pattern": "^[0-5]\\.[0-9]{2}$",
            "description": "可见评价平均分，固定保留两位小数。"
          },
          "completedOrderCount": {
            "type": "integer",
            "minimum": 0,
            "description": "已完成订单数。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "userId",
          "serviceProviderNo",
          "displayName"
        ],
        "description": "simple服务提供者数据结构。"
      },
      "OwnerReviewStatus": {
        "x-dictionary-code": "REVIEW_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "VISIBLE",
          "HIDDEN",
          "DELETED"
        ],
        "description": "审核状态数据结构。\n\nstatus 字段属于“订单评价”内容类型。\n\n该值来自代码锁定字典 REVIEW_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "可见：计入公开评分。",
          "隐藏：违规处理，不删除。",
          "已软删除：已软删除。"
        ]
      },
      "OwnerOrderType": {
        "x-dictionary-code": "ORDER_TYPE",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "STANDARD",
          "CUSTOM"
        ],
        "description": "订单类型数据结构。\n\norderType 字段属于“订单主表”内容类型。\n\n该值来自代码锁定字典 ORDER_TYPE，随服务版本发布。",
        "x-enum-descriptions": [
          "标准订单：套餐固定价格。",
          "自定义订单：后台人工报价。"
        ]
      },
      "OwnerOrderStatus": {
        "x-dictionary-code": "ORDER_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "PENDING_QUOTE",
          "PENDING_OWNER_CONFIRMATION",
          "PENDING_PAYMENT",
          "PENDING_ASSIGNMENT",
          "PENDING_SERVICE_PROVIDER_ACCEPTANCE",
          "WAITING_START",
          "IN_PROGRESS",
          "PLATFORM_REVIEW",
          "PENDING_OWNER_ACCEPTANCE",
          "ACCEPTANCE_ARBITRATION",
          "COMPLETED",
          "AFTER_SALE_PROCESSING",
          "REFUND_PENDING",
          "PARTIALLY_REFUNDED",
          "REFUNDED",
          "CLOSED"
        ],
        "description": "订单状态数据结构。\n\n进入本次售后前的订单状态；PARTIALLY_REFUNDED 支持已部分退款订单再次发起新的订单级售后。\n\n该值来自代码锁定字典 ORDER_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "待报价：老板已提交自定义需求，后台尚未提交有效报价。",
          "待老板确认报价：后台已有当前有效报价，等待老板接受报价后进入付款。",
          "待付款：订单金额与关键业务快照已确定，等待老板完成支付。",
          "待派单：订单已确认收款，等待后台安排符合能力要求的打手。",
          "待打手确认派单：启用派单确认模式时，等待当前主打手确认或拒绝首次派单。",
          "待开始：后台已完成派单，等待主打手主动开始或系统到时自动开始履约。",
          "履约中：订单已经正式开始，参与打手可以按权限上报进度并完成服务。",
          "待平台初验：主打手已提交整单完工，等待平台验收岗位审核完工材料。",
          "待老板验收：平台初验已经通过，等待老板确认结果或在允许范围内提出异议。",
          "验收仲裁中：老板再次拒绝验收，等待符合职责隔离要求的平台人员作出仲裁。",
          "已完成：订单履约和验收已经完成，打手报酬仍按售后期限规则冻结或释放。",
          "售后处理中：订单存在正在处理的售后案件，相关结算按规则保持冻结。",
          "退款执行中：退款方案已经生效，支付中心正在执行、查询或恢复渠道退款。",
          "已部分退款：累计退款小于原支付金额，订单仍保留部分实际支付金额和对应结算事实。",
          "已全额退款：累计退款等于原支付金额，订单退款及关联资金冲正已经闭环。",
          "已关闭：未完成支付的订单因老板取消、报价取消或付款超时而终止，不表示已付款订单退款。"
        ]
      },
      "OwnerOrderCatalogSnapshot": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "game",
          "serviceType",
          "package",
          "gameAttributes"
        ],
        "properties": {
          "game": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerCatalogSnapshotEntity"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单选择的游戏；通用未绑定套餐允许为空，历史展示始终以 catalogSnapshot 为准。"
          },
          "serviceType": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerCatalogSnapshotEntity"
              },
              {
                "type": "null"
              }
            ],
            "description": "serviceType 字段属于“订单主表”内容类型。字段含义：服务类型。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“服务类型”。业务填写与默认规则：CUSTOM 可空。业务约束与索引要求：索引。"
          },
          "package": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerCatalogSnapshotPackage"
              },
              {
                "type": "null"
              }
            ],
            "description": "package 字段属于“订单主表”内容类型。字段含义：标准套餐；CUSTOM 必须为空。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“标准套餐”。业务填写与默认规则：STANDARD 必填。业务约束与索引要求：索引。"
          },
          "gameAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeSelectionSnapshot"
            },
            "description": "游戏attributes字段。"
          }
        },
        "description": "订单catalogsnapshot数据结构。"
      },
      "OwnerOrderRequirementSummary": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "targetResult",
          "description",
          "ownerExpectedAt"
        ],
        "properties": {
          "targetResult": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "targetResult 字段属于“订单主表”内容类型。字段含义：老板期望目标。数据类型：长文本。业务填写与默认规则：CUSTOM 必填。业务约束与索引要求：最多 2000 字符。当前 schema.json 已声明：最多 2000 个字符。"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "该资源或记录的业务说明。"
          },
          "ownerExpectedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "ownerExpectedAt 字段属于“订单主表”内容类型。字段含义：老板期望完成时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：UTC。"
          }
        },
        "description": "订单需求数据结构。"
      },
      "OwnerGameAttributeSelectionSnapshot": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "attributeId",
          "attributeCode",
          "attributeName",
          "optionId",
          "optionCode",
          "optionName",
          "path",
          "matchingBehavior"
        ],
        "properties": {
          "attributeId": {
            "type": [
              "string",
              "null"
            ],
            "description": "attribute标识字段。"
          },
          "attributeCode": {
            "type": "string",
            "description": "attribute编码字段。"
          },
          "attributeName": {
            "type": "string",
            "description": "attribute名称字段。"
          },
          "optionId": {
            "type": [
              "string",
              "null"
            ],
            "description": "option标识字段。"
          },
          "optionCode": {
            "type": "string",
            "description": "option编码字段。"
          },
          "optionName": {
            "type": "string",
            "description": "option名称字段。"
          },
          "path": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "documentId",
                "code",
                "name"
              ],
              "properties": {
                "documentId": {
                  "$ref": "#/components/schemas/OwnerDocumentId",
                  "description": "Strapi 文档标识；用于后续读取或修改该资源。"
                },
                "code": {
                  "type": "string",
                  "description": "code 字段属于“游戏”内容类型。字段含义：稳定业务编码，如 delta-force。数据类型：唯一标识符。业务填写与默认规则：必填、唯一。业务约束与索引要求：小写短横线；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
                },
                "name": {
                  "type": "string",
                  "description": "name 字段属于“游戏”内容类型。字段含义：游戏名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 80 个字符。"
                }
              },
              "description": "游戏attributeselectionsnapshot数据结构。"
            },
            "description": "从全局根目录到当前文件夹的展示路径快照；重命名或移动时同步更新全部后代路径。"
          },
          "matchingBehavior": {
            "type": "string",
            "enum": [
              "MATCH_REQUIRED",
              "INFORMATIONAL"
            ],
            "description": "MATCH_REQUIRED 要求参与打手严格匹配，INFORMATIONAL 仅记录和展示。",
            "x-enum-descriptions": [
              "参与严格匹配：参与严格匹配。",
              "仅记录展示：仅记录展示。"
            ]
          }
        },
        "description": "游戏attributeselectionsnapshot数据结构。"
      },
      "OwnerServiceValueView": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "fieldKey": {
            "type": "string",
            "description": "fieldKey 字段属于“订单服务资料值”内容类型。字段含义：字段稳定键。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：最大 50。当前 schema.json 已声明：模型层声明为必填；最多 50 个字符。"
          },
          "label": {
            "type": "string",
            "description": "面向用户展示的字段或选项名称。"
          },
          "fieldType": {
            "type": "string",
            "enum": [
              "TEXT",
              "PASSWORD",
              "SINGLE_SELECT",
              "IMAGE"
            ],
            "description": "fieldType 字段属于“套餐下单资料字段”内容类型。字段含义：字段类型。数据类型：枚举值。允许保存的枚举值为：TEXT、PASSWORD、SINGLE_SELECT、IMAGE。业务填写与默认规则：必填。业务约束与索引要求：TEXT/PASSWORD/SINGLE_SELECT/IMAGE。当前 schema.json 已声明：模型层声明为必填。",
            "x-enum-descriptions": [
              "文本：文本。",
              "密码：密码。",
              "单选：单选。",
              "图片：图片。"
            ]
          },
          "sensitive": {
            "type": "boolean",
            "description": "sensitive 字段属于“订单服务资料值”内容类型。字段含义：是否敏感。数据类型：布尔值。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "maskedValue": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "maskedValue 字段属于“订单服务资料值”内容类型。字段含义：列表与默认详情展示的掩码值。数据类型：字符串。业务填写与默认规则：敏感值必填。业务约束与索引要求：最多 200。"
          },
          "canReveal": {
            "type": "boolean",
            "description": "当前调用方是否有权解密查看该敏感服务值。"
          },
          "value": {
            "type": [
              "string",
              "null"
            ],
            "description": "value 字段属于“动态字典项”内容类型。字段含义：业务数据实际保存和接口传输的稳定枚举值。数据类型：字符串。业务填写与默认规则：必填，创建后不可修改。业务约束与索引要求：仅允许 1-80 位大写字母、数字和下划线。"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerBusinessFile"
            },
            "description": "files 字段属于“订单服务资料值”内容类型。字段含义：图片型资料。数据类型：多对多关联关系。该字段建立多对多关联，关联目标为“业务文件包装记录”。业务填写与默认规则：IMAGE 使用。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "fieldKey",
          "label",
          "fieldType",
          "sensitive",
          "canReveal"
        ],
        "description": "服务值数据结构。"
      },
      "OwnerAssignmentSummary": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "sequence",
          "action",
          "fromServiceProvider",
          "toServiceProvider",
          "progressAtAction",
          "reason",
          "newDeadlineAt",
          "appliedAt"
        ],
        "properties": {
          "sequence": {
            "type": "integer",
            "minimum": 1,
            "description": "sequence 字段属于“派单与改派记录”内容类型。字段含义：派单序号。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：从 1 递增。当前 schema.json 已声明：模型层声明为必填。"
          },
          "action": {
            "$ref": "#/components/schemas/OwnerAssignmentAction",
            "description": "action 字段属于“派单与改派记录”内容类型。字段含义：动作。数据类型：枚举值。允许保存的枚举值为：ASSIGN、REASSIGN、UNASSIGN。业务填写与默认规则：必填。业务约束与索引要求：ASSIGN/REASSIGN/UNASSIGN。当前 schema.json 已声明：模型层声明为必填。"
          },
          "fromServiceProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
              },
              {
                "type": "null"
              }
            ],
            "description": "fromServiceProvider 字段属于“派单与改派记录”内容类型。字段含义：原打手。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：改派/取消时必填。业务约束与索引要求：索引。"
          },
          "toServiceProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
              },
              {
                "type": "null"
              }
            ],
            "description": "toServiceProvider 字段属于“派单与改派记录”内容类型。字段含义：新打手。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：派单/改派时必填。业务约束与索引要求：索引。"
          },
          "progressAtAction": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "progressAtAction 字段属于“派单与改派记录”内容类型。字段含义：执行动作时订单进度。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：0-100。当前 schema.json 已声明：模型层声明为必填；最小值为 0；最大值为 100。"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "老板发起改派时必须填写的业务原因，客服审核和后续派单操作均可查看该原始说明。"
          },
          "newDeadlineAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "newDeadlineAt 字段属于“派单与改派记录”内容类型。字段含义：仅管理员明确填写时调整期限。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：UTC。"
          },
          "appliedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "审核通过后新打手在最终派单事务中实际生效的时间，此时才消耗一次改派次数。"
          }
        },
        "description": "派单数据结构。"
      },
      "OwnerServiceProviderParticipant": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "serviceProvider",
          "participationType",
          "status",
          "isLead",
          "joinedAt",
          "leftAt"
        ],
        "properties": {
          "serviceProvider": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerSimpleServiceProvider"
              },
              {
                "type": "null"
              }
            ],
            "description": "订单参与记录关联的打手资料摘要。"
          },
          "participationType": {
            "type": "string",
            "enum": [
              "INITIAL",
              "REPLACEMENT",
              "COLLABORATOR"
            ],
            "x-enum-descriptions": [
              "初始主打手",
              "改派后加入的打手",
              "共同履约打手"
            ],
            "description": "INITIAL 为首次派单，REPLACEMENT 为换手加入，COLLABORATOR 为共同履约加入。"
          },
          "status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "REPLACED"
            ],
            "x-enum-descriptions": [
              "当前参与履约",
              "已退出或被替换"
            ],
            "description": "该资源当前所处的业务状态。"
          },
          "isLead": {
            "type": "boolean",
            "description": "是否为当前主打手。"
          },
          "joinedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "joinedat字段。"
          },
          "leftAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "leftat字段。"
          }
        },
        "description": "服务提供者participant数据结构。"
      },
      "OwnerProgressSummary": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "currentPercent",
          "lastProgressAt",
          "latestRecord"
        ],
        "properties": {
          "currentPercent": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "current百分比字段。"
          },
          "lastProgressAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "lastProgressAt 字段属于“订单主表”内容类型。字段含义：最近一次有效进度上报时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：索引。"
          },
          "latestRecord": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerProgressRecord"
              },
              {
                "type": "null"
              }
            ],
            "description": "latest记录字段。"
          }
        },
        "description": "进度数据结构。"
      },
      "OwnerCompletionSubmission": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "submissionNo": {
            "type": "string",
            "description": "submissionNo 字段属于“完工申请”内容类型。字段含义：完工申请编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "attemptNo": {
            "type": "integer",
            "minimum": 1,
            "description": "attemptNo 字段属于“完工申请”内容类型。字段含义：第几次完工申请。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：从 1 递增。当前 schema.json 已声明：模型层声明为必填。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerCompletionStatus",
            "description": "status 字段属于“完工申请”内容类型。字段含义：客服初验状态。数据类型：枚举值。允许保存的枚举值为：PENDING_REVIEW、APPROVED、REJECTED。业务填写与默认规则：默认 PENDING_REVIEW。业务约束与索引要求：PENDING_REVIEW/APPROVED/REJECTED；索引。当前 schema.json 已声明：默认值为 PENDING_REVIEW。"
          },
          "description": {
            "type": "string",
            "description": "description 字段属于“完工申请”内容类型。字段含义：完工说明。数据类型：长文本。业务填写与默认规则：必填。业务约束与索引要求：1-5000 字符。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 5000 个字符。"
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerBusinessFile"
            },
            "minItems": 1,
            "maxItems": 9,
            "description": "完工申请随附的结构化凭证和业务文件。"
          },
          "submittedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "submittedAt 字段属于“完工申请”内容类型。字段含义：提交时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "reviewNote": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "reviewNote 字段属于“完工申请”内容类型。字段含义：客服验收备注。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 3000 字符。当前 schema.json 已声明：最多 3000 个字符。"
          },
          "rejectionReason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "rejectionReason 字段属于“完工申请”内容类型。字段含义：驳回原因与补充要求。数据类型：长文本。业务填写与默认规则：REJECTED 必填。业务约束与索引要求：最多 3000 字符。当前 schema.json 已声明：最多 3000 个字符。"
          },
          "reviewedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "reviewedAt 字段属于“完工申请”内容类型。字段含义：审核时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：索引。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "submissionNo",
          "attemptNo",
          "status",
          "description",
          "evidence",
          "submittedAt"
        ],
        "description": "完成submission数据结构。"
      },
      "OwnerPlatformReviewSummary": {
        "type": "object",
        "description": "平台初验状态摘要。",
        "additionalProperties": false,
        "required": [
          "status",
          "submittedAt",
          "acceptedAt"
        ],
        "properties": {
          "status": {
            "description": "最近一次完工申请的初验状态；尚无初验结果时为 null。",
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerCompletionStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "submittedAt": {
            "description": "完工申请提交时间；尚未提交时为 null。",
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "acceptedAt": {
            "description": "平台初验通过时间；尚未通过时为 null。",
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "OwnerAcceptanceSummary": {
        "type": "object",
        "description": "老板验收状态摘要。",
        "additionalProperties": false,
        "required": [
          "deadlineAt",
          "acceptedAt",
          "source"
        ],
        "properties": {
          "deadlineAt": {
            "description": "老板验收截止时间；尚未进入老板验收阶段时为 null。",
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "acceptedAt": {
            "description": "老板确认验收时间；尚未验收时为 null。",
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "description": "验收来源；OWNER 表示老板主动确认，SYSTEM_TIMEOUT 表示系统超时自动验收，尚未验收时为 null。",
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "OWNER",
                  "SYSTEM_TIMEOUT"
                ],
                "description": "归属主体acceptance数据结构。",
                "x-enum-descriptions": [
                  "取值 OWNER。",
                  "取值 SYSTEM_TIMEOUT。"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "OwnerSettlementPreview": {
        "type": "object",
        "properties": {
          "fulfillmentMode": {
            "type": "string",
            "enum": [
              "SINGLE",
              "MULTI"
            ],
            "description": "履约模式。SINGLE 包含单打手以及先后换打手的订单；MULTI 仅表示多个打手同时协作，不用于标记改派。",
            "x-enum-descriptions": [
              "单打手履约：单打手履约。",
              "多打手共同履约：多打手共同履约。"
            ]
          },
          "collaborationSharesConfigured": {
            "type": "boolean",
            "description": "兼容字段；所有订单始终为 true，不再存在运行时待确认比例状态。"
          },
          "costDeductionRateBps": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10000,
            "description": "costdeduction比例bps字段。"
          },
          "orderBaseAmountMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "记录生成或退款重算结算时的订单实际保留金额快照，统一使用人民币分并作为成本扣除层计算基数。"
          },
          "costPoolAmountMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "costpool金额minor字段。"
          },
          "estimatedServiceProviderSettlementTotalMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "预计服务提供者结算总数minor字段。"
          },
          "allocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerSettlementPreviewAllocation"
            },
            "description": "allocations字段。"
          }
        },
        "additionalProperties": false,
        "required": [
          "fulfillmentMode",
          "collaborationSharesConfigured",
          "costDeductionRateBps",
          "orderBaseAmountMinor",
          "costPoolAmountMinor",
          "estimatedServiceProviderSettlementTotalMinor",
          "allocations"
        ],
        "description": "结算preview数据结构。"
      },
      "OwnerStatusHistory": {
        "type": "object",
        "properties": {
          "sequence": {
            "type": "integer",
            "minimum": 1,
            "description": "sequence 字段属于“订单状态历史”内容类型。字段含义：状态时间线序号。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：从 1 递增。当前 schema.json 已声明：模型层声明为必填。"
          },
          "fromStatus": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerOrderStatus"
              },
              {
                "type": "null"
              }
            ],
            "description": "创建时为空。其余记录保存本次命令执行前的订单状态，用于审计完整状态迁移链路且不得由调用端自行填写。"
          },
          "toStatus": {
            "$ref": "#/components/schemas/OwnerOrderStatus",
            "description": "目标状态。保存本次业务命令成功提交后的订单状态，用于审计、通知分发和异常状态链路追踪。"
          },
          "eventCode": {
            "type": "string",
            "description": "eventCode 字段属于“订单状态历史”内容类型。字段含义：触发命令，如 quote.accepted。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：最大 100；索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "reason 字段属于“订单状态历史”内容类型。字段含义：业务原因。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 2000 字符。当前 schema.json 已声明：最多 2000 个字符。"
          },
          "actorName": {
            "type": "string",
            "description": "执行该操作的老板、打手或管理员名称快照。"
          },
          "occurredAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "occurredAt 字段属于“订单状态历史”内容类型。字段含义：发生时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          }
        },
        "additionalProperties": false,
        "required": [
          "sequence",
          "toStatus",
          "eventCode",
          "actorName",
          "occurredAt"
        ],
        "description": "状态history数据结构。"
      },
      "OwnerServiceProviderMatchReason": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SERVICE_PROVIDER_UNAVAILABLE",
              "GAME_MISMATCH",
              "SERVICE_TYPE_MISMATCH",
              "ATTRIBUTE_OPTION_MISMATCH"
            ],
            "description": "当前对象的业务类型或载荷分类。",
            "x-enum-descriptions": [
              "取值 SERVICE_PROVIDER_UNAVAILABLE。",
              "取值 GAME_MISMATCH。",
              "取值 SERVICE_TYPE_MISMATCH。",
              "取值 ATTRIBUTE_OPTION_MISMATCH。"
            ]
          },
          "missingOptionIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerDocumentId"
            },
            "description": "missingoption标识列表字段。"
          }
        },
        "description": "服务提供者match原因数据结构。"
      },
      "OwnerQuoteStatus": {
        "x-dictionary-code": "QUOTE_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "ACTIVE",
          "SUPERSEDED",
          "ACCEPTED",
          "CANCELLED",
          "EXPIRED"
        ],
        "description": "报价状态数据结构。\n\n报价状态；ACTIVE 报价超过 expiresAt 后由调度器改为 EXPIRED。\n\n该值来自代码锁定字典 QUOTE_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "当前有效：老板可接受。",
          "已被替代：新报价提交后旧报价失效。",
          "已接受：老板已接受并固化到订单。",
          "已取消：需求关闭。",
          "已过期：报价超过有效期限且老板尚未接受。"
        ]
      },
      "OwnerProgressRecordType": {
        "x-dictionary-code": "PROGRESS_RECORD_TYPE",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "SERVICE_PROVIDER_REPORT",
          "ADMIN_CORRECTION",
          "ADMIN_PROXY_REPORT"
        ],
        "description": "进度记录类型数据结构。\n\n进度记录来源；ADMIN_PROXY_REPORT 表示客服代打手上报，不与后台纠正混用。\n\n该值来自代码锁定字典 PROGRESS_RECORD_TYPE，随服务版本发布。",
        "x-enum-descriptions": [
          "打手上报：进度不得回退。",
          "后台纠正：可回退，必须填写原因。",
          "客服代打手上报：客服代打手上报。"
        ]
      },
      "OwnerServiceProviderChangeStatus": {
        "x-dictionary-code": "SERVICE_PROVIDER_CHANGE_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "PENDING_OWNER",
          "APPROVED",
          "REJECTED",
          "CANCELLED",
          "EXPIRED"
        ],
        "description": "服务提供者change状态数据结构。\n\nstatus 字段属于“指定打手变更同意单”内容类型。\n\n该值来自代码锁定字典 SERVICE_PROVIDER_CHANGE_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "待老板确认：兼容旧指定打手变更流程；新后台改派和新增打手不依赖老板确认。",
          "已同意：旧兼容变更请求已被老板同意。",
          "已拒绝：旧兼容变更请求已被老板拒绝。",
          "已取消：后台撤销旧兼容变更请求。",
          "已过期：旧兼容变更请求超过有效期。"
        ]
      },
      "OwnerAfterSaleStatus": {
        "x-dictionary-code": "AFTER_SALE_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "SUBMITTED",
          "ACCEPTED",
          "AWAITING_OWNER_EVIDENCE",
          "AWAITING_SERVICE_PROVIDER_EVIDENCE",
          "INVESTIGATING",
          "DECIDED",
          "AWAITING_SECOND_APPROVAL",
          "AWAITING_EXTERNAL_REFUND",
          "RESOLVED",
          "REJECTED",
          "CLOSED"
        ],
        "description": "售后sale状态数据结构。\n\n售后处理权威状态；高额退款首审后进入 AWAITING_SECOND_APPROVAL，二审通过后才可进入外部退款。\n\n该值来自代码锁定字典 AFTER_SALE_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "已提交：等待受理。",
          "已受理：客服售后岗位已领取。",
          "待老板补充：老板需追加材料。",
          "待打手补充：打手需追加材料。",
          "调查中：客服核验。",
          "已作出结论：非退款结论可直接结束。",
          "待第二人复核：1000 元及以上退款等待另一位管理员复核。",
          "待外部退款执行：退款决定已生效，等待支付中心通过余额或支付宝渠道执行。",
          "已解决：继续服务后再完成或其他结论完成。",
          "申诉驳回：恢复原订单状态。",
          "已关闭：异常关闭。"
        ]
      },
      "OwnerAfterSaleResolution": {
        "x-dictionary-code": "AFTER_SALE_RESOLUTION",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "CONTINUE_SERVICE",
          "REJECT_APPEAL",
          "PARTIAL_REFUND",
          "FULL_REFUND"
        ],
        "description": "售后sale处理方案数据结构。\n\nresolutionType 字段属于“售后申诉单”内容类型。\n\n该值来自代码锁定字典 AFTER_SALE_RESOLUTION，随服务版本发布。",
        "x-enum-descriptions": [
          "继续履约：订单回进行中。",
          "驳回申诉：恢复进入售后前状态。",
          "部分退款：固化全量打手冲正计划并在审批后原路退回部分金额。",
          "全额退款：全部参与打手自动使用 10000 冲正比例并在审批后退清剩余可退金额。"
        ]
      },
      "OwnerRefundExecutionBoundary": {
        "type": "object",
        "properties": {
          "implemented": {
            "type": "boolean",
            "const": true,
            "description": "当前版本是否已经实现该渠道执行能力。"
          },
          "state": {
            "type": "string",
            "enum": [
              "NOT_REQUESTED",
              "QUEUED",
              "PROCESSING",
              "RETRYING",
              "SUCCEEDED"
            ],
            "description": "成员在会话中的参与状态；枚举类型，ACTIVE 表示当前参与，LEFT 用于记录客服转派后的退出历史。",
            "x-enum-descriptions": [
              "未请求退款：未请求退款。",
              "已进入退款队列：已进入退款队列。",
              "退款处理中：退款处理中。",
              "退款等待重试：退款等待重试。",
              "退款已成功：退款已成功。"
            ]
          },
          "channel": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "BALANCE",
                  "ALIPAY"
                ],
                "description": "refundexecutionboundary数据结构。",
                "x-enum-descriptions": [
                  "使用平台钱包可用余额支付。",
                  "使用支付宝 App 支付。"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "本次支付使用的资金渠道。"
          },
          "completedAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "completedat字段。"
          }
        },
        "additionalProperties": false,
        "required": [
          "implemented",
          "state",
          "channel",
          "completedAt"
        ],
        "description": "refundexecutionboundary数据结构。"
      },
      "OwnerReferralCommission": {
        "type": "object",
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "commissionNo": {
            "type": "string",
            "description": "commissionNo 字段属于“首单推荐佣金”内容类型。字段含义：佣金编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：格式 RCyyyyMMdd + 8 位序列；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "orderId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "关联电竞订单的 Strapi 文档标识。"
          },
          "baseAmountMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "baseAmountMinor 字段属于“首单推荐佣金”内容类型。字段含义：订单实际保留金额。数据类型：大整数。业务填写与默认规则：必填。业务约束与索引要求：>=0；API 字符串。当前 schema.json 已声明：模型层声明为必填；最小值为 0。"
          },
          "rateBps": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10000,
            "description": "rateBps 字段属于“首单推荐佣金”内容类型。字段含义：关系建立时比例快照。数据类型：整数。业务填写与默认规则：必填。业务约束与索引要求：0-10000。当前 schema.json 已声明：模型层声明为必填；最小值为 0；最大值为 10000。"
          },
          "finalAmountMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "finalAmountMinor 字段属于“首单推荐佣金”内容类型。字段含义：最终应结提成。数据类型：大整数。业务填写与默认规则：必填。业务约束与索引要求：>=0；API 字符串。当前 schema.json 已声明：模型层声明为必填；最小值为 0。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerSettlementStatus",
            "description": "status 字段属于“首单推荐佣金”内容类型。字段含义：佣金状态。数据类型：枚举值。允许保存的枚举值为：PENDING、FROZEN、SETTLED、REVERSED、CANCELLED。业务填写与默认规则：默认 PENDING。业务约束与索引要求：PENDING/FROZEN/SETTLED/REVERSED/CANCELLED；索引。当前 schema.json 已声明：默认值为 PENDING。"
          },
          "generatedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "generatedAt 字段属于“首单推荐佣金”内容类型。字段含义：生成时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "settledAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "settledAt 字段属于“首单推荐佣金”内容类型。字段含义：线下结算时间。数据类型：日期时间。日期时间值应按系统统一时区规则写入和解析，避免以本地时区字符串产生业务歧义。业务填写与默认规则：可空。业务约束与索引要求：索引。"
          }
        },
        "additionalProperties": false,
        "required": [
          "documentId",
          "commissionNo",
          "orderId",
          "baseAmountMinor",
          "rateBps",
          "finalAmountMinor",
          "status",
          "generatedAt"
        ],
        "description": "推荐佣金数据结构。"
      },
      "OwnerDictionaryItem": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "value 字段属于“动态字典项”内容类型。字段含义：业务数据实际保存和接口传输的稳定枚举值。数据类型：字符串。业务填写与默认规则：必填，创建后不可修改。业务约束与索引要求：仅允许 1-80 位大写字母、数字和下划线。"
          },
          "label": {
            "type": "string",
            "description": "label 字段属于“动态字典项”内容类型。字段含义：面向用户和管理后台展示的简体中文名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-80 个字符，必须包含中文字符。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "description 字段属于“动态字典定义”内容类型。字段含义：解释该字典在本项目中的业务用途和使用边界。数据类型：长文本。业务填写与默认规则：可空。业务约束与索引要求：最多 1000 个字符，不得保存脚本、口令或其他敏感信息。"
          },
          "color": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^#[0-9A-F]{6}$",
            "description": "color 字段属于“动态字典项”内容类型。字段含义：列表标签和状态标识使用的展示颜色。数据类型：字符串。业务填写与默认规则：可空。业务约束与索引要求：填写时必须使用 #RRGGBB 格式，不参与任何业务状态判断。"
          },
          "sortOrder": {
            "type": "integer",
            "minimum": 0,
            "description": "sortOrder 字段属于“动态字典定义”内容类型。字段含义：管理后台和公开接口中的人工排序值，数值越小越靠前。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：必须大于或等于 0。"
          },
          "status": {
            "type": "string",
            "enum": [
              "DRAFT",
              "ENABLED",
              "DISABLED"
            ],
            "description": "status 字段属于“动态字典定义”内容类型。字段含义：控制整本动态字典是否可被查询和用于新数据校验。数据类型：基础设施枚举。允许值为 ENABLED、DISABLED。业务填写与默认规则：默认 ENABLED；停用不会删除历史字典项。",
            "x-enum-descriptions": [
              "草稿项，不对业务端开放。",
              "已启用，可供业务端使用。",
              "已停用，不允许新业务选择。"
            ]
          },
          "selectable": {
            "type": "boolean",
            "description": "该字典或字典项当前是否允许新业务选择。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "version 字段属于“动态字典定义”内容类型。字段含义：字典定义及其字典项发生变化时递增的乐观锁版本。数据类型：整数。业务填写与默认规则：默认 1，由服务端维护。业务约束与索引要求：必须大于或等于 1，客户端不得直接指定新版本。"
          },
          "extra": {
            "type": "object",
            "additionalProperties": true,
            "description": "extra 字段属于“动态字典项”内容类型。字段含义：为客户端展示预留的结构化扩展元数据。数据类型：JSON 对象。业务填写与默认规则：默认空对象。业务约束与索引要求：序列化后最多 4096 字节，不得保存脚本、口令或私密信息。"
          }
        },
        "required": [
          "value",
          "label",
          "sortOrder",
          "status",
          "selectable",
          "version",
          "extra"
        ],
        "additionalProperties": false,
        "description": "字典数据结构。"
      },
      "OwnerPaymentCenterNonnegativeMoneyMinor": {
        "type": "string",
        "pattern": "^[0-9]+$",
        "examples": [
          "0"
        ]
      },
      "OwnerCommunicationCenterSuccessEnvelopeBase": {
        "type": "object",
        "required": [
          "requestId",
          "meta",
          "error"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "description": "请求追踪标识。"
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "description": "响应附加信息；普通响应为空对象，消息幂等重试包含 duplicate。"
          },
          "error": {
            "type": "null",
            "description": "成功响应固定为 null。"
          }
        },
        "description": "是否成功envelopebase数据结构。"
      },
      "OwnerCommunicationCenterConversation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "type",
          "status",
          "orderNo",
          "assignmentSequence",
          "supportRound",
          "supportRoundOpenedAt",
          "counterpart",
          "participantReadStates",
          "assigneeAdminId",
          "assigneeAdminName",
          "closedAt",
          "closedByAdminId",
          "closeReason",
          "latestSequence",
          "readSequence",
          "unreadCount",
          "createdAt",
          "updatedAt",
          "version"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "会话 documentId。"
          },
          "type": {
            "$ref": "#/components/schemas/OwnerCommunicationCenterConversationType",
            "description": "会话业务类型；枚举类型，ORDER 表示老板与当前打手的订单会话，SUPPORT 表示老板与客服的长期会话。"
          },
          "status": {
            "$ref": "#/components/schemas/OwnerCommunicationCenterConversationStatus",
            "description": "会话持久化状态；枚举类型，OPEN 可按模块策略读写，READ_ONLY 仅可读，CLOSED 表示业务已关闭。"
          },
          "orderId": {
            "type": [
              "string",
              "null"
            ],
            "description": "ORDER 会话关联的订单 documentId。"
          },
          "orderNo": {
            "type": [
              "string",
              "null"
            ],
            "description": "ORDER 会话保存的订单号快照。"
          },
          "assignmentSequence": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "description": "ORDER 会话对应的派单轮次。"
          },
          "supportRound": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "description": "SUPPORT 会话当前客服轮次；ORDER 为 null。"
          },
          "supportRoundOpenedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "SUPPORT 当前轮次打开时间；ORDER 为 null。"
          },
          "counterpart": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/OwnerCommunicationCenterConversationCounterpart"
              },
              {
                "type": "null"
              }
            ],
            "description": "当前身份视角的对端快照；未指派的 SUPPORT 或管理员查看 ORDER 时为 null。"
          },
          "participantReadStates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterParticipantReadState"
            },
            "description": "当前 ACTIVE 成员的已读位置，用于断线后恢复对方已读状态。"
          },
          "subject": {
            "type": [
              "string",
              "null"
            ],
            "description": "客服会话主题或订单摘要。"
          },
          "assigneeAdminId": {
            "type": [
              "string",
              "null"
            ],
            "description": "当前指派客服管理员标识。"
          },
          "assigneeAdminName": {
            "type": [
              "string",
              "null"
            ],
            "description": "当前指派客服显示名快照。"
          },
          "closedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "客服会话关闭时间；订单会话和未关闭客服会话为 null。"
          },
          "closedByAdminId": {
            "type": [
              "string",
              "null"
            ],
            "description": "关闭客服会话的管理员标识。"
          },
          "closeReason": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 200,
            "description": "客服会话关闭原因。"
          },
          "latestSequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "会话已持久化的最新消息序号。"
          },
          "readSequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "当前身份已读到的消息序号。"
          },
          "unreadCount": {
            "type": "integer",
            "minimum": 0,
            "description": "当前身份未读消息数量。"
          },
          "lastMessagePreview": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 120,
            "description": "最后一条消息的安全截断预览。"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "会话创建时间。"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "会话最近更新时间。"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "会话乐观锁版本。"
          }
        },
        "description": "conversation数据结构。"
      },
      "OwnerCommunicationCenterConversationListData": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "page"
        ],
        "properties": {
          "items": {
            "type": "array",
            "description": "当前页会话。",
            "items": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterConversation"
            }
          },
          "page": {
            "$ref": "#/components/schemas/OwnerCommunicationCenterPageMeta",
            "description": "分页页码，从 1 开始。"
          }
        },
        "description": "conversationlist业务数据数据结构。"
      },
      "OwnerCommunicationCenterMessageListData": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items",
          "page",
          "latestSequence"
        ],
        "properties": {
          "items": {
            "type": "array",
            "description": "按 sequence 升序排列的当前页消息。",
            "items": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterChatMessage"
            }
          },
          "page": {
            "$ref": "#/components/schemas/OwnerCommunicationCenterPageMeta",
            "description": "分页页码，从 1 开始。"
          },
          "latestSequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "查询时会话最新消息序号。"
          }
        },
        "description": "消息list业务数据数据结构。"
      },
      "OwnerCommunicationCenterChatMessage": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "conversationId",
          "sequence",
          "clientMessageId",
          "senderType",
          "senderId",
          "senderNameSnapshot",
          "type",
          "text",
          "attachments",
          "createdAt"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "消息 documentId。"
          },
          "conversationId": {
            "type": "string",
            "description": "所属会话 documentId。"
          },
          "sequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "会话内严格递增且不重复的消息序号。"
          },
          "clientMessageId": {
            "type": "string",
            "description": "客户端生成的消息幂等标识。"
          },
          "senderType": {
            "$ref": "#/components/schemas/OwnerCommunicationCenterParticipantType",
            "description": "消息发送主体类型。"
          },
          "senderId": {
            "type": "string",
            "description": "发送主体标识；SYSTEM 消息使用固定 system 标识。"
          },
          "senderNameSnapshot": {
            "type": "string",
            "description": "发送时的显示名快照。"
          },
          "type": {
            "type": "string",
            "enum": [
              "TEXT",
              "MEDIA",
              "MIXED"
            ],
            "description": "纯文字、纯附件或文字加附件。",
            "x-enum-descriptions": [
              "取值 TEXT。",
              "取值 MEDIA。",
              "取值 MIXED。"
            ]
          },
          "text": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 2000,
            "description": "可为空，但文字与附件不能同时为空。"
          },
          "attachments": {
            "type": "array",
            "maxItems": 9,
            "items": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterChatAttachment"
            },
            "description": "图片和视频业务文件附件，单条最多九个且最多一个视频，实时事件仅携带统一附件元数据。"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "服务端持久化时间。"
          }
        },
        "description": "chat消息数据结构。"
      },
      "OwnerCommunicationCenterReadState": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "conversationId",
          "readSequence",
          "updatedAt"
        ],
        "properties": {
          "conversationId": {
            "type": "string",
            "description": "会话 documentId。"
          },
          "readSequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "当前身份最新已读序号。"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "已读位置更新时间。"
          }
        },
        "description": "readstate数据结构。"
      },
      "OwnerCommunicationCenterRealtimeTicket": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "ticket",
          "expiresAt",
          "expiresInSeconds",
          "websocketUrl"
        ],
        "properties": {
          "ticket": {
            "type": "string",
            "minLength": 32,
            "description": "仅能使用一次的高熵不透明凭证。"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "description": "凭证绝对失效时间。"
          },
          "expiresInSeconds": {
            "type": "integer",
            "minimum": 10,
            "maximum": 300,
            "default": 30,
            "description": "当前配置的有效秒数；客户端必须以此响应和 expiresAt 为准。"
          },
          "websocketUrl": {
            "type": "string",
            "format": "uri",
            "description": "不含 ticket 的 WebSocket 地址；客户端在查询参数中单独附加 ticket。连接最长寿命与并发上限见 AsyncAPI。"
          }
        },
        "description": "realtimeticket数据结构。"
      },
      "OwnerClientRegistrationCapability": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "available",
          "defaultMethod",
          "methods",
          "accountPolicy"
        ],
        "description": "当前调用面的自助注册能力。前端必须以 available、defaultMethod 和 methods 共同驱动界面；Service Provider 第一阶段固定不可用。",
        "properties": {
          "available": {
            "type": "boolean",
            "description": "当前是否至少存在一种可用的自助注册方式。"
          },
          "defaultMethod": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "ACCOUNT_PASSWORD",
              "PHONE",
              null
            ],
            "description": "建议客户端默认选中的可用注册方式。",
            "x-enum-descriptions": [
              "取值 ACCOUNT_PASSWORD。",
              "取值 PHONE。",
              "取值 null。"
            ]
          },
          "methods": {
            "type": "array",
            "maxItems": 2,
            "items": {
              "$ref": "#/components/schemas/OwnerClientRegistrationMethod"
            },
            "description": "当前调用面支持的注册方式；不支持自助注册时为空数组。",
            "minItems": 2
          },
          "accountPolicy": {
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "accountMinLength",
                  "accountMaxLength",
                  "passwordMinLength",
                  "passwordMaxLength"
                ],
                "properties": {
                  "accountMinLength": {
                    "type": "integer",
                    "const": 3,
                    "description": "账号最小length字段。"
                  },
                  "accountMaxLength": {
                    "type": "integer",
                    "const": 80,
                    "description": "账号最大length字段。"
                  },
                  "passwordMinLength": {
                    "type": "integer",
                    "const": 12,
                    "description": "密码最小length字段。"
                  },
                  "passwordMaxLength": {
                    "type": "integer",
                    "const": 128,
                    "description": "密码最大length字段。"
                  }
                },
                "description": "客户端registration能力数据结构。"
              },
              {
                "type": "null"
              }
            ],
            "description": "账号密码注册输入约束；不支持自助注册的调用面为 null。"
          }
        }
      },
      "OwnerClientCommunicationCapability": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "mode",
          "messageMaxLength",
          "allowedAttachmentTypes",
          "messageAttachmentMaxCount",
          "messageVideoMaxCount",
          "realtimeTicketTtlSeconds",
          "connectionTtlSeconds"
        ],
        "description": "老板端和打手端共用的即时通讯模式与动态限制，客户端不得用本地常量覆盖。",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "READ_ONLY",
              "DISABLED"
            ],
            "description": "ACTIVE 可读写，READ_ONLY 只允许读取和更新已读位置，DISABLED 不可用。",
            "x-enum-descriptions": [
              "取值 ACTIVE。",
              "取值 READ_ONLY。",
              "取值 DISABLED。"
            ]
          },
          "messageMaxLength": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2000,
            "description": "单条消息文本最大字符数。"
          },
          "allowedAttachmentTypes": {
            "type": "array",
            "minItems": 1,
            "maxItems": 2,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "IMAGE",
                "VIDEO"
              ],
              "description": "客户端communication能力数据结构。",
              "x-enum-descriptions": [
                "取值 IMAGE。",
                "取值 VIDEO。"
              ]
            },
            "description": "当前允许发送的附件媒体类型。"
          },
          "messageAttachmentMaxCount": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9,
            "description": "单条消息附件总数上限。"
          },
          "messageVideoMaxCount": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1,
            "description": "单条消息视频数量上限。"
          },
          "realtimeTicketTtlSeconds": {
            "type": "integer",
            "minimum": 10,
            "maximum": 300,
            "description": "一次性 WebSocket ticket 有效秒数。"
          },
          "connectionTtlSeconds": {
            "type": "integer",
            "minimum": 60,
            "maximum": 3600,
            "description": "单条 WebSocket 连接最长存活秒数。"
          }
        }
      },
      "OwnerCatalogStatus": {
        "x-dictionary-code": "CATALOG_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "ENABLED",
          "DISABLED"
        ],
        "description": "catalog状态数据结构。\n\n比例方案状态，ENABLED 可用于新绑定和结算，DISABLED 仅保留历史快照与既有引用。\n\n该值来自代码锁定字典 CATALOG_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "启用/上架：允许展示和新建订单。",
          "禁用/下架：不允许新建订单，历史快照保留。"
        ]
      },
      "OwnerGameAttributeAsset": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "url"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "url": {
            "type": [
              "string",
              "null"
            ],
            "description": "服务端签发的资源访问地址。"
          }
        },
        "description": "游戏attributeasset数据结构。"
      },
      "OwnerGameAttributeOption": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "code",
          "name",
          "description",
          "icon",
          "assets",
          "metadata",
          "status",
          "sortOrder"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "code": {
            "type": "string",
            "maxLength": 80,
            "description": "所属属性范围内稳定且唯一的选项编码，供匹配规则与历史快照识别使用。"
          },
          "name": {
            "type": "string",
            "maxLength": 120,
            "description": "面向老板端、打手端和后台展示的选项名称，后续改名不改变已有订单快照。"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "选项对应地图、模式、服务器等领域值的公开业务说明，可由调用端直接展示。"
          },
          "icon": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerGameAttributeAsset"
              },
              {
                "type": "null"
              }
            ],
            "description": "icon 字段属于“游戏”内容类型。字段含义：客户端图标。数据类型：单文件媒体文件（仅允许图片）。业务填写与默认规则：必填。业务约束与索引要求：仅图片。当前 schema.json 已声明：模型层声明为必填。"
          },
          "assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerGameAttributeAsset"
            },
            "description": "assets字段。"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true,
            "description": "供不同游戏保存非敏感结构化扩展信息的开放对象，不改变选项核心匹配语义。"
          },
          "status": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ],
            "description": "父子选项约束的启停状态；停用后不再限制公开树中的新订单属性选择。",
            "x-enum-descriptions": [
              "启用/上架：允许展示和新建订单。",
              "禁用/下架：不允许新建订单，历史快照保留。"
            ]
          },
          "sortOrder": {
            "type": "integer",
            "minimum": 0,
            "description": "同组父子选项约束的稳定返回排序值，数值越小越先用于客户端展示。"
          }
        },
        "description": "游戏attributeoption数据结构。"
      },
      "OwnerServiceProviderGameDomainAttribute": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "attributeId",
          "attributeName",
          "options"
        ],
        "properties": {
          "attributeId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "attribute标识字段。"
          },
          "attributeName": {
            "type": "string",
            "description": "attribute名称字段。"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerServiceProviderGameDomainOption"
            },
            "description": "options 字段属于“套餐下单资料字段”内容类型。字段含义：单选项。数据类型：JSON 结构数据。该字段以 JSON 结构保存，写入和读取时必须遵循对应业务服务定义的数据结构，不应存放未约定的敏感明文。业务填写与默认规则：SINGLE_SELECT 必填。业务约束与索引要求：数组项 {value,label}；value 唯一。"
          }
        },
        "description": "服务提供者游戏domainattribute数据结构。"
      },
      "OwnerCatalogSnapshotEntity": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "name"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "name": {
            "type": "string",
            "description": "资源名称。"
          }
        },
        "description": "catalogsnapshotentity数据结构。"
      },
      "OwnerCatalogSnapshotPackage": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "name",
          "priceMinor",
          "estimatedDurationMinutes",
          "deliveryStandard"
        ],
        "properties": {
          "documentId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "name": {
            "type": "string",
            "description": "资源名称。"
          },
          "priceMinor": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerMoneyMinor"
              },
              {
                "type": "null"
              }
            ],
            "description": "老板购买价格，人民币分；禁止 0 元，当前默认最低售价由 CATALOG 配置域设为 100 分。"
          },
          "estimatedDurationMinutes": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1
              },
              {
                "type": "null"
              }
            ],
            "description": "预计时长minutes字段。"
          },
          "deliveryStandard": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "deliveryStandard 字段属于“标准套餐”内容类型。字段含义：交付标准。数据类型：富文本。业务填写与默认规则：必填。业务约束与索引要求：最多 10000 字符。当前 schema.json 已声明：模型层声明为必填；最多 10000 个字符。"
          }
        },
        "description": "catalogsnapshot套餐数据结构。"
      },
      "OwnerAssignmentAction": {
        "x-dictionary-code": "ASSIGNMENT_ACTION",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "ASSIGN",
          "REASSIGN",
          "UNASSIGN"
        ],
        "description": "派单action数据结构。\n\naction 字段属于“派单与改派记录”内容类型。\n\n该值来自代码锁定字典 ASSIGNMENT_ACTION，随服务版本发布。",
        "x-enum-descriptions": [
          "首次派单：待派单转待开始；启用派单确认模式时先转待打手确认。",
          "改派：当前主打手切换为新主打手。",
          "取消派单：仅异常处置使用。"
        ]
      },
      "OwnerCompletionStatus": {
        "x-dictionary-code": "COMPLETION_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "PENDING_REVIEW",
          "APPROVED",
          "REJECTED"
        ],
        "description": "完成状态数据结构。\n\nstatus 字段属于“完工申请”内容类型。\n\n该值来自代码锁定字典 COMPLETION_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "待平台初验：打手刚提交整单完工材料。",
          "平台初验通过：订单进入待老板验收。",
          "平台初验驳回：订单回到履约中。"
        ]
      },
      "OwnerSettlementPreviewAllocation": {
        "type": "object",
        "properties": {
          "allocationId": {
            "$ref": "#/components/schemas/OwnerDocumentId",
            "description": "allocation标识字段。"
          },
          "serviceProvider": {
            "type": "object",
            "properties": {
              "documentId": {
                "$ref": "#/components/schemas/OwnerDocumentId",
                "description": "Strapi 文档标识；用于后续读取或修改该资源。"
              },
              "displayName": {
                "type": "string",
                "description": "displayName 字段属于“打手资料”内容类型。字段含义：老板与订单中展示的名称。数据类型：字符串。业务填写与默认规则：必填。业务约束与索引要求：1-40 字符；索引。当前 schema.json 已声明：模型层声明为必填；最少 1 个字符；最多 40 个字符。"
              }
            },
            "additionalProperties": false,
            "required": [
              "documentId",
              "displayName"
            ],
            "description": "serviceProvider 字段属于“订单评价”内容类型。字段含义：被评价打手。数据类型：多对一关联关系。该字段建立多对一关联，关联目标为“打手资料”。业务填写与默认规则：必填。业务约束与索引要求：索引。当前 schema.json 已声明：模型层声明为必填。"
          },
          "participationType": {
            "type": "string",
            "enum": [
              "INITIAL",
              "REPLACEMENT",
              "COLLABORATOR"
            ],
            "description": "INITIAL 为首次派单，REPLACEMENT 为换手加入，COLLABORATOR 为共同履约加入。",
            "x-enum-descriptions": [
              "首次派单：首次派单。",
              "改派加入：改派加入。",
              "共同履约加入：共同履约加入。"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "REPLACED"
            ],
            "description": "status 字段属于“订单评价”内容类型。字段含义：公开、隐藏或软删除状态。数据类型：枚举值。允许保存的枚举值为：VISIBLE、HIDDEN、DELETED。业务填写与默认规则：默认 VISIBLE。业务约束与索引要求：索引；DELETED 只隐藏公开展示，原评分和原文永久留档。当前 schema.json 已声明：默认值为 VISIBLE。",
            "x-enum-descriptions": [
              "当前参与：仍是订单参与打手，按分工拥有对应订单操作权限并占用接单名额。",
              "已被替换：已因改派离开当前履约，但保留历史参与、比例快照和应结事实。"
            ]
          },
          "isLead": {
            "type": "boolean",
            "description": "标记该参与打手是否为订单当前主打手；同一订单仅主打手可代表所有协作打手提交整单完工。"
          },
          "collaborationRateBps": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10000,
            "description": "collaboration比例bps字段。"
          },
          "afterSaleCountEnabled": {
            "type": "boolean",
            "description": "本订单发起售后时是否为该结算参与者记一次售后。"
          },
          "onboardingRateBps": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000,
            "description": "打手加入或重新加入订单时固化的入驻抽成比例，以基点保存，后续方案调整不追溯影响本单。"
          },
          "onboardingPlan": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "description": "业务编码；在对应资源类型内保持唯一。"
              },
              "name": {
                "type": "string",
                "description": "资源名称。"
              },
              "version": {
                "type": "integer",
                "minimum": 1,
                "description": "评价记录的乐观锁版本号，在编辑或申诉处理更新时递增，用于防止并发请求相互覆盖。"
              }
            },
            "additionalProperties": false,
            "required": [
              "code",
              "name",
              "version"
            ],
            "description": "onboardingplan字段。"
          },
          "collaborationAmountMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "记录打手结算池经过合作分成比例计算后分配给该打手的金额，作为后续入驻抽成的计算基数。"
          },
          "estimatedSettlementAmountMinor": {
            "$ref": "#/components/schemas/OwnerMoneyMinor",
            "description": "预计结算金额minor字段。"
          },
          "joinedAt": {
            "$ref": "#/components/schemas/OwnerDateTime",
            "description": "joinedat字段。"
          },
          "leftAt": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDateTime"
              },
              {
                "type": "null"
              }
            ],
            "description": "leftat字段。"
          }
        },
        "additionalProperties": false,
        "required": [
          "allocationId",
          "serviceProvider",
          "participationType",
          "status",
          "isLead",
          "collaborationRateBps",
          "afterSaleCountEnabled",
          "onboardingRateBps",
          "onboardingPlan",
          "collaborationAmountMinor",
          "estimatedSettlementAmountMinor",
          "joinedAt"
        ],
        "description": "结算previewallocation数据结构。"
      },
      "OwnerSettlementStatus": {
        "x-dictionary-code": "SETTLEMENT_STATUS",
        "x-dictionary-source": "CODE",
        "type": "string",
        "enum": [
          "PENDING",
          "FROZEN",
          "SETTLED",
          "REVERSED",
          "CANCELLED"
        ],
        "description": "结算状态数据结构。\n\nstatus 字段属于“打手劳务结算”内容类型。\n\n该值来自代码锁定字典 SETTLEMENT_STATUS，随服务版本发布。",
        "x-enum-descriptions": [
          "待生成入账：结算事实已生成，但尚未完成钱包冻结入账或人工结算。",
          "售后期冻结：打手报酬已进入冻结余额，售后期结束且没有活动售后后才可释放。",
          "已结算：钱包冻结报酬已释放为可用余额，或线下结算已被确认。",
          "已冲正：原结算因退款或财务纠错被审计化反向修正。",
          "已取消：该打手最终无应结金额，结算记录终止且不会继续释放。"
        ]
      },
      "OwnerCommunicationCenterConversationStatus": {
        "type": "string",
        "description": "OPEN 可按模块模式读写；READ_ONLY 表示订单已离开履约中只能读取；CLOSED 表示会话已关闭。",
        "enum": [
          "OPEN",
          "READ_ONLY",
          "CLOSED"
        ],
        "x-enum-descriptions": [
          "会话打开并按模块模式决定读写。",
          "订单已离开履约中且会话只读。",
          "会话已关闭。"
        ]
      },
      "OwnerCommunicationCenterConversationCounterpart": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "participantType",
          "participantId",
          "profileId",
          "displayName"
        ],
        "description": "当前身份视角的历史对端快照；管理员查看三方 ORDER 会话时为 null。",
        "properties": {
          "participantType": {
            "type": "string",
            "enum": [
              "OWNER",
              "SERVICE_PROVIDER",
              "ADMIN"
            ],
            "description": "participant类型字段。",
            "x-enum-descriptions": [
              "取值 OWNER。",
              "取值 SERVICE_PROVIDER。",
              "取值 ADMIN。"
            ]
          },
          "participantId": {
            "type": "string",
            "description": "对端用户或 Admin 标识。"
          },
          "profileId": {
            "type": [
              "string",
              "null"
            ],
            "description": "老板或打手资料 documentId；Admin 为 null。"
          },
          "displayName": {
            "type": "string",
            "description": "会话中保存的对端显示名快照。"
          }
        }
      },
      "OwnerCommunicationCenterParticipantReadState": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "participantType",
          "participantId",
          "readSequence"
        ],
        "description": "当前 ACTIVE 会话成员的已读位置；不暴露已离开的历史成员。",
        "properties": {
          "participantType": {
            "type": "string",
            "enum": [
              "OWNER",
              "SERVICE_PROVIDER",
              "ADMIN"
            ],
            "description": "participant类型字段。",
            "x-enum-descriptions": [
              "取值 OWNER。",
              "取值 SERVICE_PROVIDER。",
              "取值 ADMIN。"
            ]
          },
          "participantId": {
            "type": "string",
            "description": "participant标识字段。"
          },
          "readSequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "read序号字段。"
          }
        }
      },
      "OwnerCommunicationCenterPageMeta": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hasMore"
        ],
        "properties": {
          "nextCursor": {
            "type": [
              "string",
              "null"
            ],
            "description": "下一页不透明游标，无下一页时为 null。"
          },
          "hasMore": {
            "type": "boolean",
            "description": "是否仍有下一页数据。"
          }
        },
        "description": "页码附加信息数据结构。"
      },
      "OwnerCommunicationCenterParticipantType": {
        "type": "string",
        "description": "消息发送者或会话参与者类型。",
        "enum": [
          "OWNER",
          "SERVICE_PROVIDER",
          "ADMIN",
          "SYSTEM"
        ],
        "x-enum-descriptions": [
          "老板。",
          "打手。",
          "管理员。",
          "系统。"
        ]
      },
      "OwnerCommunicationCenterChatAttachment": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "documentId",
          "purpose",
          "status",
          "mediaType",
          "mimeType",
          "sizeBytes",
          "validationStatus"
        ],
        "properties": {
          "documentId": {
            "type": "string",
            "description": "Strapi 文档标识；用于后续读取或修改该资源。"
          },
          "fileNo": {
            "type": [
              "string",
              "null"
            ],
            "description": "fileNo 字段属于“业务文件包装记录”内容类型。字段含义：业务文件编号。数据类型：字符串。业务填写与默认规则：必填、唯一。业务约束与索引要求：UUID；唯一索引。当前 schema.json 已声明：模型层声明为必填；模型层声明为唯一值。该值在对应数据集合中必须保持唯一，用于阻止重复业务记录或标识冲突。"
          },
          "purpose": {
            "type": "string",
            "const": "CHAT_ATTACHMENT",
            "description": "上传图片将用于的业务场景。"
          },
          "status": {
            "type": "string",
            "description": "该资源当前所处的业务状态。"
          },
          "mediaType": {
            "type": "string",
            "enum": [
              "IMAGE",
              "VIDEO"
            ],
            "description": "统一标识业务文件属于图片、视频或录音，决定后续大小、时长与编码校验规则。",
            "x-enum-descriptions": [
              "取值 IMAGE。",
              "取值 VIDEO。"
            ]
          },
          "mimeType": {
            "type": "string",
            "description": "媒体类型类型字段。"
          },
          "sizeBytes": {
            "type": "string",
            "pattern": "^(0|[1-9][0-9]*)$",
            "description": "sizebytes字段。"
          },
          "durationSeconds": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0,
            "description": "时长seconds字段。"
          },
          "width": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "description": "width字段。"
          },
          "height": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "description": "height字段。"
          },
          "codec": {
            "type": [
              "string",
              "null"
            ],
            "description": "codec字段。"
          },
          "validationStatus": {
            "type": "string",
            "enum": [
              "PENDING",
              "PASSED",
              "REJECTED"
            ],
            "description": "记录文件头、媒体探测与病毒扫描的综合校验状态，只有通过后才能绑定到业务记录。",
            "x-enum-descriptions": [
              "待校验：待校验。",
              "校验通过：校验通过。",
              "校验拒绝：校验拒绝。"
            ]
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "该凭据或业务对象的失效时间，采用 ISO 8601 日期时间格式。"
          }
        },
        "description": "chat附件数据结构。"
      },
      "OwnerClientRegistrationMethod": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "type",
          "enabled",
          "available",
          "verificationRequired",
          "verificationCodeRequestAvailable",
          "credentialFields",
          "unavailableReason"
        ],
        "description": "单个自助注册方式的当前状态。前端以 available 决定是否展示和允许提交，不应仅根据 enabled 判断。",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ACCOUNT_PASSWORD",
              "PHONE"
            ],
            "description": "显式注册方式。",
            "x-enum-descriptions": [
              "取值 ACCOUNT_PASSWORD。",
              "取值 PHONE。"
            ]
          },
          "enabled": {
            "type": "boolean",
            "description": "该方式是否已在 SECURITY_ACCOUNT 配置域中开启。"
          },
          "available": {
            "type": "boolean",
            "description": "当前是否可以使用此方式完成注册。"
          },
          "verificationRequired": {
            "type": "boolean",
            "description": "注册前是否必须完成验证码校验。"
          },
          "verificationCodeRequestAvailable": {
            "type": "boolean",
            "description": "当前是否能够申请该方式的注册验证码；无需验证码时为 false。"
          },
          "credentialFields": {
            "type": "array",
            "minItems": 1,
            "maxItems": 2,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "account",
                "password",
                "phone"
              ],
              "description": "客户端registration方法数据结构。",
              "x-enum-descriptions": [
                "取值 account。",
                "取值 password。",
                "取值 phone。"
              ]
            },
            "description": "客户端应展示的核心凭据语义；手机号方式提交 phone，不能按输入内容自动识别类型。"
          },
          "unavailableReason": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "METHOD_DISABLED",
              "VERIFICATION_DELIVERY_UNAVAILABLE",
              null
            ],
            "description": "注册方式不可用的稳定原因码；可用时为空。",
            "x-enum-descriptions": [
              "取值 METHOD_DISABLED。",
              "取值 VERIFICATION_DELIVERY_UNAVAILABLE。",
              "取值 null。"
            ]
          }
        }
      },
      "OwnerServiceProviderGameDomainOption": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "optionId",
          "optionName",
          "proficiency",
          "primary",
          "sortOrder"
        ],
        "properties": {
          "optionId": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OwnerDocumentId"
              },
              {
                "type": "null"
              }
            ],
            "description": "option标识字段。"
          },
          "optionName": {
            "type": [
              "string",
              "null"
            ],
            "description": "option名称字段。"
          },
          "proficiency": {
            "type": "string",
            "enum": [
              "FAMILIAR",
              "PROFICIENT",
              "EXPERT"
            ],
            "description": "打手对该游戏属性选项的熟练程度，可用于后台维护和公开领域能力展示。",
            "x-enum-descriptions": [
              "熟悉：熟悉。",
              "熟练：熟练。",
              "精通：精通。"
            ]
          },
          "primary": {
            "type": "boolean",
            "description": "主要字段。"
          },
          "sortOrder": {
            "type": "integer",
            "minimum": 0,
            "description": "sortOrder 字段属于“游戏”内容类型。字段含义：排序值，越小越靠前。数据类型：整数。业务填写与默认规则：默认 0。业务约束与索引要求：索引。当前 schema.json 已声明：默认值为 0。"
          }
        },
        "description": "服务提供者游戏domainoption数据结构。"
      }
    },
    "securitySchemes": {
      "OwnerBearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Owner 接入面专用认证方案；令牌 audience 必须为 lz-esports-owner，领域主体为 OWNER。",
        "x-jwt-audience": "lz-esports-owner"
      }
    },
    "responses": {
      "OwnerPaymentCenterWalletResponse": {
        "description": "钱包响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterWallet",
                  "description": "本次响应返回的业务数据。"
                }
              },
              "description": "钱包数据结构。"
            }
          }
        }
      },
      "OwnerPaymentCenterLedgerPagedResponse": {
        "description": "资金流水分页响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data",
                "meta"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OwnerPaymentCenterLedgerEntry"
                  },
                  "description": "本次响应返回的业务数据。"
                },
                "meta": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterPaginationMeta",
                  "description": "分页、版本或其他响应附加信息。"
                }
              },
              "description": "ledger数据结构。"
            }
          }
        }
      },
      "OwnerPaymentCenterPaymentOrderPagedResponse": {
        "description": "支付单分页响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data",
                "meta"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OwnerPaymentCenterPaymentOrder"
                  },
                  "description": "本次响应返回的业务数据。"
                },
                "meta": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterPaymentOrderPaginationMeta",
                  "description": "分页、版本或其他响应附加信息。"
                }
              },
              "description": "支付订单数据结构。"
            }
          }
        }
      },
      "OwnerPaymentCenterPaymentOrderResponse": {
        "description": "支付单响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterPaymentOrder",
                  "description": "本次响应返回的业务数据。"
                }
              },
              "description": "支付订单数据结构。"
            }
          }
        }
      },
      "OwnerPaymentCenterPaymentSyncResultResponse": {
        "description": "支付同步响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterPaymentSyncResult",
                  "description": "本次响应返回的业务数据。"
                }
              },
              "description": "支付syncresult数据结构。"
            }
          }
        }
      },
      "OwnerPaymentCenterPaymentInitiationResponse": {
        "description": "支付发起响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterPaymentInitiation",
                  "description": "本次响应返回的业务数据。"
                }
              },
              "description": "支付initiation数据结构。"
            }
          }
        }
      },
      "OwnerPaymentCenterWithdrawalPagedResponse": {
        "description": "提现申请分页响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data",
                "meta"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OwnerPaymentCenterWithdrawal"
                  },
                  "description": "本次响应返回的业务数据。"
                },
                "meta": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterPaginationMeta",
                  "description": "分页、版本或其他响应附加信息。"
                }
              },
              "description": "提现数据结构。"
            }
          }
        }
      },
      "OwnerPaymentCenterWithdrawalResponse": {
        "description": "提现申请响应",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "requestId",
                "data"
              ],
              "properties": {
                "requestId": {
                  "type": "string",
                  "description": "用于关联日志与排查问题的请求标识。"
                },
                "data": {
                  "$ref": "#/components/schemas/OwnerPaymentCenterWithdrawal",
                  "description": "本次响应返回的业务数据。"
                }
              },
              "description": "提现数据结构。"
            }
          }
        }
      },
      "OwnerCommunicationCenterConversationResponse": {
        "description": "会话详情。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterConversationEnvelope"
            }
          }
        }
      },
      "OwnerCommunicationCenterErrorResponse": {
        "description": "请求失败；code 为稳定机器码，message 为安全的用户可读说明。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterErrorEnvelope"
            }
          }
        }
      },
      "OwnerCommunicationCenterConversationListResponse": {
        "description": "会话分页列表。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterConversationListEnvelope"
            }
          }
        }
      },
      "OwnerCommunicationCenterMessageListResponse": {
        "description": "按 sequence 升序排列的消息分页列表。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterMessageListEnvelope"
            }
          }
        }
      },
      "OwnerCommunicationCenterMessageResponse": {
        "description": "已持久化的文字或媒体消息；幂等重试返回相同 messageId 和 sequence。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterMessageEnvelope"
            }
          }
        }
      },
      "OwnerCommunicationCenterReadResponse": {
        "description": "当前身份最新已读位置。",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterReadEnvelope"
            }
          }
        }
      },
      "OwnerCommunicationCenterRealtimeTicketResponse": {
        "description": "一次性实时连接凭证。",
        "headers": {
          "Cache-Control": {
            "description": "防止 ticket 被客户端或代理缓存。",
            "schema": {
              "type": "string",
              "const": "no-store"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OwnerCommunicationCenterRealtimeTicketEnvelope"
            }
          }
        }
      }
    },
    "parameters": {
      "OwnerPaymentCenterPage": {
        "name": "page",
        "in": "query",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "default": 1
        },
        "description": "支付center页码公共参数。"
      },
      "OwnerPaymentCenterPageSize": {
        "name": "pageSize",
        "in": "query",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        },
        "description": "支付center页码size公共参数。"
      },
      "OwnerPaymentCenterIdempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string",
          "minLength": 8,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9._:-]+$"
        },
        "description": "支付centeridempotency键公共参数。"
      },
      "OwnerCommunicationCenterOrderId": {
        "name": "orderId",
        "in": "path",
        "required": true,
        "description": "订单 documentId。",
        "schema": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "OwnerCommunicationCenterIdempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": true,
        "description": "写命令幂等键；同一身份、方法和路径下重复提交返回首次结果。",
        "schema": {
          "type": "string",
          "minLength": 8,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9._:-]+$"
        }
      },
      "OwnerCommunicationCenterCursor": {
        "name": "cursor",
        "in": "query",
        "description": "服务端签发的不透明分页游标，不得自行解析或修改。",
        "schema": {
          "type": "string",
          "minLength": 1,
          "maxLength": 512
        }
      },
      "OwnerCommunicationCenterLimit": {
        "name": "limit",
        "in": "query",
        "description": "单页数量。",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 20
        }
      },
      "OwnerCommunicationCenterConversationId": {
        "name": "conversationId",
        "in": "path",
        "required": true,
        "description": "会话 documentId。",
        "schema": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "OwnerCommunicationCenterAfterSequence": {
        "name": "afterSequence",
        "in": "query",
        "description": "仅用于断线补偿，返回 sequence 严格大于该值的消息；不得与 cursor 同时使用。",
        "schema": {
          "type": "integer",
          "format": "int64",
          "minimum": 0
        }
      }
    }
  },
  "x-api-surface": "owner",
  "x-domain-actor": "OWNER",
  "x-generated-document": true,
  "x-tagGroups": [
    {
      "name": "认证",
      "tags": [
        "认证"
      ]
    },
    {
      "name": "商品",
      "tags": [
        "公共商品",
        "公共打手",
        "公共字典",
        "文件"
      ]
    },
    {
      "name": "订单",
      "tags": [
        "老板订单",
        "老板推荐",
        "系统通知",
        "即时通讯"
      ]
    },
    {
      "name": "打手",
      "tags": []
    },
    {
      "name": "支付",
      "tags": [
        "支付中心"
      ]
    },
    {
      "name": "后台管理",
      "tags": []
    },
    {
      "name": "系统安全",
      "tags": [
        "客户端配置",
        "接口加密"
      ]
    },
    {
      "name": "运维",
      "tags": [
        "运维"
      ]
    }
  ]
}
