{
  "openapi": "3.0.4",
  "info": {
    "title": "外卖SaaS - 管理后台 1.0",
    "description": "管理后台 API 文档",
    "version": "1.0"
  },
  "paths": {
    "/api/admin/v1/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "登录获取 Token",
        "requestBody": {
          "description": "登录请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponseApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/auth/login/simple": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "免租户号登录（仅账号+密码）。",
        "description": "用于前端简化登录，无需额外传递租户号。",
        "requestBody": {
          "description": "登录请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdminLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponseApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/auth/refresh": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "刷新 Token",
        "requestBody": {
          "description": "刷新令牌请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponseApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/auth/profile": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "获取当前用户信息",
        "description": "示例：\n```\nGET /api/admin/v1/auth/profile\nHeader: Authorization: Bearer <JWT>\n响应:\n{\n  \"success\": true,\n  \"code\": 200,\n  \"message\": \"操作成功\",\n  \"data\": {\n    \"userId\": \"900123456789012345\",\n    \"account\": \"admin@tenant1\",\n    \"displayName\": \"租户管理员\",\n    \"tenantId\": \"100000000000000001\",\n    \"merchantId\": null,\n    \"roles\": [\"TenantAdmin\"],\n    \"permissions\": [\"identity:permission:read\", \"merchant:read\", \"order:read\"],\n    \"avatar\": \"https://cdn.example.com/avatar.png\"\n  }\n}\n```",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentUserProfileApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentUserProfileApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/auth/menu": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "获取当前用户的菜单树（按权限过滤）。",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuNodeDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/auth/permissions/{userId}": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "查询指定用户的角色与权限概览（当前租户范围）。",
        "description": "示例：\n```\nGET /api/admin/v1/auth/permissions/900123456789012346\nHeader: Authorization: Bearer <JWT>\n响应:\n{\n  \"success\": true,\n  \"code\": 200,\n  \"data\": {\n    \"userId\": \"900123456789012346\",\n    \"tenantId\": \"100000000000000001\",\n    \"merchantId\": \"200000000000000001\",\n    \"account\": \"ops.manager\",\n    \"displayName\": \"运营经理\",\n    \"roles\": [\"OpsManager\", \"Reporter\"],\n    \"permissions\": [\"delivery:read\", \"order:read\", \"payment:read\"],\n    \"createdAt\": \"2025-12-01T08:30:00Z\"\n  }\n}\n```",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "目标用户 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPermissionDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPermissionDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/deliveries": {
      "post": {
        "tags": [
          "Deliveries"
        ],
        "summary": "创建配送单。",
        "requestBody": {
          "description": "创建命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryOrderCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryOrderCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryOrderCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryOrderCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryOrderDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Deliveries"
        ],
        "summary": "查询配送单列表。",
        "parameters": [
          {
            "name": "orderId",
            "in": "query",
            "description": "订单 ID。",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "配送状态。",
            "schema": {
              "$ref": "#/components/schemas/DeliveryStatus"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码。",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页大小。",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "排序字段。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDesc",
            "in": "query",
            "description": "是否倒序。",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryOrderDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/deliveries/{deliveryOrderId}": {
      "get": {
        "tags": [
          "Deliveries"
        ],
        "summary": "获取配送单详情。",
        "parameters": [
          {
            "name": "deliveryOrderId",
            "in": "path",
            "description": "配送单 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryOrderDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Deliveries"
        ],
        "summary": "更新配送单。",
        "parameters": [
          {
            "name": "deliveryOrderId",
            "in": "path",
            "description": "配送单 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "更新命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDeliveryOrderCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDeliveryOrderCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDeliveryOrderCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDeliveryOrderCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryOrderDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Deliveries"
        ],
        "summary": "删除配送单。",
        "parameters": [
          {
            "name": "deliveryOrderId",
            "in": "path",
            "description": "配送单 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/dictionaries": {
      "get": {
        "tags": [
          "Dictionary"
        ],
        "summary": "查询字典分组。",
        "parameters": [
          {
            "name": "Scope",
            "in": "query",
            "description": "参数字典作用域。",
            "schema": {
              "$ref": "#/components/schemas/DictionaryScope"
            }
          },
          {
            "name": "IncludeItems",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DictionaryGroupDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Dictionary"
        ],
        "summary": "创建字典分组。",
        "requestBody": {
          "description": "创建分组请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryGroupRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryGroupRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryGroupRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryGroupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DictionaryGroupDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/dictionaries/{groupId}": {
      "put": {
        "tags": [
          "Dictionary"
        ],
        "summary": "更新字典分组。",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "分组 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "更新请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryGroupRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryGroupRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryGroupRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryGroupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DictionaryGroupDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Dictionary"
        ],
        "summary": "删除字典分组。",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "分组 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/dictionaries/{groupId}/items": {
      "post": {
        "tags": [
          "Dictionary"
        ],
        "summary": "创建字典项。",
        "parameters": [
          {
            "name": "groupId",
            "in": "path",
            "description": "分组 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "创建请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryItemRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryItemRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryItemRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDictionaryItemRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DictionaryItemDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/dictionaries/items/{itemId}": {
      "put": {
        "tags": [
          "Dictionary"
        ],
        "summary": "更新字典项。",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "字典项 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "更新请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryItemRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryItemRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryItemRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDictionaryItemRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DictionaryItemDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Dictionary"
        ],
        "summary": "删除字典项。",
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "description": "字典项 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/dictionaries/batch": {
      "post": {
        "tags": [
          "Dictionary"
        ],
        "summary": "批量获取字典项（命中缓存）。",
        "requestBody": {
          "description": "批量查询请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DictionaryBatchQueryRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DictionaryBatchQueryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DictionaryBatchQueryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DictionaryBatchQueryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringDictionaryItemDtoIReadOnlyListIReadOnlyDictionaryApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/files/upload": {
      "post": {
        "tags": [
          "Files"
        ],
        "summary": "上传图片或文件。",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "File"
                ],
                "type": "object",
                "properties": {
                  "File": {
                    "type": "string",
                    "description": "上传文件。",
                    "format": "binary"
                  },
                  "Type": {
                    "type": "string",
                    "description": "上传类型。"
                  }
                }
              },
              "encoding": {
                "File": {
                  "style": "form"
                },
                "Type": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUploadResponseApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUploadResponseApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/Health": {
      "get": {
        "tags": [
          "Health"
        ],
        "summary": "获取服务健康状态。",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/inventory/{productSkuId}": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "查询库存。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "productSkuId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/inventory/adjust": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "调整库存（入库/盘点/报损）。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustInventoryCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustInventoryCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustInventoryCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AdjustInventoryCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/inventory/lock": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "锁定库存（下单占用）。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LockInventoryCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LockInventoryCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LockInventoryCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LockInventoryCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/inventory/release": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "释放库存（取消订单等）。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseInventoryCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseInventoryCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseInventoryCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseInventoryCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/inventory/deduct": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "扣减库存（支付或履约成功）。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DeductInventoryCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeductInventoryCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeductInventoryCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeductInventoryCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryItemDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/inventory/{productSkuId}/batches": {
      "get": {
        "tags": [
          "Inventory"
        ],
        "summary": "查询批次列表。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "productSkuId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryBatchDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "新增或更新批次。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "productSkuId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertInventoryBatchCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertInventoryBatchCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertInventoryBatchCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertInventoryBatchCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryBatchDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/inventory/locks/expire": {
      "post": {
        "tags": [
          "Inventory"
        ],
        "summary": "释放过期锁定。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Int32ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/menus": {
      "get": {
        "tags": [
          "Menus"
        ],
        "summary": "获取当前租户的菜单列表（平铺）。",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuDefinitionDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Menus"
        ],
        "summary": "创建菜单。",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMenuCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMenuCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMenuCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMenuCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuDefinitionDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/menus/{menuId}": {
      "get": {
        "tags": [
          "Menus"
        ],
        "summary": "获取菜单详情。",
        "parameters": [
          {
            "name": "menuId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuDefinitionDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuDefinitionDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Menus"
        ],
        "summary": "更新菜单。",
        "parameters": [
          {
            "name": "menuId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMenuCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMenuCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMenuCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMenuCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuDefinitionDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MenuDefinitionDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Menus"
        ],
        "summary": "删除菜单。",
        "parameters": [
          {
            "name": "menuId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchant-categories": {
      "get": {
        "tags": [
          "MerchantCategories"
        ],
        "summary": "列出所有类目。",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantCategoryDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "MerchantCategories"
        ],
        "summary": "新增类目。",
        "requestBody": {
          "description": "创建命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCategoryCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCategoryCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCategoryCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCategoryCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantCategoryDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchant-categories/{categoryId}": {
      "delete": {
        "tags": [
          "MerchantCategories"
        ],
        "summary": "删除类目。",
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "description": "类目 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchant-categories/reorder": {
      "post": {
        "tags": [
          "MerchantCategories"
        ],
        "summary": "批量调整类目排序。",
        "requestBody": {
          "description": "排序命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderMerchantCategoriesCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderMerchantCategoriesCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderMerchantCategoriesCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReorderMerchantCategoriesCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants": {
      "post": {
        "tags": [
          "Merchants"
        ],
        "summary": "创建商户。",
        "requestBody": {
          "description": "创建命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Merchants"
        ],
        "summary": "查询商户列表。",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "状态筛选。",
            "schema": {
              "$ref": "#/components/schemas/MerchantStatus"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码。",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页大小。",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "排序字段。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDesc",
            "in": "query",
            "description": "是否倒序。",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}": {
      "put": {
        "tags": [
          "Merchants"
        ],
        "summary": "更新商户。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "description": "商户 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "更新命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Merchants"
        ],
        "summary": "删除商户。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "description": "商户 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Merchants"
        ],
        "summary": "获取商户概览。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "description": "商户 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}/detail": {
      "get": {
        "tags": [
          "Merchants"
        ],
        "summary": "获取商户详细资料（含证照、合同）。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDetailDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}/documents": {
      "post": {
        "tags": [
          "Merchants"
        ],
        "summary": "上传商户证照信息（先通过文件上传接口获取 COS 地址）。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AddMerchantDocumentCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddMerchantDocumentCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddMerchantDocumentCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddMerchantDocumentCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDocumentDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Merchants"
        ],
        "summary": "商户证照列表。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDocumentDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}/documents/{documentId}/review": {
      "post": {
        "tags": [
          "Merchants"
        ],
        "summary": "审核指定证照。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantDocumentCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantDocumentCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantDocumentCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantDocumentCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDocumentDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}/contracts": {
      "post": {
        "tags": [
          "Merchants"
        ],
        "summary": "新增商户合同。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantContractCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantContractCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantContractCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantContractCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantContractDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Merchants"
        ],
        "summary": "合同列表。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantContractDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}/contracts/{contractId}/status": {
      "put": {
        "tags": [
          "Merchants"
        ],
        "summary": "更新合同状态（生效/终止等）。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "contractId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantContractStatusCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantContractStatusCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantContractStatusCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantContractStatusCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantContractDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}/review": {
      "post": {
        "tags": [
          "Merchants"
        ],
        "summary": "审核商户（通过/驳回）。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewMerchantCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/{merchantId}/audits": {
      "get": {
        "tags": [
          "Merchants"
        ],
        "summary": "审核日志。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantAuditLogDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/merchants/categories": {
      "get": {
        "tags": [
          "Merchants"
        ],
        "summary": "可选商户类目列表。",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/orders": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "创建订单。",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "查询订单列表。",
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "订单状态。",
            "schema": {
              "$ref": "#/components/schemas/OrderStatus"
            }
          },
          {
            "name": "paymentStatus",
            "in": "query",
            "description": "支付记录状态。",
            "schema": {
              "$ref": "#/components/schemas/PaymentStatus"
            }
          },
          {
            "name": "orderNo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDesc",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/orders/{orderId}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "获取订单详情。",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Orders"
        ],
        "summary": "更新订单。",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Orders"
        ],
        "summary": "删除订单。",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/payments": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "创建支付记录。",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "查询支付记录列表。",
        "parameters": [
          {
            "name": "orderId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "支付记录状态。",
            "schema": {
              "$ref": "#/components/schemas/PaymentStatus"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDesc",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/payments/{paymentId}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "获取支付记录详情。",
        "parameters": [
          {
            "name": "paymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Payments"
        ],
        "summary": "更新支付记录。",
        "parameters": [
          {
            "name": "paymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePaymentCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePaymentCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePaymentCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePaymentCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Payments"
        ],
        "summary": "删除支付记录。",
        "parameters": [
          {
            "name": "paymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/permissions": {
      "get": {
        "tags": [
          "Permissions"
        ],
        "summary": "分页查询权限。",
        "description": "示例：GET /api/admin/v1/permissions?keyword=order&page=1&pageSize=20",
        "parameters": [
          {
            "name": "Keyword",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SortDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Permissions"
        ],
        "summary": "创建权限。",
        "requestBody": {
          "description": "创建命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePermissionCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePermissionCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePermissionCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePermissionCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/permissions/tree": {
      "get": {
        "tags": [
          "Permissions"
        ],
        "summary": "获取权限树。",
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "关键字（可选）。",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionTreeDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/permissions/{permissionId}": {
      "put": {
        "tags": [
          "Permissions"
        ],
        "summary": "更新权限。",
        "parameters": [
          {
            "name": "permissionId",
            "in": "path",
            "description": "权限 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "更新命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePermissionCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePermissionCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePermissionCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePermissionCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Permissions"
        ],
        "summary": "删除权限。",
        "parameters": [
          {
            "name": "permissionId",
            "in": "path",
            "description": "权限 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "创建商品。",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProductCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "查询商品列表。",
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "商品状态。",
            "schema": {
              "$ref": "#/components/schemas/ProductStatus"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDesc",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "获取商品详情。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Products"
        ],
        "summary": "更新商品。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProductCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Products"
        ],
        "summary": "删除商品。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/detail": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "获取商品全量详情。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDetailDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/publish": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "上架商品。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PublishProductCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishProductCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishProductCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublishProductCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/unpublish": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "下架商品。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UnpublishProductCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnpublishProductCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UnpublishProductCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UnpublishProductCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/skus": {
      "put": {
        "tags": [
          "Products"
        ],
        "summary": "替换商品 SKU。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductSkusCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductSkusCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductSkusCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductSkusCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductSkuDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/attributes": {
      "put": {
        "tags": [
          "Products"
        ],
        "summary": "替换商品规格。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAttributesCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAttributesCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAttributesCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAttributesCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductAttributeGroupDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/addons": {
      "put": {
        "tags": [
          "Products"
        ],
        "summary": "替换商品加料。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAddonsCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAddonsCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAddonsCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductAddonsCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductAddonGroupDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/media": {
      "put": {
        "tags": [
          "Products"
        ],
        "summary": "替换商品媒资。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductMediaCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductMediaCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductMediaCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductMediaCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductMediaAssetDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/products/{productId}/pricing-rules": {
      "put": {
        "tags": [
          "Products"
        ],
        "summary": "替换商品价格策略。",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductPricingRulesCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductPricingRulesCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductPricingRulesCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceProductPricingRulesCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductPricingRuleDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/v1/tenant-packages": {
      "get": {
        "tags": [
          "PublicTenantPackages"
        ],
        "summary": "分页获取已启用的租户套餐。",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantPackageDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/v1/tenants/self-register": {
      "post": {
        "tags": [
          "PublicTenants"
        ],
        "summary": "自助注册租户并生成初始管理员。",
        "requestBody": {
          "description": "自助注册命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SelfRegisterTenantCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SelfRegisterTenantCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SelfRegisterTenantCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SelfRegisterTenantCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SelfRegisterResultDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/v1/tenants/{tenantId}/verification": {
      "post": {
        "tags": [
          "PublicTenants"
        ],
        "summary": "自助提交或更新实名资料。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "租户 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "实名资料。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantVerificationDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/v1/tenants/{tenantId}/status": {
      "get": {
        "tags": [
          "PublicTenants"
        ],
        "summary": "查询租户入住进度。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "租户 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantProgressDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/v1/tenants/{tenantId}/subscriptions/initial": {
      "post": {
        "tags": [
          "PublicTenantSubscriptions"
        ],
        "summary": "初次绑定租户订阅（默认 0 个月）。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "租户 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "绑定请求。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/BindInitialTenantSubscriptionCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BindInitialTenantSubscriptionCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BindInitialTenantSubscriptionCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BindInitialTenantSubscriptionCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantSubscriptionDtoApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantSubscriptionDtoApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantSubscriptionDtoApiResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantSubscriptionDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/role-templates": {
      "get": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "分页查询角色模板。",
        "parameters": [
          {
            "name": "isActive",
            "in": "query",
            "description": "是否启用筛选。",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleTemplateDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "创建角色模板。",
        "requestBody": {
          "description": "创建命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleTemplateCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleTemplateCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleTemplateCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleTemplateCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleTemplateDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/role-templates/{templateCode}/clone": {
      "post": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "克隆角色模板。",
        "parameters": [
          {
            "name": "templateCode",
            "in": "path",
            "description": "源模板编码。",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "克隆命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CloneRoleTemplateCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneRoleTemplateCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneRoleTemplateCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CloneRoleTemplateCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleTemplateDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/role-templates/{templateCode}": {
      "get": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "获取角色模板详情。",
        "parameters": [
          {
            "name": "templateCode",
            "in": "path",
            "description": "模板编码。",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleTemplateDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleTemplateDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "更新角色模板。",
        "parameters": [
          {
            "name": "templateCode",
            "in": "path",
            "description": "模板编码。",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "更新命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleTemplateCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleTemplateCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleTemplateCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleTemplateCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleTemplateDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleTemplateDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "删除角色模板。",
        "parameters": [
          {
            "name": "templateCode",
            "in": "path",
            "description": "模板编码。",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/role-templates/{templateCode}/permissions": {
      "get": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "获取模板的权限列表。",
        "parameters": [
          {
            "name": "templateCode",
            "in": "path",
            "description": "模板编码。",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionTemplateDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/role-templates/init": {
      "post": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "为当前租户批量初始化预置角色模板。",
        "requestBody": {
          "description": "初始化命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/InitializeRoleTemplatesCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitializeRoleTemplatesCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InitializeRoleTemplatesCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InitializeRoleTemplatesCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/role-templates/{templateCode}/initialize-tenant": {
      "post": {
        "tags": [
          "RoleTemplates"
        ],
        "summary": "将单个模板初始化到当前租户。",
        "parameters": [
          {
            "name": "templateCode",
            "in": "path",
            "description": "模板编码。",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/pickup/settings": {
      "get": {
        "tags": [
          "StorePickup"
        ],
        "summary": "获取自提配置。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorePickupSettingDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "StorePickup"
        ],
        "summary": "更新自提配置。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertStorePickupSettingCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertStorePickupSettingCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertStorePickupSettingCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertStorePickupSettingCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorePickupSettingDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/pickup/slots": {
      "get": {
        "tags": [
          "StorePickup"
        ],
        "summary": "查询档期列表。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorePickupSlotDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "StorePickup"
        ],
        "summary": "创建档期。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStorePickupSlotCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStorePickupSlotCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStorePickupSlotCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStorePickupSlotCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorePickupSlotDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/pickup/slots/{slotId}": {
      "put": {
        "tags": [
          "StorePickup"
        ],
        "summary": "更新档期。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "slotId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStorePickupSlotCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStorePickupSlotCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStorePickupSlotCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStorePickupSlotCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorePickupSlotDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "StorePickup"
        ],
        "summary": "删除档期。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "slotId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores": {
      "post": {
        "tags": [
          "Stores"
        ],
        "summary": "创建门店。",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Stores"
        ],
        "summary": "查询门店列表。",
        "parameters": [
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "门店运营状态。",
            "schema": {
              "$ref": "#/components/schemas/StoreStatus"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDesc",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}": {
      "get": {
        "tags": [
          "Stores"
        ],
        "summary": "获取门店详情。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Stores"
        ],
        "summary": "更新门店。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Stores"
        ],
        "summary": "删除门店。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/business-hours": {
      "get": {
        "tags": [
          "Stores"
        ],
        "summary": "查询门店营业时段。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreBusinessHourDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stores"
        ],
        "summary": "新增营业时段。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreBusinessHourCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreBusinessHourCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreBusinessHourCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreBusinessHourCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreBusinessHourDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/business-hours/{businessHourId}": {
      "put": {
        "tags": [
          "Stores"
        ],
        "summary": "更新营业时段。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "businessHourId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreBusinessHourCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreBusinessHourCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreBusinessHourCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreBusinessHourCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreBusinessHourDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Stores"
        ],
        "summary": "删除营业时段。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "businessHourId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/delivery-zones": {
      "get": {
        "tags": [
          "Stores"
        ],
        "summary": "查询配送区域。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreDeliveryZoneDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stores"
        ],
        "summary": "新增配送区域。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreDeliveryZoneCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreDeliveryZoneCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreDeliveryZoneCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreDeliveryZoneCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreDeliveryZoneDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/delivery-zones/{deliveryZoneId}": {
      "put": {
        "tags": [
          "Stores"
        ],
        "summary": "更新配送区域。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "deliveryZoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreDeliveryZoneCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreDeliveryZoneCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreDeliveryZoneCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreDeliveryZoneCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreDeliveryZoneDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Stores"
        ],
        "summary": "删除配送区域。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "deliveryZoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/holidays": {
      "get": {
        "tags": [
          "Stores"
        ],
        "summary": "查询门店节假日。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreHolidayDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Stores"
        ],
        "summary": "新增节假日配置。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreHolidayCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreHolidayCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreHolidayCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreHolidayCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreHolidayDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/holidays/{holidayId}": {
      "put": {
        "tags": [
          "Stores"
        ],
        "summary": "更新节假日配置。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "holidayId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreHolidayCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreHolidayCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreHolidayCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreHolidayCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreHolidayDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Stores"
        ],
        "summary": "删除节假日配置。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "holidayId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/shifts": {
      "get": {
        "tags": [
          "StoreShifts"
        ],
        "summary": "查询排班（默认未来 7 天）。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "staffId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreEmployeeShiftDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "StoreShifts"
        ],
        "summary": "创建排班。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreEmployeeShiftCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreEmployeeShiftCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreEmployeeShiftCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreEmployeeShiftCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreEmployeeShiftDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/shifts/{shiftId}": {
      "put": {
        "tags": [
          "StoreShifts"
        ],
        "summary": "更新排班。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "shiftId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreEmployeeShiftCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreEmployeeShiftCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreEmployeeShiftCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreEmployeeShiftCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreEmployeeShiftDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "StoreShifts"
        ],
        "summary": "删除排班。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "shiftId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/staffs": {
      "get": {
        "tags": [
          "StoreStaffs"
        ],
        "summary": "查询门店员工列表。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "role",
            "in": "query",
            "description": "商户员工角色。",
            "schema": {
              "$ref": "#/components/schemas/StaffRoleType"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "员工账号状态。",
            "schema": {
              "$ref": "#/components/schemas/StaffStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreStaffDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "StoreStaffs"
        ],
        "summary": "创建门店员工。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreStaffCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreStaffCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreStaffCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreStaffCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreStaffDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/staffs/{staffId}": {
      "put": {
        "tags": [
          "StoreStaffs"
        ],
        "summary": "更新门店员工。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "staffId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreStaffCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreStaffCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreStaffCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreStaffCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreStaffDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "StoreStaffs"
        ],
        "summary": "删除门店员工。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "staffId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/table-areas": {
      "get": {
        "tags": [
          "StoreTableAreas"
        ],
        "summary": "查询区域列表。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreTableAreaDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "StoreTableAreas"
        ],
        "summary": "创建区域。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreTableAreaCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreTableAreaCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreTableAreaCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateStoreTableAreaCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreTableAreaDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/table-areas/{areaId}": {
      "put": {
        "tags": [
          "StoreTableAreas"
        ],
        "summary": "更新区域。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "areaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableAreaCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableAreaCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableAreaCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableAreaCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreTableAreaDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "StoreTableAreas"
        ],
        "summary": "删除区域。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "areaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/tables": {
      "get": {
        "tags": [
          "StoreTables"
        ],
        "summary": "查询桌码列表。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "areaId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "桌台占用状态。",
            "schema": {
              "$ref": "#/components/schemas/StoreTableStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreTableDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "StoreTables"
        ],
        "summary": "批量生成桌码。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateStoreTablesCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateStoreTablesCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateStoreTablesCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateStoreTablesCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreTableDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/tables/{tableId}": {
      "put": {
        "tags": [
          "StoreTables"
        ],
        "summary": "更新桌码。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStoreTableCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StoreTableDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "StoreTables"
        ],
        "summary": "删除桌码。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/stores/{storeId}/tables/export": {
      "post": {
        "tags": [
          "StoreTables"
        ],
        "summary": "导出桌码二维码 ZIP。",
        "parameters": [
          {
            "name": "storeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ExportStoreTableQRCodesQuery"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportStoreTableQRCodesQuery"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportStoreTableQRCodesQuery"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExportStoreTableQRCodesQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/system-parameters": {
      "post": {
        "tags": [
          "SystemParameters"
        ],
        "summary": "创建系统参数。",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSystemParameterCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSystemParameterCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSystemParameterCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSystemParameterCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemParameterDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "SystemParameters"
        ],
        "summary": "查询系统参数列表。",
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isEnabled",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDesc",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemParameterDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/system-parameters/{parameterId}": {
      "get": {
        "tags": [
          "SystemParameters"
        ],
        "summary": "获取系统参数详情。",
        "parameters": [
          {
            "name": "parameterId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemParameterDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SystemParameters"
        ],
        "summary": "更新系统参数。",
        "parameters": [
          {
            "name": "parameterId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSystemParameterCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSystemParameterCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSystemParameterCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSystemParameterCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemParameterDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "SystemParameters"
        ],
        "summary": "删除系统参数。",
        "parameters": [
          {
            "name": "parameterId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/announcements": {
      "get": {
        "tags": [
          "TenantAnnouncements"
        ],
        "summary": "分页查询公告。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "AnnouncementType",
            "in": "query",
            "description": "租户公告类型。",
            "schema": {
              "$ref": "#/components/schemas/TenantAnnouncementType"
            }
          },
          {
            "name": "IsActive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OnlyEffective",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "TenantAnnouncements"
        ],
        "summary": "创建公告。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantAnnouncementCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantAnnouncementCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantAnnouncementCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantAnnouncementCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/announcements/{announcementId}": {
      "get": {
        "tags": [
          "TenantAnnouncements"
        ],
        "summary": "公告详情。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "announcementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "TenantAnnouncements"
        ],
        "summary": "更新公告。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "announcementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantAnnouncementCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantAnnouncementCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantAnnouncementCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantAnnouncementCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "TenantAnnouncements"
        ],
        "summary": "删除公告。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "announcementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/announcements/{announcementId}/read": {
      "post": {
        "tags": [
          "TenantAnnouncements"
        ],
        "summary": "标记公告已读。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "announcementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAnnouncementDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/billings": {
      "get": {
        "tags": [
          "TenantBillings"
        ],
        "summary": "分页查询账单。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "账单状态。",
            "schema": {
              "$ref": "#/components/schemas/TenantBillingStatus"
            }
          },
          {
            "name": "From",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "To",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBillingDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "TenantBillings"
        ],
        "summary": "创建账单。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBillingCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBillingCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBillingCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantBillingCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBillingDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/billings/{billingId}": {
      "get": {
        "tags": [
          "TenantBillings"
        ],
        "summary": "账单详情。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "billingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBillingDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBillingDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/billings/{billingId}/pay": {
      "post": {
        "tags": [
          "TenantBillings"
        ],
        "summary": "标记账单已支付。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "billingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MarkTenantBillingPaidCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkTenantBillingPaidCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkTenantBillingPaidCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MarkTenantBillingPaidCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBillingDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantBillingDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/notifications": {
      "get": {
        "tags": [
          "TenantNotifications"
        ],
        "summary": "分页查询通知。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Severity",
            "in": "query",
            "description": "租户通知的重要程度。",
            "schema": {
              "$ref": "#/components/schemas/TenantNotificationSeverity"
            }
          },
          {
            "name": "UnreadOnly",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantNotificationDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/notifications/{notificationId}/read": {
      "post": {
        "tags": [
          "TenantNotifications"
        ],
        "summary": "标记通知已读。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "notificationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantNotificationDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantNotificationDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenant-packages": {
      "get": {
        "tags": [
          "TenantPackages"
        ],
        "summary": "分页查询租户套餐。",
        "parameters": [
          {
            "name": "Keyword",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsActive",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantPackageDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "TenantPackages"
        ],
        "summary": "创建套餐。",
        "requestBody": {
          "description": "创建命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantPackageCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantPackageCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantPackageCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantPackageCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantPackageDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenant-packages/{tenantPackageId}": {
      "get": {
        "tags": [
          "TenantPackages"
        ],
        "summary": "查看套餐详情。",
        "parameters": [
          {
            "name": "tenantPackageId",
            "in": "path",
            "description": "套餐 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantPackageDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantPackageDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "TenantPackages"
        ],
        "summary": "更新套餐。",
        "parameters": [
          {
            "name": "tenantPackageId",
            "in": "path",
            "description": "套餐 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "更新命令。",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantPackageCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantPackageCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantPackageCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTenantPackageCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantPackageDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantPackageDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "TenantPackages"
        ],
        "summary": "删除套餐。",
        "parameters": [
          {
            "name": "tenantPackageId",
            "in": "path",
            "description": "套餐 ID。",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/roles": {
      "get": {
        "tags": [
          "TenantRoles"
        ],
        "summary": "租户角色分页。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "TenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "Keyword",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SortDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "TenantRoles"
        ],
        "summary": "创建角色。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/roles/{roleId}": {
      "get": {
        "tags": [
          "TenantRoles"
        ],
        "summary": "角色详情（含权限）。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDetailDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDetailDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "TenantRoles"
        ],
        "summary": "更新角色。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDtoApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "TenantRoles"
        ],
        "summary": "删除角色。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/roles/{roleId}/permissions": {
      "get": {
        "tags": [
          "TenantRoles"
        ],
        "summary": "获取角色权限列表。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionDtoIReadOnlyListApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionDtoIReadOnlyListApiResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "TenantRoles"
        ],
        "summary": "覆盖角色权限。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "roleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/BindRolePermissionsCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BindRolePermissionsCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BindRolePermissionsCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BindRolePermissionsCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants": {
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "注册租户并初始化套餐。",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterTenantCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterTenantCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterTenantCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterTenantCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantDtoApiResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Tenants"
        ],
        "summary": "分页查询租户。",
        "parameters": [
          {
            "name": "Status",
            "in": "query",
            "description": "租户服务状态。",
            "schema": {
              "$ref": "#/components/schemas/TenantStatus"
            }
          },
          {
            "name": "VerificationStatus",
            "in": "query",
            "description": "租户实名认证状态。",
            "schema": {
              "$ref": "#/components/schemas/TenantVerificationStatus"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ContactName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ContactPhone",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Keyword",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}": {
      "get": {
        "tags": [
          "Tenants"
        ],
        "summary": "查看租户详情。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantDetailDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/verification": {
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "提交或更新实名认证资料。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTenantVerificationCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantVerificationDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/review": {
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "审核租户。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewTenantCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewTenantCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewTenantCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewTenantCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/subscriptions": {
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "创建或续费租户订阅。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantSubscriptionCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantSubscriptionCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantSubscriptionCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTenantSubscriptionCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantSubscriptionDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/subscriptions/{subscriptionId}/plan": {
      "put": {
        "tags": [
          "Tenants"
        ],
        "summary": "套餐升降配。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeTenantSubscriptionPlanCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeTenantSubscriptionPlanCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeTenantSubscriptionPlanCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeTenantSubscriptionPlanCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantSubscriptionDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/audits": {
      "get": {
        "tags": [
          "Tenants"
        ],
        "summary": "查询审核日志。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TenantAuditLogDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/tenants/{tenantId}/quotas/check": {
      "post": {
        "tags": [
          "Tenants"
        ],
        "summary": "配额校验并占用额度（门店/账号/短信/配送）。",
        "description": "需在请求头携带 X-Tenant-Id 对应的租户。",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CheckTenantQuotaCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckTenantQuotaCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckTenantQuotaCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CheckTenantQuotaCommand"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotaCheckResultDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/admin/v1/users/permissions": {
      "get": {
        "tags": [
          "UserPermissions"
        ],
        "summary": "分页查询当前租户用户的角色与权限概览。",
        "description": "示例：\n```\nGET /api/admin/v1/users/permissions?keyword=ops&page=1&pageSize=20&sortBy=createdAt&sortDescending=true\nHeader: Authorization: Bearer <JWT>\n响应:\n{\n  \"success\": true,\n  \"code\": 200,\n  \"data\": {\n    \"items\": [\n      {\n        \"userId\": \"900123456789012346\",\n        \"tenantId\": \"100000000000000001\",\n        \"merchantId\": \"200000000000000001\",\n        \"account\": \"ops.manager\",\n        \"displayName\": \"运营经理\",\n        \"roles\": [\"OpsManager\", \"Reporter\"],\n        \"permissions\": [\"delivery:read\", \"order:read\", \"payment:read\"],\n        \"createdAt\": \"2025-12-01T08:30:00Z\"\n      }\n    ],\n    \"page\": 1,\n    \"pageSize\": 20,\n    \"totalCount\": 1,\n    \"totalPages\": 1\n  }\n}\n```",
        "parameters": [
          {
            "name": "Keyword",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SortBy",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SortDescending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPermissionDtoPagedResultApiResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddMerchantDocumentCommand": {
        "required": [
          "documentType",
          "fileUrl",
          "merchantId"
        ],
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "documentType": {
            "$ref": "#/components/schemas/MerchantDocumentType"
          },
          "fileUrl": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "documentNumber": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "issuedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdjustInventoryCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "productSkuId": {
            "type": "integer",
            "format": "int64"
          },
          "quantityDelta": {
            "type": "integer",
            "format": "int32"
          },
          "adjustmentType": {
            "$ref": "#/components/schemas/InventoryAdjustmentType"
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "safetyStock": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isSoldOut": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AdminLoginRequest": {
        "required": [
          "account",
          "password"
        ],
        "type": "object",
        "properties": {
          "account": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "password": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "BindInitialTenantSubscriptionCommand": {
        "required": [
          "tenantId",
          "tenantPackageId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantPackageId": {
            "type": "integer",
            "format": "int64"
          },
          "autoRenew": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BindRolePermissionsCommand": {
        "type": "object",
        "properties": {
          "roleId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "permissionIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BooleanApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "boolean",
            "description": "业务数据。"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "BusinessHourType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "营业时段类型。",
        "format": "int32"
      },
      "ChangeTenantSubscriptionPlanCommand": {
        "required": [
          "targetPackageId",
          "tenantId",
          "tenantSubscriptionId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantSubscriptionId": {
            "type": "integer",
            "format": "int64"
          },
          "targetPackageId": {
            "type": "integer",
            "format": "int64"
          },
          "immediate": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CheckTenantQuotaCommand": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "quotaType": {
            "$ref": "#/components/schemas/TenantQuotaType"
          },
          "delta": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "CloneRoleTemplateCommand": {
        "type": "object",
        "properties": {
          "sourceTemplateCode": {
            "type": "string",
            "nullable": true
          },
          "newTemplateCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "permissionCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ContractStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "商户合同状态。",
        "format": "int32"
      },
      "CreateDeliveryOrderCommand": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "provider": {
            "$ref": "#/components/schemas/DeliveryProvider"
          },
          "providerOrderId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/DeliveryStatus"
          },
          "deliveryFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "courierName": {
            "type": "string",
            "nullable": true
          },
          "courierPhone": {
            "type": "string",
            "nullable": true
          },
          "dispatchedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pickedUpAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "deliveredAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "failureReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateDictionaryGroupRequest": {
        "required": [
          "code",
          "name",
          "scope"
        ],
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "scope": {
            "$ref": "#/components/schemas/DictionaryScope"
          },
          "description": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateDictionaryItemRequest": {
        "required": [
          "groupId",
          "key",
          "value"
        ],
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "format": "int64"
          },
          "key": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "value": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateMenuCommand": {
        "type": "object",
        "properties": {
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "component": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "isIframe": {
            "type": "boolean"
          },
          "link": {
            "type": "string",
            "nullable": true
          },
          "keepAlive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "requiredPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "metaPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "metaRoles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "authList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuAuthItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateMerchantCategoryCommand": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateMerchantCommand": {
        "required": [
          "brandName",
          "contactPhone"
        ],
        "type": "object",
        "properties": {
          "brandName": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "brandAlias": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "logoUrl": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "category": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "contactPhone": {
            "maxLength": 32,
            "minLength": 1,
            "type": "string"
          },
          "contactEmail": {
            "maxLength": 128,
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/MerchantStatus"
          }
        },
        "additionalProperties": false
      },
      "CreateMerchantContractCommand": {
        "required": [
          "contractNumber",
          "fileUrl",
          "merchantId"
        ],
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "contractNumber": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "fileUrl": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateOrderCommand": {
        "type": "object",
        "properties": {
          "orderNo": {
            "type": "string",
            "nullable": true
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "channel": {
            "$ref": "#/components/schemas/OrderChannel"
          },
          "deliveryType": {
            "$ref": "#/components/schemas/DeliveryType"
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "customerPhone": {
            "type": "string",
            "nullable": true
          },
          "tableNo": {
            "type": "string",
            "nullable": true
          },
          "queueNumber": {
            "type": "string",
            "nullable": true
          },
          "reservationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "itemsAmount": {
            "type": "number",
            "format": "double"
          },
          "discountAmount": {
            "type": "number",
            "format": "double"
          },
          "payableAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelReason": {
            "type": "string",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePaymentCommand": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "status": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "tradeNo": {
            "type": "string",
            "nullable": true
          },
          "channelTransactionId": {
            "type": "string",
            "nullable": true
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "nullable": true
          },
          "payload": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePermissionCommand": {
        "type": "object",
        "properties": {
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateProductCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "categoryId": {
            "type": "integer",
            "format": "int64"
          },
          "spuCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "subtitle": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "originalPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stockQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxQuantityPerOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ProductStatus"
          },
          "coverImage": {
            "type": "string",
            "nullable": true
          },
          "galleryImages": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "enableDineIn": {
            "type": "boolean"
          },
          "enablePickup": {
            "type": "boolean"
          },
          "enableDelivery": {
            "type": "boolean"
          },
          "isFeatured": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateRoleCommand": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateRoleTemplateCommand": {
        "type": "object",
        "properties": {
          "templateCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "permissionCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateStoreBusinessHourCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "dayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "hourType": {
            "$ref": "#/components/schemas/BusinessHourType"
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "capacityLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateStoreCommand": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "managerName": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/StoreStatus"
          },
          "province": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "district": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "announcement": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "string",
            "nullable": true
          },
          "deliveryRadiusKm": {
            "type": "number",
            "format": "double"
          },
          "supportsDineIn": {
            "type": "boolean"
          },
          "supportsPickup": {
            "type": "boolean"
          },
          "supportsDelivery": {
            "type": "boolean"
          },
          "supportsReservation": {
            "type": "boolean"
          },
          "supportsQueueing": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateStoreDeliveryZoneCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "zoneName": {
            "type": "string",
            "nullable": true
          },
          "polygonGeoJson": {
            "type": "string",
            "nullable": true
          },
          "minimumOrderAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "deliveryFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimatedMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CreateStoreEmployeeShiftCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "staffId": {
            "type": "integer",
            "format": "int64"
          },
          "shiftDate": {
            "type": "string",
            "format": "date-time"
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "roleType": {
            "$ref": "#/components/schemas/StaffRoleType"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateStoreHolidayCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "isClosed": {
            "type": "boolean"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateStorePickupSlotCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "cutoffMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "capacity": {
            "type": "integer",
            "format": "int32"
          },
          "weekdays": {
            "type": "string",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateStoreStaffCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "roleType": {
            "$ref": "#/components/schemas/StaffRoleType"
          }
        },
        "additionalProperties": false
      },
      "CreateStoreTableAreaCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CreateSystemParameterCommand": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateTenantAnnouncementCommand": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "announcementType": {
            "$ref": "#/components/schemas/TenantAnnouncementType"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time"
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateTenantBillingCommand": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "statementNo": {
            "type": "string",
            "nullable": true
          },
          "periodStart": {
            "type": "string",
            "format": "date-time"
          },
          "periodEnd": {
            "type": "string",
            "format": "date-time"
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "amountPaid": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "$ref": "#/components/schemas/TenantBillingStatus"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "lineItemsJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateTenantPackageCommand": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "packageType": {
            "$ref": "#/components/schemas/TenantPackageType"
          },
          "monthlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "yearlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxStoreCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxAccountCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxStorageGb": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxSmsCredits": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxDeliveryOrders": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "featurePoliciesJson": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CreateTenantSubscriptionCommand": {
        "required": [
          "tenantId",
          "tenantPackageId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantPackageId": {
            "type": "integer",
            "format": "int64"
          },
          "durationMonths": {
            "type": "integer",
            "format": "int32"
          },
          "autoRenew": {
            "type": "boolean"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CurrentUserProfile": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "format": "int64"
          },
          "account": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "avatar": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CurrentUserProfileApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/CurrentUserProfile"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "DayOfWeek": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "format": "int32"
      },
      "DeductInventoryCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "productSkuId": {
            "type": "integer",
            "format": "int64"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "isPresaleOrder": {
            "type": "boolean"
          },
          "idempotencyKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeliveryEventDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "deliveryOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "eventType": {
            "$ref": "#/components/schemas/DeliveryEventType"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "payload": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeliveryEventType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "配送事件类型。",
        "format": "int32"
      },
      "DeliveryOrderDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "provider": {
            "$ref": "#/components/schemas/DeliveryProvider"
          },
          "providerOrderId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/DeliveryStatus"
          },
          "deliveryFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "courierName": {
            "type": "string",
            "nullable": true
          },
          "courierPhone": {
            "type": "string",
            "nullable": true
          },
          "dispatchedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pickedUpAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "deliveredAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "failureReason": {
            "type": "string",
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryEventDto"
            },
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "DeliveryOrderDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/DeliveryOrderDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "DeliveryOrderDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryOrderDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "DeliveryOrderDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/DeliveryOrderDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "DeliveryProvider": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "配送服务商类型。",
        "format": "int32"
      },
      "DeliveryStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "配送状态。",
        "format": "int32"
      },
      "DeliveryType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "履约/交付方式。",
        "format": "int32"
      },
      "DictionaryBatchQueryRequest": {
        "required": [
          "codes"
        ],
        "type": "object",
        "properties": {
          "codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "DictionaryGroupDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "scope": {
            "$ref": "#/components/schemas/DictionaryScope"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DictionaryItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DictionaryGroupDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/DictionaryGroupDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "DictionaryGroupDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DictionaryGroupDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "DictionaryItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "groupId": {
            "type": "integer",
            "format": "int64"
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "isDefault": {
            "type": "boolean"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DictionaryItemDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/DictionaryItemDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "DictionaryScope": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "description": "参数字典作用域。",
        "format": "int32"
      },
      "ExportStoreTableQRCodesQuery": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "areaId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "qrContentTemplate": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FileUploadResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "fileSize": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "FileUploadResponseApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/FileUploadResponse"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "GenerateStoreTablesCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "tableCodePrefix": {
            "type": "string",
            "nullable": true
          },
          "startNumber": {
            "type": "integer",
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "defaultCapacity": {
            "type": "integer",
            "format": "int32"
          },
          "areaId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "tags": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InitializeRoleTemplatesCommand": {
        "type": "object",
        "properties": {
          "templateCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Int32ApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "integer",
            "description": "业务数据。",
            "format": "int32"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "InventoryAdjustmentType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "库存调整类型。",
        "format": "int32"
      },
      "InventoryBatchDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "productSkuId": {
            "type": "integer",
            "format": "int64"
          },
          "batchNumber": {
            "type": "string",
            "nullable": true
          },
          "productionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expireDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "remainingQuantity": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "InventoryBatchDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/InventoryBatchDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "InventoryBatchDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryBatchDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "InventoryItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "productSkuId": {
            "type": "integer",
            "format": "int64"
          },
          "batchNumber": {
            "type": "string",
            "nullable": true
          },
          "quantityOnHand": {
            "type": "integer",
            "format": "int32"
          },
          "quantityReserved": {
            "type": "integer",
            "format": "int32"
          },
          "safetyStock": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "expireDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isPresale": {
            "type": "boolean"
          },
          "presaleStartTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "presaleEndTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "presaleCapacity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "presaleLocked": {
            "type": "integer",
            "format": "int32"
          },
          "maxQuantityPerOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "isSoldOut": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "InventoryItemDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/InventoryItemDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "LockInventoryCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "productSkuId": {
            "type": "integer",
            "format": "int64"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "isPresaleOrder": {
            "type": "boolean"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "idempotencyKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarkTenantBillingPaidCommand": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "billingId": {
            "type": "integer",
            "format": "int64"
          },
          "amountPaid": {
            "type": "number",
            "format": "double"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "MediaAssetType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "商品媒资类型。",
        "format": "int32"
      },
      "MenuAuthItemDto": {
        "required": [
          "authMark",
          "title"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "authMark": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MenuDefinitionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "component": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "isIframe": {
            "type": "boolean"
          },
          "link": {
            "type": "string",
            "nullable": true
          },
          "keepAlive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "requiredPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "metaPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "metaRoles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "authList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuAuthItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MenuDefinitionDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MenuDefinitionDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MenuDefinitionDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuDefinitionDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MenuMetaDto": {
        "required": [
          "title"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "keepAlive": {
            "type": "boolean"
          },
          "isIframe": {
            "type": "boolean"
          },
          "link": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "authList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuAuthItemDto"
            },
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MenuNodeDto": {
        "required": [
          "component",
          "meta",
          "name",
          "path"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "component": {
            "type": "string",
            "nullable": true
          },
          "meta": {
            "$ref": "#/components/schemas/MenuMetaDto"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuNodeDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MenuNodeDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuNodeDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantAuditAction": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "商户审核日志动作。",
        "format": "int32"
      },
      "MerchantAuditLogDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "action": {
            "$ref": "#/components/schemas/MerchantAuditAction"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "operatorName": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "MerchantAuditLogDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantAuditLogDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "MerchantAuditLogDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MerchantAuditLogDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantCategoryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "displayOrder": {
            "type": "integer",
            "format": "int32"
          },
          "isActive": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "MerchantCategoryDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MerchantCategoryDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantCategoryDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantCategoryDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantCategoryOrderItem": {
        "required": [
          "categoryId"
        ],
        "type": "object",
        "properties": {
          "categoryId": {
            "type": "integer",
            "format": "int64"
          },
          "displayOrder": {
            "maximum": 100000,
            "minimum": -1000,
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "MerchantContractDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "contractNumber": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "fileUrl": {
            "type": "string",
            "nullable": true
          },
          "signedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "terminatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "terminationReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantContractDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MerchantContractDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantContractDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantContractDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantDetailDto": {
        "type": "object",
        "properties": {
          "merchant": {
            "$ref": "#/components/schemas/MerchantDto"
          },
          "documents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantDocumentDto"
            },
            "nullable": true
          },
          "contracts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantContractDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MerchantDetailDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MerchantDetailDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantDocumentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "documentType": {
            "$ref": "#/components/schemas/MerchantDocumentType"
          },
          "status": {
            "$ref": "#/components/schemas/MerchantDocumentStatus"
          },
          "fileUrl": {
            "type": "string",
            "nullable": true
          },
          "documentNumber": {
            "type": "string",
            "nullable": true
          },
          "issuedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "remarks": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "MerchantDocumentDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MerchantDocumentDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantDocumentDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantDocumentDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantDocumentStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "证照审核状态。",
        "format": "int32"
      },
      "MerchantDocumentType": {
        "enum": [
          0,
          1,
          2,
          99
        ],
        "type": "integer",
        "description": "商户证照类型。",
        "format": "int32"
      },
      "MerchantDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "brandName": {
            "type": "string",
            "nullable": true
          },
          "brandAlias": {
            "type": "string",
            "nullable": true
          },
          "logoUrl": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "contactPhone": {
            "type": "string",
            "nullable": true
          },
          "contactEmail": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/MerchantStatus"
          },
          "joinedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "MerchantDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/MerchantDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "MerchantStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "商户入驻状态。",
        "format": "int32"
      },
      "ObjectApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "OrderChannel": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "下单渠道。",
        "format": "int32"
      },
      "OrderDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "orderNo": {
            "type": "string",
            "nullable": true
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "channel": {
            "$ref": "#/components/schemas/OrderChannel"
          },
          "deliveryType": {
            "$ref": "#/components/schemas/DeliveryType"
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "customerPhone": {
            "type": "string",
            "nullable": true
          },
          "tableNo": {
            "type": "string",
            "nullable": true
          },
          "queueNumber": {
            "type": "string",
            "nullable": true
          },
          "reservationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "itemsAmount": {
            "type": "number",
            "format": "double"
          },
          "discountAmount": {
            "type": "number",
            "format": "double"
          },
          "payableAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelReason": {
            "type": "string",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItemDto"
            },
            "nullable": true
          },
          "statusHistory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatusHistoryDto"
            },
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RefundRequestDto"
            },
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "OrderDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/OrderDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "OrderDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "OrderDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/OrderDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "OrderItemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "skuName": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "format": "double"
          },
          "discountAmount": {
            "type": "number",
            "format": "double"
          },
          "subTotal": {
            "type": "number",
            "format": "double"
          },
          "attributesJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderItemRequest": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "productName": {
            "type": "string",
            "nullable": true
          },
          "skuName": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "unitPrice": {
            "type": "number",
            "format": "double"
          },
          "discountAmount": {
            "type": "number",
            "format": "double"
          },
          "subTotal": {
            "type": "number",
            "format": "double"
          },
          "attributesJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "订单状态。",
        "format": "int32"
      },
      "OrderStatusHistoryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "operatorId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "PaymentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "status": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "tradeNo": {
            "type": "string",
            "nullable": true
          },
          "channelTransactionId": {
            "type": "string",
            "nullable": true
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "nullable": true
          },
          "payload": {
            "type": "string",
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRefundDto"
            },
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "PaymentDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/PaymentDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "PaymentDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "PaymentDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/PaymentDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "PaymentMethod": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "支付方式。",
        "format": "int32"
      },
      "PaymentRefundDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "paymentRecordId": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "channelRefundId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/PaymentRefundStatus"
          },
          "payload": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentRefundStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "支付退款状态。",
        "format": "int32"
      },
      "PaymentStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "支付记录状态。",
        "format": "int32"
      },
      "PermissionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermissionDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/PermissionDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "PermissionDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "PermissionDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "PermissionDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/PermissionDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "PermissionTemplateDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermissionTemplateDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionTemplateDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "PermissionTreeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionTreeDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermissionTreeDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionTreeDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "PricingRuleType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "价格策略类型。",
        "format": "int32"
      },
      "ProductAddonGroupDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "minSelect": {
            "type": "integer",
            "format": "int32"
          },
          "maxSelect": {
            "type": "integer",
            "format": "int32"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAddonOptionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductAddonGroupDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAddonGroupDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductAddonOptionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "addonGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "extraPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductAttributeGroupDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "selectionType": {
            "type": "integer",
            "format": "int32"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttributeOptionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductAttributeGroupDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttributeGroupDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductAttributeOptionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "attributeGroupId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductDetailDto": {
        "type": "object",
        "properties": {
          "product": {
            "$ref": "#/components/schemas/ProductDto"
          },
          "skus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSkuDto"
            },
            "nullable": true
          },
          "attributeGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttributeGroupDto"
            },
            "nullable": true
          },
          "addonGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAddonGroupDto"
            },
            "nullable": true
          },
          "pricingRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductPricingRuleDto"
            },
            "nullable": true
          },
          "mediaAssets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductMediaAssetDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductDetailDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/ProductDetailDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "categoryId": {
            "type": "integer",
            "format": "int64"
          },
          "spuCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "subtitle": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "originalPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stockQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxQuantityPerOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ProductStatus"
          },
          "coverImage": {
            "type": "string",
            "nullable": true
          },
          "galleryImages": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "enableDineIn": {
            "type": "boolean"
          },
          "enablePickup": {
            "type": "boolean"
          },
          "enableDelivery": {
            "type": "boolean"
          },
          "isFeatured": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ProductDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/ProductDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "ProductDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/ProductDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductMediaAssetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "mediaType": {
            "$ref": "#/components/schemas/MediaAssetType"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "caption": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductMediaAssetDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductMediaAssetDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductPricingRuleDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "ruleType": {
            "$ref": "#/components/schemas/PricingRuleType"
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "conditionsJson": {
            "type": "string",
            "nullable": true
          },
          "weekdaysJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductPricingRuleDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductPricingRuleDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductSkuDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "skuCode": {
            "type": "string",
            "nullable": true
          },
          "barcode": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "originalPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stockQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "weight": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "attributesJson": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductSkuDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSkuDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "ProductStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "商品状态。",
        "format": "int32"
      },
      "PublishProductCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuotaCheckResultDto": {
        "type": "object",
        "properties": {
          "quotaType": {
            "$ref": "#/components/schemas/TenantQuotaType"
          },
          "limit": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "used": {
            "type": "number",
            "format": "double"
          },
          "remaining": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuotaCheckResultDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/QuotaCheckResultDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "RefreshTokenRequest": {
        "required": [
          "refreshToken"
        ],
        "type": "object",
        "properties": {
          "refreshToken": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RefundRequestDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "refundNo": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/RefundStatus"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "processedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reviewNotes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RefundStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "退款申请状态。",
        "format": "int32"
      },
      "RegisterTenantCommand": {
        "required": [
          "code",
          "name",
          "tenantPackageId"
        ],
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string"
          },
          "name": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string"
          },
          "shortName": {
            "type": "string",
            "nullable": true
          },
          "industry": {
            "type": "string",
            "nullable": true
          },
          "contactName": {
            "type": "string",
            "nullable": true
          },
          "contactPhone": {
            "type": "string",
            "nullable": true
          },
          "contactEmail": {
            "type": "string",
            "nullable": true
          },
          "tenantPackageId": {
            "type": "integer",
            "format": "int64"
          },
          "durationMonths": {
            "type": "integer",
            "format": "int32"
          },
          "autoRenew": {
            "type": "boolean"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReleaseInventoryCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "productSkuId": {
            "type": "integer",
            "format": "int64"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "isPresaleOrder": {
            "type": "boolean"
          },
          "idempotencyKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReorderMerchantCategoriesCommand": {
        "required": [
          "items"
        ],
        "type": "object",
        "properties": {
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantCategoryOrderItem"
            }
          }
        },
        "additionalProperties": false
      },
      "ReplaceProductAddonsCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "addonGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAddonGroupDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReplaceProductAttributesCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "attributeGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttributeGroupDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReplaceProductMediaCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "mediaAssets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductMediaAssetDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReplaceProductPricingRulesCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "pricingRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductPricingRuleDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReplaceProductSkusCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "skus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSkuDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReviewMerchantCommand": {
        "required": [
          "merchantId"
        ],
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "approve": {
            "type": "boolean"
          },
          "remarks": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReviewMerchantDocumentCommand": {
        "required": [
          "documentId",
          "merchantId"
        ],
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "documentId": {
            "type": "integer",
            "format": "int64"
          },
          "approve": {
            "type": "boolean"
          },
          "remarks": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReviewTenantCommand": {
        "required": [
          "tenantId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "approve": {
            "type": "boolean"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleDetailDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleDetailDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/RoleDetailDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "RoleDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/RoleDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "RoleDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "RoleDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "RoleDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/RoleDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "RoleTemplateDto": {
        "type": "object",
        "properties": {
          "templateCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionTemplateDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleTemplateDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/RoleTemplateDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "RoleTemplateDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleTemplateDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "SelfRegisterResultDto": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/TenantStatus"
          },
          "verificationStatus": {
            "$ref": "#/components/schemas/TenantVerificationStatus"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "adminAccount": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SelfRegisterResultDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/SelfRegisterResultDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "SelfRegisterTenantCommand": {
        "required": [
          "adminAccount",
          "adminPassword",
          "adminPhone"
        ],
        "type": "object",
        "properties": {
          "adminAccount": {
            "maxLength": 64,
            "minLength": 0,
            "pattern": "^[A-Za-z0-9]+$",
            "type": "string"
          },
          "adminDisplayName": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "adminEmail": {
            "maxLength": 128,
            "minLength": 0,
            "type": "string",
            "format": "email",
            "nullable": true
          },
          "adminPhone": {
            "maxLength": 32,
            "minLength": 0,
            "type": "string"
          },
          "adminPassword": {
            "maxLength": 128,
            "minLength": 8,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "StaffRoleType": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "商户员工角色。",
        "format": "int32"
      },
      "StaffStatus": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "员工账号状态。",
        "format": "int32"
      },
      "StoreBusinessHourDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "dayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "hourType": {
            "$ref": "#/components/schemas/BusinessHourType"
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "capacityLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "StoreBusinessHourDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreBusinessHourDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreBusinessHourDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreBusinessHourDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreDeliveryZoneDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "zoneName": {
            "type": "string",
            "nullable": true
          },
          "polygonGeoJson": {
            "type": "string",
            "nullable": true
          },
          "minimumOrderAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "deliveryFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimatedMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "StoreDeliveryZoneDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreDeliveryZoneDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreDeliveryZoneDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreDeliveryZoneDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "managerName": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/StoreStatus"
          },
          "province": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "district": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "announcement": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "string",
            "nullable": true
          },
          "deliveryRadiusKm": {
            "type": "number",
            "format": "double"
          },
          "supportsDineIn": {
            "type": "boolean"
          },
          "supportsPickup": {
            "type": "boolean"
          },
          "supportsDelivery": {
            "type": "boolean"
          },
          "supportsReservation": {
            "type": "boolean"
          },
          "supportsQueueing": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "StoreDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "StoreDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreEmployeeShiftDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "staffId": {
            "type": "integer",
            "format": "int64"
          },
          "shiftDate": {
            "type": "string",
            "format": "date-time"
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "roleType": {
            "$ref": "#/components/schemas/StaffRoleType"
          },
          "notes": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "StoreEmployeeShiftDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreEmployeeShiftDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreEmployeeShiftDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreEmployeeShiftDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreHolidayDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "isClosed": {
            "type": "boolean"
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "StoreHolidayDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreHolidayDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreHolidayDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreHolidayDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StorePickupSettingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "allowToday": {
            "type": "boolean"
          },
          "allowDaysAhead": {
            "type": "integer",
            "format": "int32"
          },
          "defaultCutoffMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "maxQuantityPerOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StorePickupSettingDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StorePickupSettingDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StorePickupSlotDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "cutoffMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "capacity": {
            "type": "integer",
            "format": "int32"
          },
          "reservedCount": {
            "type": "integer",
            "format": "int32"
          },
          "weekdays": {
            "type": "string",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "StorePickupSlotDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StorePickupSlotDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StorePickupSlotDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StorePickupSlotDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreStaffDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "roleType": {
            "$ref": "#/components/schemas/StaffRoleType"
          },
          "status": {
            "$ref": "#/components/schemas/StaffStatus"
          }
        },
        "additionalProperties": false
      },
      "StoreStaffDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreStaffDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreStaffDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreStaffDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "门店运营状态。",
        "format": "int32"
      },
      "StoreTableAreaDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "StoreTableAreaDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreTableAreaDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreTableAreaDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreTableAreaDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreTableDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "areaId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "tableCode": {
            "type": "string",
            "nullable": true
          },
          "capacity": {
            "type": "integer",
            "format": "int32"
          },
          "tags": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/StoreTableStatus"
          },
          "qrCodeUrl": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "StoreTableDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/StoreTableDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreTableDtoIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreTableDto"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StoreTableStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "桌台占用状态。",
        "format": "int32"
      },
      "StringDictionaryItemDtoIReadOnlyListIReadOnlyDictionaryApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/DictionaryItemDto"
              },
              "nullable": true
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "StringIReadOnlyListApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "业务数据。",
            "nullable": true
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "SubmitTenantVerificationCommand": {
        "required": [
          "tenantId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "businessLicenseNumber": {
            "type": "string",
            "nullable": true
          },
          "businessLicenseUrl": {
            "type": "string",
            "nullable": true
          },
          "legalPersonName": {
            "type": "string",
            "nullable": true
          },
          "legalPersonIdNumber": {
            "type": "string",
            "nullable": true
          },
          "legalPersonIdFrontUrl": {
            "type": "string",
            "nullable": true
          },
          "legalPersonIdBackUrl": {
            "type": "string",
            "nullable": true
          },
          "bankAccountName": {
            "type": "string",
            "nullable": true
          },
          "bankAccountNumber": {
            "type": "string",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "nullable": true
          },
          "additionalDataJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "订阅状态。",
        "format": "int32"
      },
      "SystemParameterDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SystemParameterDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/SystemParameterDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "SystemParameterDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SystemParameterDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "SystemParameterDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/SystemParameterDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantAnnouncementDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "announcementType": {
            "$ref": "#/components/schemas/TenantAnnouncementType"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time"
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "isRead": {
            "type": "boolean"
          },
          "readAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenantAnnouncementDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantAnnouncementDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantAnnouncementDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantAnnouncementDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "TenantAnnouncementDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantAnnouncementDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantAnnouncementType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "租户公告类型。",
        "format": "int32"
      },
      "TenantAuditAction": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "description": "租户运营审核动作。",
        "format": "int32"
      },
      "TenantAuditLogDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "action": {
            "$ref": "#/components/schemas/TenantAuditAction"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "operatorName": {
            "type": "string",
            "nullable": true
          },
          "previousStatus": {
            "$ref": "#/components/schemas/TenantStatus"
          },
          "currentStatus": {
            "$ref": "#/components/schemas/TenantStatus"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "TenantAuditLogDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantAuditLogDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "TenantAuditLogDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantAuditLogDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantBillingDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "statementNo": {
            "type": "string",
            "nullable": true
          },
          "periodStart": {
            "type": "string",
            "format": "date-time"
          },
          "periodEnd": {
            "type": "string",
            "format": "date-time"
          },
          "amountDue": {
            "type": "number",
            "format": "double"
          },
          "amountPaid": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "$ref": "#/components/schemas/TenantBillingStatus"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "lineItemsJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenantBillingDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantBillingDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantBillingDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantBillingDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "TenantBillingDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantBillingDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantBillingStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "账单状态。",
        "format": "int32"
      },
      "TenantDetailDto": {
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/TenantDto"
          },
          "verification": {
            "$ref": "#/components/schemas/TenantVerificationDto"
          },
          "subscription": {
            "$ref": "#/components/schemas/TenantSubscriptionDto"
          },
          "package": {
            "$ref": "#/components/schemas/TenantPackageDto"
          }
        },
        "additionalProperties": false
      },
      "TenantDetailDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantDetailDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "shortName": {
            "type": "string",
            "nullable": true
          },
          "contactName": {
            "type": "string",
            "nullable": true
          },
          "contactPhone": {
            "type": "string",
            "nullable": true
          },
          "contactEmail": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/TenantStatus"
          },
          "verificationStatus": {
            "$ref": "#/components/schemas/TenantVerificationStatus"
          },
          "currentPackageId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "autoRenew": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TenantDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "TenantDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantNotificationChannel": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "通知推送渠道。",
        "format": "int32"
      },
      "TenantNotificationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "channel": {
            "$ref": "#/components/schemas/TenantNotificationChannel"
          },
          "severity": {
            "$ref": "#/components/schemas/TenantNotificationSeverity"
          },
          "sentAt": {
            "type": "string",
            "format": "date-time"
          },
          "readAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "metadataJson": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenantNotificationDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantNotificationDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantNotificationDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantNotificationDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "TenantNotificationDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantNotificationDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantNotificationSeverity": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "租户通知的重要程度。",
        "format": "int32"
      },
      "TenantPackageDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "packageType": {
            "$ref": "#/components/schemas/TenantPackageType"
          },
          "monthlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "yearlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxStoreCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxAccountCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxStorageGb": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxSmsCredits": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxDeliveryOrders": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "featurePoliciesJson": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TenantPackageDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantPackageDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantPackageDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TenantPackageDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "TenantPackageDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantPackageDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantPackageType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "套餐类型枚举。",
        "format": "int32"
      },
      "TenantProgressDto": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/TenantStatus"
          },
          "verificationStatus": {
            "$ref": "#/components/schemas/TenantVerificationStatus"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenantProgressDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantProgressDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantQuotaType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "配额类型，覆盖容量及调用次数。",
        "format": "int32"
      },
      "TenantStatus": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "租户服务状态。",
        "format": "int32"
      },
      "TenantSubscriptionDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantPackageId": {
            "type": "integer",
            "format": "int64"
          },
          "status": {
            "$ref": "#/components/schemas/SubscriptionStatus"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time"
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time"
          },
          "nextBillingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "autoRenew": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TenantSubscriptionDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantSubscriptionDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantVerificationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "status": {
            "$ref": "#/components/schemas/TenantVerificationStatus"
          },
          "businessLicenseNumber": {
            "type": "string",
            "nullable": true
          },
          "businessLicenseUrl": {
            "type": "string",
            "nullable": true
          },
          "legalPersonName": {
            "type": "string",
            "nullable": true
          },
          "legalPersonIdNumber": {
            "type": "string",
            "nullable": true
          },
          "legalPersonIdFrontUrl": {
            "type": "string",
            "nullable": true
          },
          "legalPersonIdBackUrl": {
            "type": "string",
            "nullable": true
          },
          "bankAccountName": {
            "type": "string",
            "nullable": true
          },
          "bankAccountNumber": {
            "type": "string",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "nullable": true
          },
          "additionalDataJson": {
            "type": "string",
            "nullable": true
          },
          "submittedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reviewedBy": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reviewRemarks": {
            "type": "string",
            "nullable": true
          },
          "reviewedByName": {
            "type": "string",
            "nullable": true
          },
          "reviewedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenantVerificationDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TenantVerificationDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "TenantVerificationStatus": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "租户实名认证状态。",
        "format": "int32"
      },
      "TokenResponse": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "nullable": true
          },
          "accessTokenExpiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "refreshToken": {
            "type": "string",
            "nullable": true
          },
          "refreshTokenExpiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "user": {
            "$ref": "#/components/schemas/CurrentUserProfile"
          },
          "isNewUser": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TokenResponseApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TokenResponse"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "UnpublishProductCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateDeliveryOrderCommand": {
        "type": "object",
        "properties": {
          "deliveryOrderId": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "provider": {
            "$ref": "#/components/schemas/DeliveryProvider"
          },
          "providerOrderId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/DeliveryStatus"
          },
          "deliveryFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "courierName": {
            "type": "string",
            "nullable": true
          },
          "courierPhone": {
            "type": "string",
            "nullable": true
          },
          "dispatchedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pickedUpAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "deliveredAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "failureReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateDictionaryGroupRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateDictionaryItemRequest": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "isDefault": {
            "type": "boolean"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "maxLength": 512,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateMenuCommand": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "component": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          },
          "isIframe": {
            "type": "boolean"
          },
          "link": {
            "type": "string",
            "nullable": true
          },
          "keepAlive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "requiredPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "metaPermissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "metaRoles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "authList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MenuAuthItemDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateMerchantCommand": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "brandName": {
            "type": "string",
            "nullable": true
          },
          "brandAlias": {
            "type": "string",
            "nullable": true
          },
          "logoUrl": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "contactPhone": {
            "type": "string",
            "nullable": true
          },
          "contactEmail": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/MerchantStatus"
          }
        },
        "additionalProperties": false
      },
      "UpdateMerchantContractStatusCommand": {
        "required": [
          "contractId",
          "merchantId",
          "status"
        ],
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "contractId": {
            "type": "integer",
            "format": "int64"
          },
          "status": {
            "$ref": "#/components/schemas/ContractStatus"
          },
          "signedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateOrderCommand": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "orderNo": {
            "type": "string",
            "nullable": true
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "channel": {
            "$ref": "#/components/schemas/OrderChannel"
          },
          "deliveryType": {
            "$ref": "#/components/schemas/DeliveryType"
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "customerPhone": {
            "type": "string",
            "nullable": true
          },
          "tableNo": {
            "type": "string",
            "nullable": true
          },
          "queueNumber": {
            "type": "string",
            "nullable": true
          },
          "reservationId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "itemsAmount": {
            "type": "number",
            "format": "double"
          },
          "discountAmount": {
            "type": "number",
            "format": "double"
          },
          "payableAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAmount": {
            "type": "number",
            "format": "double"
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "finishedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "cancelReason": {
            "type": "string",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdatePaymentCommand": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "integer",
            "format": "int64"
          },
          "orderId": {
            "type": "integer",
            "format": "int64"
          },
          "method": {
            "$ref": "#/components/schemas/PaymentMethod"
          },
          "status": {
            "$ref": "#/components/schemas/PaymentStatus"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "tradeNo": {
            "type": "string",
            "nullable": true
          },
          "channelTransactionId": {
            "type": "string",
            "nullable": true
          },
          "paidAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "nullable": true
          },
          "payload": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdatePermissionCommand": {
        "type": "object",
        "properties": {
          "permissionId": {
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateProductCommand": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "categoryId": {
            "type": "integer",
            "format": "int64"
          },
          "spuCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "subtitle": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "price": {
            "type": "number",
            "format": "double"
          },
          "originalPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "stockQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxQuantityPerOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ProductStatus"
          },
          "coverImage": {
            "type": "string",
            "nullable": true
          },
          "galleryImages": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "enableDineIn": {
            "type": "boolean"
          },
          "enablePickup": {
            "type": "boolean"
          },
          "enableDelivery": {
            "type": "boolean"
          },
          "isFeatured": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateRoleCommand": {
        "type": "object",
        "properties": {
          "roleId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateRoleTemplateCommand": {
        "type": "object",
        "properties": {
          "templateCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "permissionCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreBusinessHourCommand": {
        "type": "object",
        "properties": {
          "businessHourId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "dayOfWeek": {
            "$ref": "#/components/schemas/DayOfWeek"
          },
          "hourType": {
            "$ref": "#/components/schemas/BusinessHourType"
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "capacityLimit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "managerName": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/StoreStatus"
          },
          "province": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "district": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "announcement": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "string",
            "nullable": true
          },
          "deliveryRadiusKm": {
            "type": "number",
            "format": "double"
          },
          "supportsDineIn": {
            "type": "boolean"
          },
          "supportsPickup": {
            "type": "boolean"
          },
          "supportsDelivery": {
            "type": "boolean"
          },
          "supportsReservation": {
            "type": "boolean"
          },
          "supportsQueueing": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreDeliveryZoneCommand": {
        "type": "object",
        "properties": {
          "deliveryZoneId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "zoneName": {
            "type": "string",
            "nullable": true
          },
          "polygonGeoJson": {
            "type": "string",
            "nullable": true
          },
          "minimumOrderAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "deliveryFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "estimatedMinutes": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreEmployeeShiftCommand": {
        "type": "object",
        "properties": {
          "shiftId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "staffId": {
            "type": "integer",
            "format": "int64"
          },
          "shiftDate": {
            "type": "string",
            "format": "date-time"
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "roleType": {
            "$ref": "#/components/schemas/StaffRoleType"
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreHolidayCommand": {
        "type": "object",
        "properties": {
          "holidayId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "isClosed": {
            "type": "boolean"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateStorePickupSlotCommand": {
        "type": "object",
        "properties": {
          "slotId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "format": "date-span"
          },
          "endTime": {
            "type": "string",
            "format": "date-span"
          },
          "cutoffMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "capacity": {
            "type": "integer",
            "format": "int32"
          },
          "weekdays": {
            "type": "string",
            "nullable": true
          },
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreStaffCommand": {
        "type": "object",
        "properties": {
          "staffId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "roleType": {
            "$ref": "#/components/schemas/StaffRoleType"
          },
          "status": {
            "$ref": "#/components/schemas/StaffStatus"
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreTableAreaCommand": {
        "type": "object",
        "properties": {
          "areaId": {
            "type": "integer",
            "format": "int64"
          },
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UpdateStoreTableCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "tableId": {
            "type": "integer",
            "format": "int64"
          },
          "areaId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "tableCode": {
            "type": "string",
            "nullable": true
          },
          "capacity": {
            "type": "integer",
            "format": "int32"
          },
          "tags": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/StoreTableStatus"
          }
        },
        "additionalProperties": false
      },
      "UpdateSystemParameterCommand": {
        "type": "object",
        "properties": {
          "parameterId": {
            "type": "integer",
            "format": "int64"
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          },
          "isEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateTenantAnnouncementCommand": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "announcementId": {
            "type": "integer",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "announcementType": {
            "$ref": "#/components/schemas/TenantAnnouncementType"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "effectiveFrom": {
            "type": "string",
            "format": "date-time"
          },
          "effectiveTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "UpdateTenantPackageCommand": {
        "type": "object",
        "properties": {
          "tenantPackageId": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "packageType": {
            "$ref": "#/components/schemas/TenantPackageType"
          },
          "monthlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "yearlyPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "maxStoreCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxAccountCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxStorageGb": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxSmsCredits": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "maxDeliveryOrders": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "featurePoliciesJson": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "sortOrder": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UpsertInventoryBatchCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "productSkuId": {
            "type": "integer",
            "format": "int64"
          },
          "batchNumber": {
            "type": "string",
            "nullable": true
          },
          "productionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expireDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "remainingQuantity": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UpsertStorePickupSettingCommand": {
        "type": "object",
        "properties": {
          "storeId": {
            "type": "integer",
            "format": "int64"
          },
          "allowToday": {
            "type": "boolean"
          },
          "allowDaysAhead": {
            "type": "integer",
            "format": "int32"
          },
          "defaultCutoffMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "maxQuantityPerOrder": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserPermissionDto": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "format": "int64"
          },
          "tenantId": {
            "type": "integer",
            "format": "int64"
          },
          "merchantId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "account": {
            "type": "string",
            "nullable": true
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "UserPermissionDtoApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/UserPermissionDto"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      },
      "UserPermissionDtoPagedResult": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserPermissionDto"
            },
            "description": "数据列表。",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "description": "当前页码，从 1 开始。",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "description": "每页条数。",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "description": "总条数。",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "description": "总页数。",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "分页结果包装，携带列表与总条数等元数据。"
      },
      "UserPermissionDtoPagedResultApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "是否成功。"
          },
          "code": {
            "type": "integer",
            "description": "状态/错误码（默认 200）。",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "提示信息。",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/UserPermissionDtoPagedResult"
          },
          "errors": {
            "description": "错误详情（如字段验证错误）。",
            "nullable": true
          },
          "traceId": {
            "type": "string",
            "description": "TraceId，便于链路追踪。",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "时间戳（UTC）。",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "统一的 API 返回结果包装。"
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "description": "在下方输入Bearer Token，格式：Bearer {token}",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "Auth",
      "description": "管理后台认证接口"
    },
    {
      "name": "Deliveries",
      "description": "配送单管理。"
    },
    {
      "name": "Dictionary",
      "description": "参数字典管理。"
    },
    {
      "name": "Files",
      "description": "管理后台文件上传。"
    },
    {
      "name": "Health",
      "description": "管理后台 - 健康检查。"
    },
    {
      "name": "Inventory",
      "description": "库存管理。"
    },
    {
      "name": "Menus",
      "description": "菜单管理（可增删改查）。"
    },
    {
      "name": "MerchantCategories",
      "description": "商户类目管理。"
    },
    {
      "name": "Merchants",
      "description": "商户管理。"
    },
    {
      "name": "Orders",
      "description": "订单管理。"
    },
    {
      "name": "Payments",
      "description": "支付记录管理。"
    },
    {
      "name": "Permissions",
      "description": "权限管理。"
    },
    {
      "name": "Products",
      "description": "商品管理。"
    },
    {
      "name": "PublicTenantPackages",
      "description": "公共租户套餐查询接口。"
    },
    {
      "name": "PublicTenants",
      "description": "公域租户自助入住接口。"
    },
    {
      "name": "PublicTenantSubscriptions",
      "description": "公域租户订阅自助接口（需登录，无权限校验）。"
    },
    {
      "name": "RoleTemplates",
      "description": "角色模板管理（平台蓝本）。"
    },
    {
      "name": "StorePickup",
      "description": "门店自提管理。"
    },
    {
      "name": "Stores",
      "description": "门店管理。"
    },
    {
      "name": "StoreShifts",
      "description": "门店排班管理。"
    },
    {
      "name": "StoreStaffs",
      "description": "门店员工管理。"
    },
    {
      "name": "StoreTableAreas",
      "description": "门店桌台区域管理。"
    },
    {
      "name": "StoreTables",
      "description": "门店桌码管理。"
    },
    {
      "name": "SystemParameters",
      "description": "系统参数管理。"
    },
    {
      "name": "TenantAnnouncements",
      "description": "租户公告管理。"
    },
    {
      "name": "TenantBillings",
      "description": "租户账单管理。"
    },
    {
      "name": "TenantNotifications",
      "description": "租户通知接口。"
    },
    {
      "name": "TenantPackages",
      "description": "租户套餐管理。"
    },
    {
      "name": "TenantRoles",
      "description": "租户角色管理（实例层）。"
    },
    {
      "name": "Tenants",
      "description": "租户管理。"
    },
    {
      "name": "UserPermissions",
      "description": "用户权限洞察接口。"
    }
  ]
}