{
  "swagger": "2.0",
  "info": {
    "title": "支付服务",
    "version": "1.0.0"
  },
  "basePath": "/",
  "paths": {
    "/admin/product/item/basic": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step1 基础信息保存",
        "description": "创建+更新合一接口。\n\n**创建**：productId不传，productType必传，返回新产品ID。\n**更新**：productId传已有ID，返回原产品ID。\n\n**涉及字典：**\n- product_type: CORE=核心产品, GROUP=小蒙马跟团游, CUSTOM=私人定制\n- product_season: spring=春, summer=夏, autumn=秋, winter=冬\n- product_tag: 亲子/研学/自驾/摄影/草原/高原 等\n- payment_type: FULL=全款支付, DEPOSIT=订金+尾款",
        "operationId": "saveBasicUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - Step1 基础信息保存",
              "originalRef": "管理端 - Step1 基础信息保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/list": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "产品分页列表",
        "description": "支持按名称关键词/产品类型/产品线/状态筛选。\n\n**涉及字典：**\n- product_type: CORE/GROUP/CUSTOM\n- product_status: DRAFT/PENDING_REVIEW/PUBLISHED/UNPUBLISHED/REJECTED/COMPLETED/ORDERED",
        "operationId": "listProductsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "关键词(名称/编号)",
            "required": false,
            "type": "string"
          },
          {
            "name": "lineId",
            "in": "query",
            "description": "产品线ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "productType",
            "in": "query",
            "description": "产品类型(CORE/GROUP/CUSTOM)",
            "required": false,
            "type": "string"
          },
          {
            "name": "status",
            "in": "query",
            "description": "产品状态",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«分页结果«管理端 - 产品列表项»»",
              "originalRef": "统一响应结果«分页结果«管理端 - 产品列表项»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«分页结果«管理端 - 产品列表项»»",
              "originalRef": "统一响应结果«分页结果«管理端 - 产品列表项»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "产品详情",
        "description": "聚合全部5步数据（主表+基础+行程+路线+价格+补充），用于编辑页回显。",
        "operationId": "getDetailUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 产品详情»",
              "originalRef": "统一响应结果«管理端 - 产品详情»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 产品详情»",
              "originalRef": "统一响应结果«管理端 - 产品详情»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "删除产品",
        "description": "级联删除产品+全部子表。仅草稿/已驳回/已下架/已完成状态可删，已上架/待审核需先下架。",
        "operationId": "deleteProductUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/action": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "产品状态变更",
        "description": "通过COLA状态机驱动状态流转。\n\n**涉及字典：**\n- product_action: SUBMIT_PUBLISH=提交上架, WITHDRAW=撤回, DIRECT_PUBLISH=直接上架, UNPUBLISH=申请下架, FORCE_UNPUBLISH=强制下架, COMPLETE=完成设计\n- product_status: DRAFT→PENDING_REVIEW→PUBLISHED→UNPUBLISHED（详见状态流转图）",
        "operationId": "changeStatusUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 产品状态变更",
              "originalRef": "管理端 - 产品状态变更"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/copy": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "复制产品",
        "description": "深拷贝产品+全部子表（主表+6张1:1/1:N子表+行程数据），新产品为草稿状态。返回新产品ID。",
        "operationId": "copyProductUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/fee-deduction-preview": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "费用推导预览",
        "description": "根据行程节点类型自动推导费用包含项（景区→门票，酒店→住宿等），排除已忽略类型。",
        "operationId": "feeDeductionPreviewUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 费用推导预览»»",
              "originalRef": "统一响应结果«List«管理端 - 费用推导预览»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 费用推导预览»»",
              "originalRef": "统一响应结果«List«管理端 - 费用推导预览»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/itinerary": {
      "put": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step2 行程整体保存",
        "description": "整体保存行程天+节点+住宿+路线点。支持新增/更新/删除（EntityDiffUtil对比）。\n\n**涉及字典：**\n- product_node_type: SCENIC=景区, ACTIVITY=活动, RESTAURANT=餐厅, HOTEL=酒店, TRANSPORT=交通, SERVICE=服务, FREE=自由活动, CUSTOM=自定义, NOTE=备注\n- meal_option: HOTEL=酒店餐, CAMP=营地餐, SPECIAL=特色餐, SELF=自理",
        "operationId": "saveItineraryUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - Step2 行程保存",
              "originalRef": "管理端 - Step2 行程保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/itinerary/day": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step2 增加一天",
        "description": "在行程末尾追加一天，自动编号。返回新天的dayId。",
        "operationId": "addDayUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/itinerary/day/{dayNumber}": {
      "delete": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step2 删除一天",
        "description": "删除指定天序号的行程天，级联删除节点+住宿+路线点，后续天序号自动-1。",
        "operationId": "deleteDayUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "dayNumber",
            "in": "path",
            "description": "dayNumber",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/operation-logs": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "产品操作记录",
        "description": "查询产品的全部操作记录（按时间倒序），审计保留不随产品删除。",
        "operationId": "getOperationLogsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 产品操作记录»»",
              "originalRef": "统一响应结果«List«管理端 - 产品操作记录»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 产品操作记录»»",
              "originalRef": "统一响应结果«List«管理端 - 产品操作记录»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/price-calendar": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 查询价格日历",
        "description": "按月份查询价格日历。\n\n**涉及字典：**\n- price_type: NORMAL=平日, PEAK=旺季, HOLIDAY=节假日, SPECIAL=特价\n- accommodation_spec: 档位序号(1=标准,2=舒适,3=豪华)",
        "operationId": "getPriceCalendarUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "description": "月份(yyyy-MM)",
            "required": true,
            "type": "string"
          },
          {
            "name": "tierSeq",
            "in": "query",
            "description": "档位序号(默认1)",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«ProductPriceCalendarDO»»",
              "originalRef": "统一响应结果«List«ProductPriceCalendarDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«ProductPriceCalendarDO»»",
              "originalRef": "统一响应结果«List«ProductPriceCalendarDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 价格日历删除",
        "description": "按日期范围+档位删除价格日历（物理删除）。",
        "operationId": "deletePriceCalendarUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 价格日历批量设置",
              "originalRef": "管理端 - 价格日历批量设置"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/price-calendar/batch": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 价格日历批量设置",
        "description": "按日期范围+档位批量设置价格（UPSERT）。已上架产品用priceVersion，草稿用version。\n\n**涉及字典：**\n- price_type: NORMAL=平日, PEAK=旺季, HOLIDAY=节假日, SPECIAL=特价",
        "operationId": "batchSetPriceCalendarUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 价格日历批量设置",
              "originalRef": "管理端 - 价格日历批量设置"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/quote": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "报价计算",
        "description": "根据出发日期+人数+档位计算总价，返回每日明细。",
        "operationId": "calculateQuoteUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 报价计算",
              "originalRef": "管理端 - 报价计算"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 报价结果»",
              "originalRef": "统一响应结果«管理端 - 报价结果»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 报价结果»",
              "originalRef": "统一响应结果«管理端 - 报价结果»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/route": {
      "put": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step3 路线与备品保存",
        "description": "保存路线总览(1:1)+备品清单(1:N)+额外成本项(1:N)。备品和成本项支持增删改。\n\n**涉及字典：**\n- supply_billing: PER_PERSON=按人头, PER_QUANTITY=按数量",
        "operationId": "saveRouteUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - Step3 路线与备品保存",
              "originalRef": "管理端 - Step3 路线与备品保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/schedule": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 创建班期",
        "description": "创建新班期，batchId不传。自动生成班期编号、计算结束日期和报名截止日。",
        "operationId": "saveScheduleUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 班期保存",
              "originalRef": "管理端 - 班期保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 修改班期",
        "description": "修改已有班期，batchId在body中传。",
        "operationId": "updateScheduleUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 班期保存",
              "originalRef": "管理端 - 班期保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/schedule/batch-create": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 班期批量创建",
        "description": "按重复模式批量创建班期（最多52个，跨度≤12个月）。\n\n**涉及字典：**\n- repeat_mode: WEEKLY=每周, BIWEEKLY=隔周, MONTHLY=每月",
        "operationId": "batchCreateScheduleUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 班期批量创建",
              "originalRef": "管理端 - 班期批量创建"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«int»",
              "originalRef": "统一响应结果«int»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«int»",
              "originalRef": "统一响应结果«int»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/schedule/list": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 班期列表",
        "description": "查询产品下所有班期。\n\n**涉及字典：**\n- schedule_status: ENROLLING=报名中, NEARLY_FULL=即将满员, FULL=已满, FINISHED=已结束, CANCELLING=取消中, CANCELLED=已取消",
        "operationId": "getScheduleListUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«GroupTourBatchDO»»",
              "originalRef": "统一响应结果«List«GroupTourBatchDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«GroupTourBatchDO»»",
              "originalRef": "统一响应结果«List«GroupTourBatchDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/schedule/team": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "班期团队查询",
        "description": "查询指定班期的团队成员列表。\n\n**涉及字典：**\n- staff_role: LEADER=领队, PHOTOGRAPHER=摄影师, DRIVER=司机, OTHER=其他",
        "operationId": "getScheduleTeamUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«GroupBatchStaffDO»»",
              "originalRef": "统一响应结果«List«GroupBatchStaffDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«GroupBatchStaffDO»»",
              "originalRef": "统一响应结果«List«GroupBatchStaffDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "班期团队保存",
        "description": "全量保存班期团队成员（全删全插策略，每次传完整列表）。\n\n**涉及字典：**\n- staff_role: LEADER=领队, PHOTOGRAPHER=摄影师, DRIVER=司机, OTHER=其他",
        "operationId": "saveScheduleTeamUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 班期团队保存",
              "originalRef": "管理端 - 班期团队保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/schedule/{scheduleId}": {
      "delete": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 删除班期",
        "description": "删除班期（已有报名订单不允许删除）。",
        "operationId": "deleteScheduleUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "scheduleId",
            "in": "path",
            "description": "scheduleId",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/schedule/{scheduleId}/cancel": {
      "post": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step4 取消班期",
        "description": "取消班期（有报名订单则标记为CANCELLING触发退款，无订单直接CANCELLED）。",
        "operationId": "cancelScheduleUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "scheduleId",
            "in": "path",
            "description": "scheduleId",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/supplement": {
      "put": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "Step5 补充信息保存",
        "description": "保存费用包含/不含/自定义项+人群优惠+补充配置（退改/车辆/保险/卖点等）。\n\n**涉及字典：**\n- fee_include_type: TICKET=门票, HOTEL=住宿, TRANSPORT=交通, MEAL=餐饮, INSURANCE=保险\n- fee_source: AUTO=自动推导, MANUAL=手动添加",
        "operationId": "saveSupplementUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - Step5 补充信息保存",
              "originalRef": "管理端 - Step5 补充信息保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/transfer": {
      "put": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "转让产品",
        "description": "更换产品创建人（仅超管可操作）。",
        "operationId": "transferProductUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 产品转让",
              "originalRef": "管理端 - 产品转让"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/item/{id}/validate-publish": {
      "get": {
        "tags": [
          "管理端 - 产品管理"
        ],
        "summary": "上架预检",
        "description": "5级校验：L1基础字段→L2内容完整→L3定价→L4条款→L5资源。返回问题列表，空=全部通过。",
        "operationId": "validatePublishUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«string»»",
              "originalRef": "统一响应结果«List«string»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«string»»",
              "originalRef": "统一响应结果«List«string»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/line": {
      "post": {
        "tags": [
          "管理端 - 产品线管理"
        ],
        "summary": "创建/修改产品线",
        "operationId": "saveLineUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 产品线保存",
              "originalRef": "管理端 - 产品线保存"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«long»",
              "originalRef": "统一响应结果«long»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/line/list": {
      "get": {
        "tags": [
          "管理端 - 产品线管理"
        ],
        "summary": "产品线分页列表",
        "operationId": "listLinesUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "关键词",
            "required": false,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态(ACTIVE/INACTIVE)",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«分页结果«管理端 - 产品线详情/列表项»»",
              "originalRef": "统一响应结果«分页结果«管理端 - 产品线详情/列表项»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«分页结果«管理端 - 产品线详情/列表项»»",
              "originalRef": "统一响应结果«分页结果«管理端 - 产品线详情/列表项»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/line/simple-list": {
      "get": {
        "tags": [
          "管理端 - 产品线管理"
        ],
        "summary": "产品线下拉选项",
        "operationId": "simpleListUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 产品线下拉»»",
              "originalRef": "统一响应结果«List«管理端 - 产品线下拉»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 产品线下拉»»",
              "originalRef": "统一响应结果«List«管理端 - 产品线下拉»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/line/{id}": {
      "get": {
        "tags": [
          "管理端 - 产品线管理"
        ],
        "summary": "产品线详情",
        "operationId": "getDetailUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 产品线详情/列表项»",
              "originalRef": "统一响应结果«管理端 - 产品线详情/列表项»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 产品线详情/列表项»",
              "originalRef": "统一响应结果«管理端 - 产品线详情/列表项»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "管理端 - 产品线管理"
        ],
        "summary": "删除产品线",
        "operationId": "deleteLineUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/booking-terms/enabled": {
      "get": {
        "tags": [
          "管理端 - 模板管理"
        ],
        "summary": "预订条款下拉",
        "operationId": "bookingTermsEnabledUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 预订条款»»",
              "originalRef": "统一响应结果«List«管理端 - 预订条款»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 预订条款»»",
              "originalRef": "统一响应结果«List«管理端 - 预订条款»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/safety-template/enabled": {
      "get": {
        "tags": [
          "管理端 - 模板管理"
        ],
        "summary": "安全保障模板下拉",
        "operationId": "safetyTemplateEnabledUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 安全保障模板»»",
              "originalRef": "统一响应结果«List«管理端 - 安全保障模板»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 安全保障模板»»",
              "originalRef": "统一响应结果«List«管理端 - 安全保障模板»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/product/warm-tips/enabled": {
      "get": {
        "tags": [
          "管理端 - 模板管理"
        ],
        "summary": "温馨提示下拉",
        "operationId": "warmTipsEnabledUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 温馨提示»»",
              "originalRef": "统一响应结果«List«管理端 - 温馨提示»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 温馨提示»»",
              "originalRef": "统一响应结果«List«管理端 - 温馨提示»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product/compare": {
      "get": {
        "tags": [
          "小程序端 - 产品查询"
        ],
        "summary": "产品对比",
        "operationId": "compareUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "ids",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«小程序端 - 产品详情»»",
              "originalRef": "统一响应结果«List«小程序端 - 产品详情»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«小程序端 - 产品详情»»",
              "originalRef": "统一响应结果«List«小程序端 - 产品详情»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product/{id}": {
      "get": {
        "tags": [
          "小程序端 - 产品查询"
        ],
        "summary": "产品详情",
        "operationId": "getDetailUsingGET_2",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«小程序端 - 产品详情»",
              "originalRef": "统一响应结果«小程序端 - 产品详情»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«小程序端 - 产品详情»",
              "originalRef": "统一响应结果«小程序端 - 产品详情»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product/{id}/price-calendar": {
      "get": {
        "tags": [
          "小程序端 - 产品查询"
        ],
        "summary": "价格日历",
        "operationId": "getPriceCalendarUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "description": "月份(yyyy-MM)",
            "required": true,
            "type": "string"
          },
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«小程序端 - 价格日历»",
              "originalRef": "统一响应结果«小程序端 - 价格日历»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«小程序端 - 价格日历»",
              "originalRef": "统一响应结果«小程序端 - 价格日历»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product/{id}/quote": {
      "post": {
        "tags": [
          "小程序端 - 产品查询"
        ],
        "summary": "C端报价",
        "operationId": "quoteUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "req",
            "required": true,
            "schema": {
              "$ref": "#/definitions/管理端 - 报价计算",
              "originalRef": "管理端 - 报价计算"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 报价结果»",
              "originalRef": "统一响应结果«管理端 - 报价结果»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«管理端 - 报价结果»",
              "originalRef": "统一响应结果«管理端 - 报价结果»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product/{id}/schedules": {
      "get": {
        "tags": [
          "小程序端 - 产品查询"
        ],
        "summary": "班期列表",
        "operationId": "getSchedulesUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«GroupTourBatchDO»»",
              "originalRef": "统一响应结果«List«GroupTourBatchDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«GroupTourBatchDO»»",
              "originalRef": "统一响应结果«List«GroupTourBatchDO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product/{id}/tier-compare": {
      "get": {
        "tags": [
          "小程序端 - 产品查询"
        ],
        "summary": "档位对比",
        "operationId": "tierCompareUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Map«int,List«ProductDayHotelDO»»»",
              "originalRef": "统一响应结果«Map«int,List«ProductDayHotelDO»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Map«int,List«ProductDayHotelDO»»»",
              "originalRef": "统一响应结果«Map«int,List«ProductDayHotelDO»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product-line/list": {
      "get": {
        "tags": [
          "小程序端 - 产品线查询"
        ],
        "summary": "产品线列表",
        "operationId": "listLinesUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "season",
            "in": "query",
            "description": "season",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 产品线下拉»»",
              "originalRef": "统一响应结果«List«管理端 - 产品线下拉»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«管理端 - 产品线下拉»»",
              "originalRef": "统一响应结果«List«管理端 - 产品线下拉»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/mp/product-line/{lineId}/products": {
      "get": {
        "tags": [
          "小程序端 - 产品线查询"
        ],
        "summary": "产品线下产品列表",
        "operationId": "listProductsUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "lineId",
            "in": "query",
            "description": "产品线ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "tag",
            "in": "query",
            "description": "标签筛选(可选)",
            "required": false,
            "type": "string"
          },
          {
            "name": "lineId",
            "in": "path",
            "description": "lineId",
            "required": true,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«小程序端 - 产品列表项»»",
              "originalRef": "统一响应结果«List«小程序端 - 产品列表项»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«小程序端 - 产品列表项»»",
              "originalRef": "统一响应结果«List«小程序端 - 产品列表项»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    }
  },
  "definitions": {
    "DailyDetail": {
      "type": "object",
      "properties": {
        "adultPrice": {
          "type": "number",
          "description": "成人价"
        },
        "childPrice": {
          "type": "number",
          "description": "儿童价"
        },
        "date": {
          "type": "string",
          "description": "日期"
        }
      },
      "title": "DailyDetail"
    },
    "GroupBatchStaffDO": {
      "type": "object",
      "properties": {
        "batchId": {
          "type": "integer",
          "format": "int64"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "remark": {
          "type": "string"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "staffId": {
          "type": "integer",
          "format": "int64"
        },
        "staffName": {
          "type": "string"
        },
        "staffPhone": {
          "type": "string"
        },
        "staffRole": {
          "type": "string"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "GroupBatchStaffDO"
    },
    "GroupTourBatchDO": {
      "type": "object",
      "properties": {
        "adultPrice": {
          "type": "number"
        },
        "batchId": {
          "type": "integer",
          "format": "int64"
        },
        "batchLabel": {
          "type": "string"
        },
        "batchName": {
          "type": "string"
        },
        "batchNo": {
          "type": "string"
        },
        "batchStatus": {
          "type": "string"
        },
        "bookedRooms": {
          "type": "integer",
          "format": "int32"
        },
        "childPrice": {
          "type": "number"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "departureDate": {
          "type": "string",
          "format": "date"
        },
        "endDate": {
          "type": "string",
          "format": "date"
        },
        "enrolledCount": {
          "type": "integer",
          "format": "int32"
        },
        "enrollmentDeadline": {
          "type": "string",
          "format": "date"
        },
        "infantPrice": {
          "type": "number"
        },
        "maxParticipants": {
          "type": "integer",
          "format": "int32"
        },
        "maxRooms": {
          "type": "integer",
          "format": "int32"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "productStockLimit": {
          "type": "integer",
          "format": "int32"
        },
        "remark": {
          "type": "string"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "toddlerDiscount": {
          "type": "number"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        },
        "version": {
          "type": "integer",
          "format": "int32"
        }
      },
      "title": "GroupTourBatchDO"
    },
    "ProductCrowdBenefitDO": {
      "type": "object",
      "properties": {
        "childAccommodation": {
          "type": "string"
        },
        "childMeal": {
          "type": "string"
        },
        "childTicket": {
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "elderAccommodation": {
          "type": "string"
        },
        "elderTicket": {
          "type": "string"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "tips": {
          "type": "string"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "ProductCrowdBenefitDO"
    },
    "ProductFeeItemDO": {
      "type": "object",
      "properties": {
        "costItemId": {
          "type": "integer",
          "format": "int64"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "daily": {
          "type": "boolean"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "feeCategory": {
          "type": "string"
        },
        "feeType": {
          "type": "string"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "resourceId": {
          "type": "integer",
          "format": "int64"
        },
        "resourceType": {
          "type": "string"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "source": {
          "type": "string"
        },
        "unit": {
          "type": "string"
        },
        "unitPrice": {
          "type": "number"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "ProductFeeItemDO"
    },
    "ProductPriceCalendarDO": {
      "type": "object",
      "properties": {
        "adultSellPrice": {
          "type": "number"
        },
        "childSellPrice": {
          "type": "number"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "dailyStock": {
          "type": "integer",
          "format": "int32"
        },
        "date": {
          "type": "string",
          "format": "date"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "infantPrice": {
          "type": "number"
        },
        "priceType": {
          "type": "string"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "rangeId": {
          "type": "integer",
          "format": "int64"
        },
        "sold": {
          "type": "integer",
          "format": "int32"
        },
        "tierSeq": {
          "type": "integer",
          "format": "int32"
        },
        "toddlerDiscount": {
          "type": "number"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "ProductPriceCalendarDO"
    },
    "ProductRouteInfoDO": {
      "type": "object",
      "properties": {
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "routeDescription": {
          "type": "string"
        },
        "routeMapUrl": {
          "type": "string"
        },
        "routeName": {
          "type": "string"
        },
        "staffCostIds": {
          "type": "string"
        },
        "totalMileage": {
          "type": "number"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        },
        "vehicleModelId": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "ProductRouteInfoDO"
    },
    "ProductSupplementDO": {
      "type": "object",
      "properties": {
        "bookingTermsId": {
          "type": "integer",
          "format": "int64"
        },
        "childExperience": {
          "type": "string"
        },
        "contractSchemeId": {
          "type": "integer",
          "format": "int64"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "equipmentAdvice": {
          "type": "string"
        },
        "feeIgnoredTypes": {
          "type": "string"
        },
        "growthGains": {
          "type": "string"
        },
        "insuranceNotice": {
          "type": "string"
        },
        "insuranceSchemeId": {
          "type": "integer",
          "format": "int64"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "quickUnderstand": {
          "type": "string"
        },
        "refundPolicyIds": {
          "type": "string"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        },
        "vehicleModelIds": {
          "type": "string"
        },
        "vehicleRuleText": {
          "type": "string"
        },
        "warmTipsId": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "ProductSupplementDO"
    },
    "ProductSuppliesDO": {
      "type": "object",
      "properties": {
        "billingType": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "hasCost": {
          "type": "boolean"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "suppliesName": {
          "type": "string"
        },
        "suppliesResourceId": {
          "type": "integer",
          "format": "int64"
        },
        "unitPrice": {
          "type": "number"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "ProductSuppliesDO"
    },
    "StaffItem": {
      "type": "object",
      "properties": {
        "remark": {
          "type": "string",
          "description": "备注"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "staffId": {
          "type": "integer",
          "format": "int64",
          "description": "员工ID"
        },
        "staffName": {
          "type": "string",
          "description": "员工名称"
        },
        "staffPhone": {
          "type": "string",
          "description": "员工电话"
        },
        "staffRole": {
          "type": "string",
          "description": "员工角色"
        }
      },
      "title": "StaffItem"
    },
    "住宿项": {
      "type": "object",
      "properties": {
        "hotelId": {
          "type": "integer",
          "format": "int64",
          "description": "酒店ID"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "住宿ID(已有则传，新增不传)"
        },
        "isDefault": {
          "type": "boolean",
          "description": "是否默认推荐"
        },
        "roomCount": {
          "type": "integer",
          "format": "int32",
          "description": "房间数(私人定制用)"
        },
        "roomTypeId": {
          "type": "integer",
          "format": "int64",
          "description": "房型ID(私人定制用)"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "tierSeq": {
          "type": "integer",
          "format": "int32",
          "description": "档位序号(无档位=1)"
        }
      },
      "title": "住宿项"
    },
    "分页结果«管理端 - 产品列表项»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "$ref": "#/definitions/管理端 - 产品列表项",
            "originalRef": "管理端 - 产品列表项"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«管理端 - 产品列表项»"
    },
    "备品项": {
      "type": "object",
      "properties": {
        "billingType": {
          "type": "string",
          "description": "计费方式(PER_PERSON/PER_QUANTITY)"
        },
        "category": {
          "type": "string",
          "description": "分类"
        },
        "hasCost": {
          "type": "boolean",
          "description": "是否涉及成本"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "备品ID(已有则传，新增不传)"
        },
        "quantity": {
          "type": "integer",
          "format": "int32",
          "description": "数量"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "suppliesName": {
          "type": "string",
          "description": "备品名称"
        },
        "suppliesResourceId": {
          "type": "integer",
          "format": "int64",
          "description": "备品资源ID(可空=自定义)"
        },
        "unitPrice": {
          "type": "number",
          "description": "单价"
        }
      },
      "title": "备品项"
    },
    "活动节点": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "描述"
        },
        "durationMinutes": {
          "type": "integer",
          "format": "int32",
          "description": "时长(分钟)"
        },
        "emojiIcon": {
          "type": "string",
          "description": "图标"
        },
        "extraData": {
          "type": "object",
          "description": "扩展数据"
        },
        "images": {
          "type": "array",
          "description": "图片列表",
          "items": {
            "type": "string"
          }
        },
        "nodeId": {
          "type": "integer",
          "format": "int64",
          "description": "节点ID(已有则传，新增不传)"
        },
        "nodeName": {
          "type": "string",
          "description": "节点名称"
        },
        "nodeType": {
          "type": "string",
          "description": "节点类型(SCENIC/ACTIVITY/RESTAURANT/SERVICE/CUSTOM等)"
        },
        "resourceId": {
          "type": "integer",
          "format": "int64",
          "description": "资源ID"
        },
        "resourceType": {
          "type": "string",
          "description": "资源类型"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "startTime": {
          "type": "string",
          "description": "开始时间(如10:00)"
        }
      },
      "title": "活动节点"
    },
    "管理端 - Step1 基础信息保存": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "category": {
          "type": "string",
          "example": "family",
          "description": "产品分类（字典product_category: family=亲子游, honeymoon=蜜月旅行, photography=摄影之旅, experience=深度体验, driving=自驾越野）"
        },
        "coverImageUrl": {
          "type": "string",
          "description": "封面图URL"
        },
        "introduction": {
          "type": "string",
          "description": "产品简介（富文本HTML）"
        },
        "lineId": {
          "type": "integer",
          "format": "int64",
          "example": 100,
          "description": "产品线ID（主题ID，CORE/GROUP必传，CUSTOM可空）"
        },
        "name": {
          "type": "string",
          "example": "额吉的故乡·亲子版",
          "description": "产品名称（≤30字）"
        },
        "productId": {
          "type": "integer",
          "format": "int64",
          "example": 2043246204711550977,
          "description": "产品ID（不传=创建，传了=更新）"
        },
        "productType": {
          "type": "string",
          "example": "CORE",
          "description": "产品类型（创建时必传，更新时忽略。CORE=核心产品, GROUP=小蒙马, CUSTOM=私人定制）"
        },
        "subtitle": {
          "type": "string",
          "example": "6天5晚草原环线",
          "description": "副标题（≤128字）"
        },
        "tags": {
          "type": "array",
          "example": [
            "亲子",
            "研学"
          ],
          "description": "产品标签（亲子/研学/露营/城记/摄影）",
          "items": {
            "type": "string"
          }
        },
        "tiers": {
          "type": "array",
          "description": "规格列表（单一档不传或传1个，多档传多个）",
          "items": {
            "$ref": "#/definitions/规格项",
            "originalRef": "规格项"
          }
        },
        "tripDays": {
          "type": "integer",
          "format": "int32",
          "example": 6,
          "description": "行程天数（≥1）"
        },
        "tripNights": {
          "type": "integer",
          "format": "int32",
          "example": 5,
          "description": "行程晚数（不传自动=天数-1）"
        }
      },
      "title": "管理端 - Step1 基础信息保存"
    },
    "管理端 - Step2 行程保存": {
      "type": "object",
      "properties": {
        "days": {
          "type": "array",
          "description": "行程天列表",
          "items": {
            "$ref": "#/definitions/行程天",
            "originalRef": "行程天"
          }
        }
      },
      "title": "管理端 - Step2 行程保存"
    },
    "管理端 - Step3 路线与备品保存": {
      "type": "object",
      "properties": {
        "extraCosts": {
          "type": "array",
          "description": "额外成本项列表",
          "items": {
            "$ref": "#/definitions/额外成本项",
            "originalRef": "额外成本项"
          }
        },
        "routeDescription": {
          "type": "string",
          "description": "线路描述"
        },
        "routeMapUrl": {
          "type": "string",
          "description": "路线图URL(手动上传)"
        },
        "supplies": {
          "type": "array",
          "description": "备品列表",
          "items": {
            "$ref": "#/definitions/备品项",
            "originalRef": "备品项"
          }
        },
        "totalMileage": {
          "type": "number",
          "description": "总里程(km)"
        }
      },
      "title": "管理端 - Step3 路线与备品保存"
    },
    "管理端 - Step5 补充信息保存": {
      "type": "object",
      "properties": {
        "bookingTermsId": {
          "type": "integer",
          "format": "int64",
          "description": "预订条款ID"
        },
        "childAccommodation": {
          "type": "string",
          "description": "儿童住宿(BED/NO_BED)"
        },
        "childExperience": {
          "type": "object",
          "description": "孩子经历"
        },
        "childMeal": {
          "type": "string",
          "description": "儿童餐饮(FULL/HALF)"
        },
        "childTicket": {
          "type": "string",
          "description": "儿童门票优惠(FREE/HALF_PRICE/FULL_PRICE)"
        },
        "contractSchemeId": {
          "type": "integer",
          "format": "int64",
          "description": "合同方案ID"
        },
        "crowdBenefitTips": {
          "type": "string",
          "description": "人群优惠温馨提示"
        },
        "customFees": {
          "type": "array",
          "description": "自定义费用列表",
          "items": {
            "$ref": "#/definitions/费用项",
            "originalRef": "费用项"
          }
        },
        "elderAccommodation": {
          "type": "string",
          "description": "老人住宿"
        },
        "elderTicket": {
          "type": "string",
          "description": "老人门票优惠"
        },
        "equipmentAdvice": {
          "type": "string",
          "description": "装备建议(富文本)"
        },
        "excludedFees": {
          "type": "array",
          "description": "费用不含列表",
          "items": {
            "$ref": "#/definitions/费用项",
            "originalRef": "费用项"
          }
        },
        "feeIgnoredTypes": {
          "type": "array",
          "description": "费用推导已忽略类型",
          "items": {
            "type": "string"
          }
        },
        "growthGains": {
          "type": "array",
          "description": "成长收获",
          "items": {
            "type": "object"
          }
        },
        "includedFees": {
          "type": "array",
          "description": "费用包含列表",
          "items": {
            "$ref": "#/definitions/费用项",
            "originalRef": "费用项"
          }
        },
        "insuranceNotice": {
          "type": "string",
          "description": "保险告知(INCLUDED/EXCLUDED/OPTIONAL)"
        },
        "insuranceSchemeId": {
          "type": "integer",
          "format": "int64",
          "description": "保险方案ID"
        },
        "quickUnderstand": {
          "type": "object",
          "description": "快速理解"
        },
        "refundPolicyIds": {
          "type": "object",
          "description": "退改政策映射"
        },
        "vehicleModelIds": {
          "type": "array",
          "description": "展示车型ID列表",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        },
        "vehicleRuleText": {
          "type": "string",
          "description": "用车规则说明"
        },
        "warmTipsId": {
          "type": "integer",
          "format": "int64",
          "description": "温馨提示ID"
        }
      },
      "title": "管理端 - Step5 补充信息保存"
    },
    "管理端 - 产品列表项": {
      "type": "object",
      "properties": {
        "category": {
          "type": "string",
          "description": "产品分类(字典product_category)"
        },
        "coverImageUrl": {
          "type": "string",
          "description": "封面图URL"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64",
          "description": "创建人ID"
        },
        "createdByName": {
          "type": "string",
          "description": "创建人名称"
        },
        "lineId": {
          "type": "integer",
          "format": "int64",
          "description": "产品线ID（前端叫「主题」）"
        },
        "lineName": {
          "type": "string",
          "description": "产品线名称（前端叫「主题名」，从产品线表关联查出）"
        },
        "name": {
          "type": "string",
          "description": "产品名称"
        },
        "productId": {
          "type": "integer",
          "format": "int64",
          "description": "产品ID"
        },
        "productNo": {
          "type": "string",
          "description": "产品编号(如C260409001)"
        },
        "productType": {
          "type": "string",
          "description": "产品类型(字典product_type: CORE=核心产品, GROUP=小蒙马, CUSTOM=私人定制)"
        },
        "publishedAt": {
          "type": "string",
          "format": "date-time",
          "description": "上架时间"
        },
        "seasons": {
          "type": "array",
          "description": "产品季节(JSON数组，如[\"summer\",\"autumn\"])",
          "items": {
            "type": "string"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "startPrice": {
          "type": "number",
          "description": "起步价(已上架产品的最低成人售价，草稿为null)"
        },
        "status": {
          "type": "string",
          "description": "产品状态(字典product_status)"
        },
        "subtitle": {
          "type": "string",
          "description": "副标题"
        },
        "tags": {
          "type": "array",
          "description": "产品标签(JSON数组，如[\"亲子\",\"研学\"])",
          "items": {
            "type": "string"
          }
        },
        "tierCount": {
          "type": "integer",
          "format": "int32",
          "description": "档位数量（前端叫「规格数」，单一=1，多档=N，未配置=0）"
        },
        "tripDays": {
          "type": "integer",
          "format": "int32",
          "description": "行程天数"
        },
        "tripNights": {
          "type": "integer",
          "format": "int32",
          "description": "行程晚数"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "管理端 - 产品列表项"
    },
    "管理端 - 产品操作记录": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "description": "操作类型"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "description": "操作时间"
        },
        "detail": {
          "type": "string",
          "description": "详情/驳回原因"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "记录ID"
        },
        "operatorId": {
          "type": "integer",
          "format": "int64",
          "description": "操作人ID"
        },
        "operatorName": {
          "type": "string",
          "description": "操作人名称"
        },
        "step": {
          "type": "string",
          "description": "步骤号"
        }
      },
      "title": "管理端 - 产品操作记录"
    },
    "管理端 - 产品状态变更": {
      "type": "object",
      "required": [
        "action"
      ],
      "properties": {
        "action": {
          "type": "string",
          "description": "操作动作(SUBMIT_PUBLISH/WITHDRAW/DIRECT_PUBLISH/UNPUBLISH/FORCE_UNPUBLISH/COMPLETE)"
        },
        "remark": {
          "type": "string",
          "description": "备注/驳回原因(可选)"
        }
      },
      "title": "管理端 - 产品状态变更"
    },
    "管理端 - 产品详情": {
      "type": "object",
      "properties": {
        "carouselImages": {
          "type": "object",
          "description": "轮播图"
        },
        "category": {
          "type": "string",
          "description": "产品分类(字典product_category)"
        },
        "childAgeMax": {
          "type": "integer",
          "format": "int32",
          "description": "儿童年龄上限"
        },
        "childAgeMin": {
          "type": "integer",
          "format": "int32",
          "description": "儿童年龄下限"
        },
        "coverImageUrl": {
          "type": "string",
          "description": "封面图"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64",
          "description": "创建人ID"
        },
        "crowdBenefit": {
          "description": "人群优惠",
          "$ref": "#/definitions/ProductCrowdBenefitDO",
          "originalRef": "ProductCrowdBenefitDO"
        },
        "currentStep": {
          "type": "integer",
          "format": "int32",
          "description": "当前步骤进度（1=基础信息, 2=行程编排, 3=路线与备品, 4=定价管理, 5=补充信息）"
        },
        "customFees": {
          "type": "array",
          "description": "自定义费用",
          "items": {
            "$ref": "#/definitions/ProductFeeItemDO",
            "originalRef": "ProductFeeItemDO"
          }
        },
        "depositAmount": {
          "type": "number",
          "description": "订金固定额"
        },
        "depositRatio": {
          "type": "integer",
          "format": "int32",
          "description": "订金比例"
        },
        "excludedFees": {
          "type": "array",
          "description": "费用不含",
          "items": {
            "$ref": "#/definitions/ProductFeeItemDO",
            "originalRef": "ProductFeeItemDO"
          }
        },
        "extraCosts": {
          "type": "array",
          "description": "额外成本项",
          "items": {
            "$ref": "#/definitions/ProductFeeItemDO",
            "originalRef": "ProductFeeItemDO"
          }
        },
        "includedFees": {
          "type": "array",
          "description": "费用包含",
          "items": {
            "$ref": "#/definitions/ProductFeeItemDO",
            "originalRef": "ProductFeeItemDO"
          }
        },
        "infantAgeMax": {
          "type": "integer",
          "format": "int32",
          "description": "幼童年龄上限"
        },
        "introduction": {
          "type": "string",
          "description": "产品简介"
        },
        "isBooking": {
          "type": "boolean",
          "description": "是否预约产品"
        },
        "itinerary": {
          "type": "array",
          "description": "行程天列表",
          "items": {
            "type": "object"
          }
        },
        "lineId": {
          "type": "integer",
          "format": "int64",
          "description": "产品线ID"
        },
        "name": {
          "type": "string",
          "description": "产品名称"
        },
        "paymentType": {
          "type": "string",
          "description": "支付方式"
        },
        "productId": {
          "type": "integer",
          "format": "int64",
          "description": "产品ID"
        },
        "productNo": {
          "type": "string",
          "description": "产品编号"
        },
        "productType": {
          "type": "string",
          "description": "产品类型"
        },
        "publishedAt": {
          "type": "string",
          "format": "date-time",
          "description": "上架时间"
        },
        "routeInfo": {
          "description": "路线信息",
          "$ref": "#/definitions/ProductRouteInfoDO",
          "originalRef": "ProductRouteInfoDO"
        },
        "schedules": {
          "type": "array",
          "description": "班期列表",
          "items": {
            "$ref": "#/definitions/GroupTourBatchDO",
            "originalRef": "GroupTourBatchDO"
          }
        },
        "seasons": {
          "type": "object",
          "description": "产品季节"
        },
        "showReview": {
          "type": "boolean",
          "description": "展示评价"
        },
        "status": {
          "type": "string",
          "description": "产品状态"
        },
        "subtitle": {
          "type": "string",
          "description": "副标题"
        },
        "supplement": {
          "description": "补充配置",
          "$ref": "#/definitions/ProductSupplementDO",
          "originalRef": "ProductSupplementDO"
        },
        "supplies": {
          "type": "array",
          "description": "备品列表",
          "items": {
            "$ref": "#/definitions/ProductSuppliesDO",
            "originalRef": "ProductSuppliesDO"
          }
        },
        "tags": {
          "type": "object",
          "description": "产品标签"
        },
        "tiers": {
          "type": "object",
          "description": "档位列表"
        },
        "toddlerAgeMax": {
          "type": "integer",
          "format": "int32",
          "description": "小童年龄上限"
        },
        "tripDays": {
          "type": "integer",
          "format": "int32",
          "description": "行程天数"
        },
        "tripNights": {
          "type": "integer",
          "format": "int32",
          "description": "行程晚数"
        }
      },
      "title": "管理端 - 产品详情"
    },
    "管理端 - 产品转让": {
      "type": "object",
      "required": [
        "newCreatorId"
      ],
      "properties": {
        "newCreatorId": {
          "type": "integer",
          "format": "int64",
          "description": "新创建人ID"
        }
      },
      "title": "管理端 - 产品转让"
    },
    "管理端 - 价格日历批量设置": {
      "type": "object",
      "required": [
        "adultSellPrice",
        "endDate",
        "startDate"
      ],
      "properties": {
        "adultSellPrice": {
          "type": "number",
          "description": "成人售价"
        },
        "childSellPrice": {
          "type": "number",
          "description": "儿童售价"
        },
        "dailyStock": {
          "type": "integer",
          "format": "int32",
          "description": "每日库存上限(NULL=不限量)"
        },
        "endDate": {
          "type": "string",
          "format": "date",
          "description": "结束日期"
        },
        "infantPrice": {
          "type": "number",
          "description": "幼童售价(0=免费)"
        },
        "priceType": {
          "type": "string",
          "description": "价格类型(NORMAL/PEAK/HOLIDAY/SPECIAL)"
        },
        "startDate": {
          "type": "string",
          "format": "date",
          "description": "开始日期"
        },
        "tierSeq": {
          "type": "integer",
          "format": "int32",
          "description": "档位序号(默认1)"
        },
        "toddlerDiscount": {
          "type": "number",
          "description": "小童优惠额(负数)"
        }
      },
      "title": "管理端 - 价格日历批量设置"
    },
    "管理端 - 报价结果": {
      "type": "object",
      "properties": {
        "dailyDetails": {
          "type": "array",
          "description": "每日价格明细",
          "items": {
            "$ref": "#/definitions/DailyDetail",
            "originalRef": "DailyDetail"
          }
        },
        "grandTotal": {
          "type": "number",
          "description": "总价合计"
        },
        "totalAdultPrice": {
          "type": "number",
          "description": "成人总价"
        },
        "totalChildPrice": {
          "type": "number",
          "description": "儿童总价"
        }
      },
      "title": "管理端 - 报价结果"
    },
    "管理端 - 报价计算": {
      "type": "object",
      "required": [
        "adultCount",
        "departureDate"
      ],
      "properties": {
        "adultCount": {
          "type": "integer",
          "format": "int32",
          "description": "成人数"
        },
        "batchId": {
          "type": "integer",
          "format": "int64",
          "description": "班期ID(小蒙马用)"
        },
        "childCount": {
          "type": "integer",
          "format": "int32",
          "description": "儿童数"
        },
        "departureDate": {
          "type": "string",
          "format": "date",
          "description": "出发日期"
        },
        "infantCount": {
          "type": "integer",
          "format": "int32",
          "description": "幼童数"
        },
        "tierSeq": {
          "type": "integer",
          "format": "int32",
          "description": "档位序号(默认1)"
        },
        "toddlerCount": {
          "type": "integer",
          "format": "int32",
          "description": "小童数"
        }
      },
      "title": "管理端 - 报价计算"
    },
    "管理端 - 班期保存": {
      "type": "object",
      "required": [
        "departureDate"
      ],
      "properties": {
        "adultPrice": {
          "type": "number",
          "description": "成人价"
        },
        "batchId": {
          "type": "integer",
          "format": "int64",
          "description": "班期ID(修改时传)"
        },
        "batchName": {
          "type": "string",
          "description": "班期名称"
        },
        "childPrice": {
          "type": "number",
          "description": "儿童价"
        },
        "departureDate": {
          "type": "string",
          "format": "date",
          "description": "出发日期"
        },
        "enrollmentDeadline": {
          "type": "string",
          "format": "date",
          "description": "报名截止日(默认出发前1天)"
        },
        "infantPrice": {
          "type": "number",
          "description": "幼童价"
        },
        "maxParticipants": {
          "type": "integer",
          "format": "int32",
          "description": "最大参与人数"
        },
        "maxRooms": {
          "type": "integer",
          "format": "int32",
          "description": "总房间数(0=不限)"
        },
        "productStockLimit": {
          "type": "integer",
          "format": "int32",
          "description": "产品库存上限"
        },
        "remark": {
          "type": "string",
          "description": "备注"
        },
        "toddlerDiscount": {
          "type": "number",
          "description": "小童优惠额(负数)"
        }
      },
      "title": "管理端 - 班期保存"
    },
    "管理端 - 班期团队保存": {
      "type": "object",
      "properties": {
        "staffList": {
          "type": "array",
          "description": "团队成员列表",
          "items": {
            "$ref": "#/definitions/StaffItem",
            "originalRef": "StaffItem"
          }
        }
      },
      "title": "管理端 - 班期团队保存"
    },
    "管理端 - 班期批量创建": {
      "type": "object",
      "required": [
        "endDate",
        "repeatMode",
        "startDate"
      ],
      "properties": {
        "adultPrice": {
          "type": "number",
          "description": "成人价"
        },
        "childPrice": {
          "type": "number",
          "description": "儿童价"
        },
        "dayOfWeek": {
          "type": "integer",
          "format": "int32",
          "description": "星期几(1=周一...7=周日)"
        },
        "endDate": {
          "type": "string",
          "format": "date",
          "description": "结束日期"
        },
        "maxParticipants": {
          "type": "integer",
          "format": "int32",
          "description": "最大参与人数"
        },
        "maxRooms": {
          "type": "integer",
          "format": "int32",
          "description": "总房间数"
        },
        "repeatMode": {
          "type": "string",
          "description": "重复模式(WEEKLY/BIWEEKLY/MONTHLY)"
        },
        "startDate": {
          "type": "string",
          "format": "date",
          "description": "开始日期"
        }
      },
      "title": "管理端 - 班期批量创建"
    },
    "管理端 - 费用推导预览": {
      "type": "object",
      "properties": {
        "feeType": {
          "type": "string",
          "description": "费用类型标签"
        },
        "name": {
          "type": "string",
          "description": "费用名称"
        },
        "source": {
          "type": "string",
          "description": "来源（AUTO=自动推导）"
        },
        "sourceNodeName": {
          "type": "string",
          "description": "来源节点名称"
        }
      },
      "title": "管理端 - 费用推导预览"
    },
    "统一响应结果«List«GroupBatchStaffDO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/GroupBatchStaffDO",
            "originalRef": "GroupBatchStaffDO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«GroupBatchStaffDO»»"
    },
    "统一响应结果«List«GroupTourBatchDO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/GroupTourBatchDO",
            "originalRef": "GroupTourBatchDO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«GroupTourBatchDO»»"
    },
    "统一响应结果«List«ProductPriceCalendarDO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/ProductPriceCalendarDO",
            "originalRef": "ProductPriceCalendarDO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«ProductPriceCalendarDO»»"
    },
    "统一响应结果«List«string»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "type": "string"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«string»»"
    },
    "统一响应结果«List«管理端 - 产品操作记录»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/管理端 - 产品操作记录",
            "originalRef": "管理端 - 产品操作记录"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«管理端 - 产品操作记录»»"
    },
    "统一响应结果«List«管理端 - 费用推导预览»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/管理端 - 费用推导预览",
            "originalRef": "管理端 - 费用推导预览"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«管理端 - 费用推导预览»»"
    },
    "统一响应结果«Void»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Void»"
    },
    "统一响应结果«int»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "integer",
          "format": "int32",
          "description": "响应数据"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«int»"
    },
    "统一响应结果«long»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "integer",
          "format": "int64",
          "description": "响应数据"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«long»"
    },
    "统一响应结果«分页结果«管理端 - 产品列表项»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/分页结果«管理端 - 产品列表项»",
          "originalRef": "分页结果«管理端 - 产品列表项»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«管理端 - 产品列表项»»"
    },
    "统一响应结果«管理端 - 产品详情»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/管理端 - 产品详情",
          "originalRef": "管理端 - 产品详情"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«管理端 - 产品详情»"
    },
    "统一响应结果«管理端 - 报价结果»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/管理端 - 报价结果",
          "originalRef": "管理端 - 报价结果"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«管理端 - 报价结果»"
    },
    "行程天": {
      "type": "object",
      "properties": {
        "breakfast": {
          "type": "string",
          "description": "早餐(HOTEL/CAMP/SPECIAL/SELF)"
        },
        "coverImageUrl": {
          "type": "string",
          "description": "当日封面图"
        },
        "customFields": {
          "type": "object",
          "description": "自定义概况"
        },
        "dailyMileage": {
          "type": "number",
          "description": "当日里程(km)"
        },
        "dayId": {
          "type": "integer",
          "format": "int64",
          "description": "行程天ID(已有则传，新增不传)"
        },
        "dayNumber": {
          "type": "integer",
          "format": "int32",
          "description": "天序号"
        },
        "dayTitle": {
          "type": "string",
          "description": "当日标题"
        },
        "description": {
          "type": "string",
          "description": "行程描述"
        },
        "diningRemark": {
          "type": "string",
          "description": "餐饮备注"
        },
        "dinner": {
          "type": "string",
          "description": "晚餐"
        },
        "hotels": {
          "type": "array",
          "description": "住宿列表",
          "items": {
            "$ref": "#/definitions/住宿项",
            "originalRef": "住宿项"
          }
        },
        "lunch": {
          "type": "string",
          "description": "午餐"
        },
        "mileageManualOverride": {
          "type": "boolean",
          "description": "里程是否手动覆盖"
        },
        "nodes": {
          "type": "array",
          "description": "活动节点列表",
          "items": {
            "$ref": "#/definitions/活动节点",
            "originalRef": "活动节点"
          }
        },
        "photoUrls": {
          "type": "array",
          "description": "照片集",
          "items": {
            "type": "string"
          }
        },
        "quoteText": {
          "type": "string",
          "description": "当日金句"
        },
        "routePoints": {
          "type": "array",
          "description": "途经路线点列表",
          "items": {
            "$ref": "#/definitions/途经路线点",
            "originalRef": "途经路线点"
          }
        }
      },
      "title": "行程天"
    },
    "规格项": {
      "type": "object",
      "required": [
        "tierName",
        "tierSeq"
      ],
      "properties": {
        "tierName": {
          "type": "string",
          "example": "舒适",
          "description": "规格名称"
        },
        "tierSeq": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "规格序号（1开始递增）"
        }
      },
      "title": "规格项"
    },
    "费用项": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "说明"
        },
        "feeType": {
          "type": "string",
          "description": "费用类型"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "费用项ID(已有则传)"
        },
        "name": {
          "type": "string",
          "description": "名称"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "source": {
          "type": "string",
          "description": "来源(AUTO/MANUAL)"
        },
        "unit": {
          "type": "string",
          "description": "单位(自定义费用)"
        },
        "unitPrice": {
          "type": "number",
          "description": "单价(自定义费用)"
        }
      },
      "title": "费用项"
    },
    "途经路线点": {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number",
          "description": "纬度"
        },
        "longitude": {
          "type": "number",
          "description": "经度"
        },
        "name": {
          "type": "string",
          "description": "地点名称"
        },
        "resourceId": {
          "type": "integer",
          "format": "int64",
          "description": "资源ID(可空=自定义地点)"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        }
      },
      "title": "途经路线点"
    },
    "额外成本项": {
      "type": "object",
      "properties": {
        "costItemId": {
          "type": "integer",
          "format": "int64",
          "description": "费用项ID"
        },
        "daily": {
          "type": "boolean",
          "description": "是否按天计费"
        },
        "description": {
          "type": "string",
          "description": "说明"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "费用项ID(已有则传，新增不传)"
        },
        "name": {
          "type": "string",
          "description": "名称"
        },
        "quantity": {
          "type": "integer",
          "format": "int32",
          "description": "数量"
        },
        "resourceId": {
          "type": "integer",
          "format": "int64",
          "description": "资源ID"
        },
        "resourceType": {
          "type": "string",
          "description": "资源类型"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "unitPrice": {
          "type": "number",
          "description": "单价"
        }
      },
      "title": "额外成本项"
    },
    "分页结果«管理端 - 产品线详情/列表项»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "$ref": "#/definitions/管理端 - 产品线详情/列表项",
            "originalRef": "管理端 - 产品线详情/列表项"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«管理端 - 产品线详情/列表项»"
    },
    "管理端 - 产品线下拉": {
      "type": "object",
      "properties": {
        "lineId": {
          "type": "integer",
          "format": "int64",
          "description": "产品线ID"
        },
        "name": {
          "type": "string",
          "description": "产品线名称"
        }
      },
      "title": "管理端 - 产品线下拉"
    },
    "管理端 - 产品线保存": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "coverImageUrl": {
          "type": "string",
          "description": "封面图"
        },
        "description": {
          "type": "string",
          "description": "描述"
        },
        "lineId": {
          "type": "integer",
          "format": "int64",
          "description": "产品线ID(修改时传)"
        },
        "name": {
          "type": "string",
          "description": "名称"
        },
        "productType": {
          "type": "string",
          "description": "绑定产品类型"
        },
        "seasons": {
          "type": "array",
          "description": "适用季节",
          "items": {
            "type": "string"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "status": {
          "type": "string",
          "description": "状态(ACTIVE/INACTIVE)"
        },
        "tags": {
          "type": "array",
          "description": "标签",
          "items": {
            "type": "string"
          }
        }
      },
      "title": "管理端 - 产品线保存"
    },
    "管理端 - 产品线详情/列表项": {
      "type": "object",
      "properties": {
        "coverImageUrl": {
          "type": "string",
          "description": "封面图"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64",
          "description": "创建人ID"
        },
        "description": {
          "type": "string",
          "description": "描述"
        },
        "lineId": {
          "type": "integer",
          "format": "int64",
          "description": "产品线ID"
        },
        "name": {
          "type": "string",
          "description": "产品线名称"
        },
        "productCount": {
          "type": "integer",
          "format": "int64",
          "example": 12,
          "description": "产品数量"
        },
        "productType": {
          "type": "string",
          "description": "绑定产品类型"
        },
        "seasons": {
          "type": "array",
          "description": "适用季节",
          "items": {
            "type": "string"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序"
        },
        "status": {
          "type": "string",
          "description": "状态"
        },
        "tags": {
          "type": "array",
          "description": "产品线标签",
          "items": {
            "type": "string"
          }
        }
      },
      "title": "管理端 - 产品线详情/列表项"
    },
    "统一响应结果«List«管理端 - 产品线下拉»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/管理端 - 产品线下拉",
            "originalRef": "管理端 - 产品线下拉"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«管理端 - 产品线下拉»»"
    },
    "统一响应结果«分页结果«管理端 - 产品线详情/列表项»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/分页结果«管理端 - 产品线详情/列表项»",
          "originalRef": "分页结果«管理端 - 产品线详情/列表项»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«管理端 - 产品线详情/列表项»»"
    },
    "统一响应结果«管理端 - 产品线详情/列表项»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/管理端 - 产品线详情/列表项",
          "originalRef": "管理端 - 产品线详情/列表项"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«管理端 - 产品线详情/列表项»"
    },
    "管理端 - 安全保障模板": {
      "type": "object",
      "properties": {
        "items": {
          "type": "string",
          "description": "具体条目（JSON）"
        },
        "name": {
          "type": "string",
          "description": "模板名称"
        },
        "templateId": {
          "type": "integer",
          "format": "int64",
          "description": "模板ID"
        }
      },
      "title": "管理端 - 安全保障模板"
    },
    "管理端 - 温馨提示": {
      "type": "object",
      "properties": {
        "tipsId": {
          "type": "integer",
          "format": "int64",
          "description": "提示ID"
        },
        "tipsName": {
          "type": "string",
          "description": "提示名称"
        }
      },
      "title": "管理端 - 温馨提示"
    },
    "管理端 - 预订条款": {
      "type": "object",
      "properties": {
        "termsId": {
          "type": "integer",
          "format": "int64",
          "description": "条款ID"
        },
        "termsName": {
          "type": "string",
          "description": "条款名称"
        }
      },
      "title": "管理端 - 预订条款"
    },
    "统一响应结果«List«管理端 - 安全保障模板»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/管理端 - 安全保障模板",
            "originalRef": "管理端 - 安全保障模板"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«管理端 - 安全保障模板»»"
    },
    "统一响应结果«List«管理端 - 温馨提示»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/管理端 - 温馨提示",
            "originalRef": "管理端 - 温馨提示"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«管理端 - 温馨提示»»"
    },
    "统一响应结果«List«管理端 - 预订条款»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/管理端 - 预订条款",
            "originalRef": "管理端 - 预订条款"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«管理端 - 预订条款»»"
    },
    "C端人群优惠": {
      "type": "object",
      "properties": {
        "childAccommodation": {
          "type": "string",
          "description": "儿童住宿"
        },
        "childMeal": {
          "type": "string",
          "description": "儿童餐饮"
        },
        "childTicket": {
          "type": "string",
          "description": "儿童门票"
        },
        "elderTicket": {
          "type": "string",
          "description": "老人门票"
        },
        "tips": {
          "type": "string",
          "description": "温馨提示"
        }
      },
      "title": "C端人群优惠"
    },
    "C端活动节点": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "描述"
        },
        "durationMinutes": {
          "type": "integer",
          "format": "int32",
          "description": "时长(分钟)"
        },
        "nodeName": {
          "type": "string",
          "description": "节点名称"
        },
        "nodeType": {
          "type": "string",
          "description": "节点类型"
        },
        "startTime": {
          "type": "string",
          "description": "开始时间"
        }
      },
      "title": "C端活动节点"
    },
    "C端行程天": {
      "type": "object",
      "properties": {
        "breakfast": {
          "type": "string",
          "description": "早餐"
        },
        "coverImageUrl": {
          "type": "string",
          "description": "封面图"
        },
        "dayNumber": {
          "type": "integer",
          "format": "int32",
          "description": "天序号"
        },
        "dayTitle": {
          "type": "string",
          "description": "标题"
        },
        "description": {
          "type": "string",
          "description": "描述"
        },
        "dinner": {
          "type": "string",
          "description": "晚餐"
        },
        "lunch": {
          "type": "string",
          "description": "午餐"
        },
        "nodes": {
          "type": "array",
          "description": "节点列表",
          "items": {
            "$ref": "#/definitions/C端活动节点",
            "originalRef": "C端活动节点"
          }
        }
      },
      "title": "C端行程天"
    },
    "C端费用说明": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "说明"
        },
        "name": {
          "type": "string",
          "description": "名称"
        }
      },
      "title": "C端费用说明"
    },
    "Map«int,List«ProductDayHotelDO»»": {
      "type": "object",
      "title": "Map«int,List«ProductDayHotelDO»»",
      "additionalProperties": {
        "$ref": "#/definitions/List",
        "originalRef": "List"
      }
    },
    "ProductDayHotelDO": {
      "type": "object",
      "properties": {
        "createTime": {
          "type": "string",
          "format": "date-time"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64"
        },
        "dayId": {
          "type": "integer",
          "format": "int64"
        },
        "dayNumber": {
          "type": "integer",
          "format": "int32"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "hotelId": {
          "type": "integer",
          "format": "int64"
        },
        "hotelName": {
          "type": "string"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "isDefault": {
          "type": "boolean"
        },
        "productId": {
          "type": "integer",
          "format": "int64"
        },
        "roomCount": {
          "type": "integer",
          "format": "int32"
        },
        "roomTypeId": {
          "type": "integer",
          "format": "int64"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "tierSeq": {
          "type": "integer",
          "format": "int32"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time"
        },
        "updatedBy": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "ProductDayHotelDO"
    },
    "小程序端 - 产品详情": {
      "type": "object",
      "properties": {
        "carouselImages": {
          "type": "array",
          "description": "轮播图",
          "items": {
            "type": "string"
          }
        },
        "coverImageUrl": {
          "type": "string",
          "description": "封面图"
        },
        "crowdBenefit": {
          "description": "人群优惠",
          "$ref": "#/definitions/C端人群优惠",
          "originalRef": "C端人群优惠"
        },
        "excludedFees": {
          "type": "array",
          "description": "费用不含",
          "items": {
            "$ref": "#/definitions/C端费用说明",
            "originalRef": "C端费用说明"
          }
        },
        "includedFees": {
          "type": "array",
          "description": "费用包含",
          "items": {
            "$ref": "#/definitions/C端费用说明",
            "originalRef": "C端费用说明"
          }
        },
        "introduction": {
          "type": "string",
          "description": "产品简介"
        },
        "itinerary": {
          "type": "array",
          "description": "行程天列表",
          "items": {
            "$ref": "#/definitions/C端行程天",
            "originalRef": "C端行程天"
          }
        },
        "name": {
          "type": "string",
          "description": "产品名称"
        },
        "productId": {
          "type": "integer",
          "format": "int64",
          "description": "产品ID"
        },
        "productType": {
          "type": "string",
          "description": "产品类型"
        },
        "routeMapUrl": {
          "type": "string",
          "description": "路线图URL"
        },
        "subtitle": {
          "type": "string",
          "description": "副标题"
        },
        "tripDays": {
          "type": "integer",
          "format": "int32",
          "description": "行程天数"
        },
        "tripNights": {
          "type": "integer",
          "format": "int32",
          "description": "行程晚数"
        }
      },
      "title": "小程序端 - 产品详情"
    },
    "小程序端 - 价格日历": {
      "type": "object",
      "properties": {
        "days": {
          "type": "array",
          "description": "日历列表",
          "items": {
            "$ref": "#/definitions/日历日期项",
            "originalRef": "日历日期项"
          }
        }
      },
      "title": "小程序端 - 价格日历"
    },
    "日历日期项": {
      "type": "object",
      "properties": {
        "adultPrice": {
          "type": "number",
          "description": "成人售价"
        },
        "childPrice": {
          "type": "number",
          "description": "儿童售价"
        },
        "date": {
          "type": "string",
          "description": "日期(yyyy-MM-dd)"
        },
        "isSelectable": {
          "type": "boolean",
          "description": "是否可选(有库存且未过期)"
        },
        "priceType": {
          "type": "string",
          "description": "价格类型"
        },
        "remainStock": {
          "type": "integer",
          "format": "int32",
          "description": "剩余库存(NULL=不限量)"
        }
      },
      "title": "日历日期项"
    },
    "统一响应结果«List«小程序端 - 产品详情»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/小程序端 - 产品详情",
            "originalRef": "小程序端 - 产品详情"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«小程序端 - 产品详情»»"
    },
    "统一响应结果«Map«int,List«ProductDayHotelDO»»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "object",
          "description": "响应数据",
          "additionalProperties": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/ProductDayHotelDO",
              "originalRef": "ProductDayHotelDO"
            }
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Map«int,List«ProductDayHotelDO»»»"
    },
    "统一响应结果«小程序端 - 产品详情»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/小程序端 - 产品详情",
          "originalRef": "小程序端 - 产品详情"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«小程序端 - 产品详情»"
    },
    "统一响应结果«小程序端 - 价格日历»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/小程序端 - 价格日历",
          "originalRef": "小程序端 - 价格日历"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«小程序端 - 价格日历»"
    },
    "小程序端 - 产品列表项": {
      "type": "object",
      "properties": {
        "coverImageUrl": {
          "type": "string",
          "description": "封面图URL"
        },
        "lineName": {
          "type": "string",
          "description": "产品线名称（前端叫「主题名」）"
        },
        "name": {
          "type": "string",
          "description": "产品名称"
        },
        "paymentType": {
          "type": "string",
          "description": "支付方式(FULL=全款, DEPOSIT=订金)"
        },
        "productId": {
          "type": "integer",
          "format": "int64",
          "description": "产品ID"
        },
        "productType": {
          "type": "string",
          "description": "产品类型(CORE/GROUP/CUSTOM)"
        },
        "seasons": {
          "type": "array",
          "description": "产品季节(如[\"summer\",\"autumn\"])",
          "items": {
            "type": "string"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "startPrice": {
          "type": "number",
          "description": "起步价(¥X起，最低成人售价)"
        },
        "startPriceLabel": {
          "type": "string",
          "description": "起步价展示文案(如\"¥3980起/人\")"
        },
        "subtitle": {
          "type": "string",
          "description": "副标题（一句话卖点）"
        },
        "tags": {
          "type": "array",
          "description": "产品标签(如[\"亲子\",\"研学\"])",
          "items": {
            "type": "string"
          }
        },
        "tierCount": {
          "type": "integer",
          "format": "int32",
          "description": "规格数量（前端叫「规格数」，单一=1，多档=N）"
        },
        "tripDays": {
          "type": "integer",
          "format": "int32",
          "description": "行程天数"
        },
        "tripNights": {
          "type": "integer",
          "format": "int32",
          "description": "行程晚数"
        }
      },
      "title": "小程序端 - 产品列表项"
    },
    "统一响应结果«List«小程序端 - 产品列表项»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/小程序端 - 产品列表项",
            "originalRef": "小程序端 - 产品列表项"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«小程序端 - 产品列表项»»"
    }
  }
}