components:
    schemas:
        AppBindWechatRequest:
            properties:
                code:
                    type: string
            type: object
        AppLoginRequest:
            properties:
                code:
                    type: string
                phone:
                    type: string
            type: object
        AppLoginResponse:
            properties:
                customer:
                    $ref: '#/components/schemas/AppPersonalCustomerDTO'
                token:
                    type: string
            type: object
        AppPersonalCustomerDTO:
            properties:
                avatar_url:
                    type: string
                id:
                    minimum: 0
                    type: integer
                nickname:
                    type: string
                phone:
                    type: string
                status:
                    type: integer
                wx_open_id:
                    type: string
            type: object
        AppSendCodeRequest:
            properties:
                phone:
                    type: string
            type: object
        AppUpdateProfileRequest:
            properties:
                avatar_url:
                    type: string
                nickname:
                    type: string
            type: object
        DtoAccountPageResult:
            properties:
                items:
                    description: 账号列表
                    items:
                        $ref: '#/components/schemas/DtoAccountResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoAccountResponse:
            properties:
                created_at:
                    description: 创建时间
                    type: string
                creator:
                    description: 创建人ID
                    minimum: 0
                    type: integer
                enterprise_id:
                    description: 关联企业ID
                    minimum: 0
                    nullable: true
                    type: integer
                id:
                    description: 账号ID
                    minimum: 0
                    type: integer
                phone:
                    description: 手机号
                    type: string
                shop_id:
                    description: 关联店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                status:
                    description: 状态 (0:禁用, 1:启用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
                updater:
                    description: 更新人ID
                    minimum: 0
                    type: integer
                user_type:
                    description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
                    type: integer
                username:
                    description: 用户名
                    type: string
            type: object
        DtoAllocateCardsReq:
            properties:
                iccids:
                    description: 需要授权的 ICCID 列表
                    items:
                        type: string
                    nullable: true
                    type: array
                remark:
                    description: 授权备注
                    type: string
            required:
                - iccids
            type: object
        DtoAllocateCardsResp:
            properties:
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败详情
                    items:
                        $ref: '#/components/schemas/DtoFailedItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoAllocateDevicesReq:
            properties:
                device_nos:
                    description: 设备号列表（最多100个）
                    items:
                        type: string
                    nullable: true
                    type: array
                remark:
                    description: 授权备注
                    type: string
            type: object
        DtoAllocateDevicesRequest:
            properties:
                device_ids:
                    description: 设备ID列表
                    items:
                        minimum: 0
                        type: integer
                    maxItems: 100
                    minItems: 1
                    nullable: true
                    type: array
                remark:
                    description: 备注
                    maxLength: 500
                    type: string
                target_shop_id:
                    description: 目标店铺ID
                    minimum: 1
                    type: integer
            required:
                - target_shop_id
                - device_ids
            type: object
        DtoAllocateDevicesResp:
            properties:
                authorized_devices:
                    description: 已授权设备列表
                    items:
                        $ref: '#/components/schemas/DtoAuthorizedDeviceItem'
                    nullable: true
                    type: array
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败项列表
                    items:
                        $ref: '#/components/schemas/DtoFailedDeviceItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoAllocateDevicesResponse:
            properties:
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败详情列表
                    items:
                        $ref: '#/components/schemas/DtoAllocationDeviceFailedItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoAllocateStandaloneCardsRequest:
            properties:
                batch_no:
                    description: 批次号（selection_type=filter时可选）
                    maxLength: 100
                    type: string
                carrier_id:
                    description: 运营商ID（selection_type=filter时可选）
                    minimum: 0
                    nullable: true
                    type: integer
                iccid_end:
                    description: 结束ICCID（selection_type=range时必填）
                    maxLength: 20
                    type: string
                iccid_start:
                    description: 起始ICCID（selection_type=range时必填）
                    maxLength: 20
                    type: string
                iccids:
                    description: ICCID列表（selection_type=list时必填，最多1000个）
                    items:
                        type: string
                    nullable: true
                    type: array
                remark:
                    description: 备注
                    maxLength: 500
                    type: string
                selection_type:
                    description: 选卡方式 (list:ICCID列表, range:号段范围, filter:筛选条件)
                    enum:
                        - list
                        - range
                        - filter
                    type: string
                status:
                    description: 卡状态 (1:在库, 2:已分销)（selection_type=filter时可选）
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                to_shop_id:
                    description: 目标店铺ID
                    minimum: 1
                    type: integer
            required:
                - to_shop_id
                - selection_type
            type: object
        DtoAllocateStandaloneCardsResponse:
            properties:
                allocation_no:
                    description: 分配单号
                    type: string
                fail_count:
                    description: 失败数
                    type: integer
                failed_items:
                    description: 失败项列表
                    items:
                        $ref: '#/components/schemas/DtoAllocationFailedItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数
                    type: integer
                total_count:
                    description: 待分配总数
                    type: integer
            type: object
        DtoAllocationDeviceFailedItem:
            properties:
                device_id:
                    description: 设备ID
                    minimum: 0
                    type: integer
                device_no:
                    description: 设备号
                    type: string
                reason:
                    description: 失败原因
                    type: string
            type: object
        DtoAllocationFailedItem:
            properties:
                iccid:
                    description: ICCID
                    type: string
                reason:
                    description: 失败原因
                    type: string
            type: object
        DtoApproveWithdrawalReq:
            properties:
                account_name:
                    description: 修正后的收款人姓名
                    maxLength: 100
                    nullable: true
                    type: string
                account_number:
                    description: 修正后的收款账号
                    maxLength: 100
                    nullable: true
                    type: string
                amount:
                    description: 修正后的提现金额（分），不填则使用原金额
                    minimum: 1
                    nullable: true
                    type: integer
                payment_type:
                    description: 放款类型（目前只支持manual人工打款）
                    type: string
                remark:
                    description: 备注
                    maxLength: 500
                    type: string
                withdrawal_method:
                    description: 修正后的收款类型 (alipay:支付宝, wechat:微信, bank:银行卡)
                    nullable: true
                    type: string
            required:
                - payment_type
            type: object
        DtoAssetAllocationRecordDetailResponse:
            properties:
                allocation_name:
                    description: 分配类型名称
                    type: string
                allocation_no:
                    description: 分配单号
                    type: string
                allocation_type:
                    description: 分配类型 (allocate:分配, recall:回收)
                    type: string
                asset_id:
                    description: 资产ID
                    minimum: 0
                    type: integer
                asset_identifier:
                    description: 资产标识符（ICCID或设备号）
                    type: string
                asset_type:
                    description: 资产类型 (iot_card:物联网卡, device:设备)
                    type: string
                asset_type_name:
                    description: 资产类型名称
                    type: string
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                from_owner_id:
                    description: 来源所有者ID
                    minimum: 0
                    nullable: true
                    type: integer
                from_owner_name:
                    description: 来源所有者名称
                    type: string
                from_owner_type:
                    description: 来源所有者类型
                    type: string
                id:
                    description: 记录ID
                    minimum: 0
                    type: integer
                operator_id:
                    description: 操作人ID
                    minimum: 0
                    type: integer
                operator_name:
                    description: 操作人名称
                    type: string
                related_card_count:
                    description: 关联卡数量
                    type: integer
                related_card_ids:
                    description: 关联卡ID列表
                    items:
                        minimum: 0
                        type: integer
                    type: array
                related_device_id:
                    description: 关联设备ID
                    minimum: 0
                    nullable: true
                    type: integer
                remark:
                    description: 备注
                    type: string
                to_owner_id:
                    description: 目标所有者ID
                    minimum: 0
                    type: integer
                to_owner_name:
                    description: 目标所有者名称
                    type: string
                to_owner_type:
                    description: 目标所有者类型
                    type: string
            type: object
        DtoAssetAllocationRecordResponse:
            properties:
                allocation_name:
                    description: 分配类型名称
                    type: string
                allocation_no:
                    description: 分配单号
                    type: string
                allocation_type:
                    description: 分配类型 (allocate:分配, recall:回收)
                    type: string
                asset_id:
                    description: 资产ID
                    minimum: 0
                    type: integer
                asset_identifier:
                    description: 资产标识符（ICCID或设备号）
                    type: string
                asset_type:
                    description: 资产类型 (iot_card:物联网卡, device:设备)
                    type: string
                asset_type_name:
                    description: 资产类型名称
                    type: string
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                from_owner_id:
                    description: 来源所有者ID
                    minimum: 0
                    nullable: true
                    type: integer
                from_owner_name:
                    description: 来源所有者名称
                    type: string
                from_owner_type:
                    description: 来源所有者类型
                    type: string
                id:
                    description: 记录ID
                    minimum: 0
                    type: integer
                operator_id:
                    description: 操作人ID
                    minimum: 0
                    type: integer
                operator_name:
                    description: 操作人名称
                    type: string
                related_card_count:
                    description: 关联卡数量
                    type: integer
                related_device_id:
                    description: 关联设备ID
                    minimum: 0
                    nullable: true
                    type: integer
                remark:
                    description: 备注
                    type: string
                to_owner_id:
                    description: 目标所有者ID
                    minimum: 0
                    type: integer
                to_owner_name:
                    description: 目标所有者名称
                    type: string
                to_owner_type:
                    description: 目标所有者类型
                    type: string
            type: object
        DtoAssignPermissionsParams:
            properties:
                perm_ids:
                    description: 权限ID列表
                    items:
                        minimum: 0
                        type: integer
                    minItems: 1
                    nullable: true
                    type: array
            required:
                - perm_ids
            type: object
        DtoAssignRolesParams:
            properties:
                role_ids:
                    description: 角色ID列表，传空数组可清空所有角色
                    items:
                        minimum: 0
                        type: integer
                    nullable: true
                    type: array
            type: object
        DtoAuthorizationItem:
            properties:
                authorized_at:
                    description: 授权时间
                    format: date-time
                    type: string
                authorized_by:
                    description: 授权人ID
                    minimum: 0
                    type: integer
                authorizer_name:
                    description: 授权人名称
                    type: string
                authorizer_type:
                    description: 授权人类型：2=平台，3=代理
                    type: integer
                card_id:
                    description: 卡ID
                    minimum: 0
                    type: integer
                enterprise_id:
                    description: 企业ID
                    minimum: 0
                    type: integer
                enterprise_name:
                    description: 企业名称
                    type: string
                iccid:
                    description: ICCID
                    type: string
                id:
                    description: 授权记录ID
                    minimum: 0
                    type: integer
                msisdn:
                    description: 手机号
                    type: string
                remark:
                    description: 备注
                    type: string
                revoked_at:
                    description: 回收时间
                    format: date-time
                    nullable: true
                    type: string
                revoked_by:
                    description: 回收人ID
                    minimum: 0
                    nullable: true
                    type: integer
                revoker_name:
                    description: 回收人名称
                    type: string
                status:
                    description: 状态：1=有效，0=已回收
                    type: integer
            type: object
        DtoAuthorizationListResp:
            properties:
                items:
                    description: 授权记录列表
                    items:
                        $ref: '#/components/schemas/DtoAuthorizationItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoAuthorizedDeviceItem:
            properties:
                card_count:
                    description: 绑定卡数量
                    type: integer
                device_id:
                    description: 设备ID
                    minimum: 0
                    type: integer
                device_no:
                    description: 设备号
                    type: string
            type: object
        DtoBaseCommissionConfig:
            properties:
                mode:
                    description: 返佣模式 (fixed:固定金额, percent:百分比)
                    type: string
                value:
                    description: 返佣值（分或千分比，如200=20%）
                    minimum: 0
                    type: integer
            required:
                - mode
                - value
            type: object
        DtoBatchAllocatePackagesRequest:
            properties:
                base_commission:
                    $ref: '#/components/schemas/DtoBaseCommissionConfig'
                enable_tier_commission:
                    description: 是否启用梯度返佣
                    type: boolean
                price_adjustment:
                    $ref: '#/components/schemas/DtoPriceAdjustment'
                series_id:
                    description: 套餐系列ID
                    minimum: 0
                    type: integer
                shop_id:
                    description: 被分配的店铺ID
                    minimum: 0
                    type: integer
                tier_config:
                    $ref: '#/components/schemas/DtoTierCommissionConfig'
            required:
                - shop_id
                - series_id
                - base_commission
            type: object
        DtoBatchSetCardSeriesBindngRequest:
            properties:
                iccids:
                    description: ICCID列表
                    items:
                        type: string
                    maxItems: 500
                    minItems: 1
                    nullable: true
                    type: array
                series_allocation_id:
                    description: 套餐系列分配ID（0表示清除关联）
                    minimum: 0
                    type: integer
            required:
                - iccids
                - series_allocation_id
            type: object
        DtoBatchSetCardSeriesBindngResponse:
            properties:
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败详情列表
                    items:
                        $ref: '#/components/schemas/DtoCardSeriesBindngFailedItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoBatchSetDeviceSeriesBindngRequest:
            properties:
                device_ids:
                    description: 设备ID列表
                    items:
                        minimum: 0
                        type: integer
                    maxItems: 500
                    minItems: 1
                    nullable: true
                    type: array
                series_allocation_id:
                    description: 套餐系列分配ID（0表示清除关联）
                    minimum: 0
                    type: integer
            required:
                - device_ids
                - series_allocation_id
            type: object
        DtoBatchSetDeviceSeriesBindngResponse:
            properties:
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败详情列表
                    items:
                        $ref: '#/components/schemas/DtoDeviceSeriesBindngFailedItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoBatchUpdateCostPriceRequest:
            properties:
                change_reason:
                    description: 变更原因
                    maxLength: 255
                    type: string
                price_adjustment:
                    $ref: '#/components/schemas/DtoPriceAdjustment'
                series_id:
                    description: 套餐系列ID（可选，不填则调整所有）
                    minimum: 0
                    nullable: true
                    type: integer
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
            required:
                - shop_id
                - price_adjustment
            type: object
        DtoBatchUpdateCostPriceResponse:
            properties:
                affected_ids:
                    description: 受影响的分配ID列表
                    items:
                        minimum: 0
                        type: integer
                    nullable: true
                    type: array
                updated_count:
                    description: 更新数量
                    type: integer
            type: object
        DtoBindCardToDeviceRequest:
            properties:
                iot_card_id:
                    description: IoT卡ID
                    minimum: 1
                    type: integer
                slot_position:
                    description: 插槽位置 (1-4)
                    maximum: 4
                    minimum: 1
                    type: integer
            required:
                - iot_card_id
                - slot_position
            type: object
        DtoBindCardToDeviceResponse:
            properties:
                binding_id:
                    description: 绑定记录ID
                    minimum: 0
                    type: integer
                message:
                    description: 提示信息
                    type: string
            type: object
        DtoCardSeriesBindngFailedItem:
            properties:
                iccid:
                    description: ICCID
                    type: string
                reason:
                    description: 失败原因
                    type: string
            type: object
        DtoCarrierPageResult:
            properties:
                list:
                    description: 运营商列表
                    items:
                        $ref: '#/components/schemas/DtoCarrierResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoCarrierResponse:
            properties:
                carrier_code:
                    description: 运营商编码
                    type: string
                carrier_name:
                    description: 运营商名称
                    type: string
                carrier_type:
                    description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                    type: string
                created_at:
                    description: 创建时间
                    type: string
                description:
                    description: 运营商描述
                    type: string
                id:
                    description: 运营商ID
                    minimum: 0
                    type: integer
                status:
                    description: 状态 (1:启用, 0:禁用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
            type: object
        DtoChangePasswordRequest:
            properties:
                new_password:
                    type: string
                old_password:
                    type: string
            type: object
        DtoCommissionStatsResponse:
            properties:
                cost_diff_amount:
                    description: 成本价差收入（分）
                    type: integer
                cost_diff_count:
                    description: 成本价差笔数
                    type: integer
                cost_diff_percent:
                    description: 成本价差占比（千分比）
                    type: integer
                one_time_amount:
                    description: 一次性佣金收入（分）
                    type: integer
                one_time_count:
                    description: 一次性佣金笔数
                    type: integer
                one_time_percent:
                    description: 一次性佣金占比（千分比）
                    type: integer
                tier_bonus_amount:
                    description: 梯度奖励收入（分）
                    type: integer
                tier_bonus_count:
                    description: 梯度奖励笔数
                    type: integer
                tier_bonus_percent:
                    description: 梯度奖励占比（千分比）
                    type: integer
                total_amount:
                    description: 总收入（分）
                    type: integer
                total_count:
                    description: 总笔数
                    type: integer
            type: object
        DtoCommissionTierInfo:
            properties:
                current_rate:
                    description: 当前返佣比例
                    type: string
                next_rate:
                    description: 下一档位返佣比例
                    type: string
                next_threshold:
                    description: 下一档位阈值
                    nullable: true
                    type: integer
            type: object
        DtoCreateAccountRequest:
            properties:
                enterprise_id:
                    description: 关联企业ID（企业账号必填）
                    minimum: 0
                    nullable: true
                    type: integer
                password:
                    description: 密码
                    maxLength: 32
                    minLength: 8
                    type: string
                phone:
                    description: 手机号
                    maxLength: 11
                    minLength: 11
                    type: string
                shop_id:
                    description: 关联店铺ID（代理账号必填）
                    minimum: 0
                    nullable: true
                    type: integer
                user_type:
                    description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
                    maximum: 4
                    minimum: 1
                    type: integer
                username:
                    description: 用户名
                    maxLength: 50
                    minLength: 3
                    type: string
            required:
                - username
                - phone
                - password
                - user_type
            type: object
        DtoCreateCarrierRequest:
            properties:
                carrier_code:
                    description: 运营商编码
                    maxLength: 50
                    minLength: 1
                    type: string
                carrier_name:
                    description: 运营商名称
                    maxLength: 100
                    minLength: 1
                    type: string
                carrier_type:
                    description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                    type: string
                description:
                    description: 运营商描述
                    maxLength: 500
                    type: string
            required:
                - carrier_code
                - carrier_name
                - carrier_type
            type: object
        DtoCreateCustomerAccountReq:
            properties:
                password:
                    description: 密码
                    maximum: 20
                    minimum: 6
                    type: string
                phone:
                    description: 手机号
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                username:
                    description: 用户名
                    maximum: 50
                    minimum: 2
                    type: string
            required:
                - username
                - phone
                - password
                - shop_id
            type: object
        DtoCreateEnterpriseReq:
            properties:
                address:
                    description: 详细地址
                    maximum: 255
                    type: string
                business_license:
                    description: 营业执照号
                    maximum: 100
                    type: string
                city:
                    description: 城市
                    maximum: 50
                    type: string
                contact_name:
                    description: 联系人姓名
                    maximum: 50
                    type: string
                contact_phone:
                    description: 联系人电话
                    maximum: 20
                    type: string
                district:
                    description: 区县
                    maximum: 50
                    type: string
                enterprise_code:
                    description: 企业编号（唯一）
                    maximum: 50
                    type: string
                enterprise_name:
                    description: 企业名称
                    maximum: 100
                    type: string
                legal_person:
                    description: 法人代表
                    maximum: 50
                    type: string
                login_phone:
                    description: 登录手机号（作为企业账号）
                    type: string
                owner_shop_id:
                    description: 归属店铺ID（可不填则归属平台）
                    minimum: 0
                    nullable: true
                    type: integer
                password:
                    description: 登录密码
                    maximum: 20
                    minimum: 6
                    type: string
                province:
                    description: 省份
                    maximum: 50
                    type: string
            required:
                - enterprise_name
                - enterprise_code
                - contact_name
                - contact_phone
                - login_phone
                - password
            type: object
        DtoCreateEnterpriseResp:
            properties:
                account_id:
                    description: 账号ID
                    minimum: 0
                    type: integer
                enterprise:
                    $ref: '#/components/schemas/DtoEnterpriseItem'
            type: object
        DtoCreateMyWithdrawalReq:
            properties:
                account_name:
                    description: 收款人姓名
                    maximum: 50
                    type: string
                account_number:
                    description: 收款账号
                    maximum: 100
                    type: string
                amount:
                    description: 提现金额（分）
                    minimum: 1
                    type: integer
                withdrawal_method:
                    description: 收款类型
                    enum:
                        - alipay
                    type: string
            required:
                - amount
                - withdrawal_method
                - account_name
                - account_number
            type: object
        DtoCreateMyWithdrawalResp:
            properties:
                actual_amount:
                    description: 实际到账金额（分）
                    type: integer
                amount:
                    description: 提现金额（分）
                    type: integer
                created_at:
                    description: 申请时间
                    type: string
                fee:
                    description: 手续费（分）
                    type: integer
                fee_rate:
                    description: 手续费比率（基点）
                    type: integer
                id:
                    description: 提现申请ID
                    minimum: 0
                    type: integer
                status:
                    description: 状态
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
                withdrawal_no:
                    description: 提现单号
                    type: string
            type: object
        DtoCreateOrderRequest:
            properties:
                device_id:
                    description: 设备ID(设备购买时必填)
                    minimum: 0
                    nullable: true
                    type: integer
                iot_card_id:
                    description: IoT卡ID(单卡购买时必填)
                    minimum: 0
                    nullable: true
                    type: integer
                order_type:
                    description: 订单类型 (single_card:单卡购买, device:设备购买)
                    type: string
                package_ids:
                    description: 套餐ID列表
                    items:
                        minimum: 0
                        type: integer
                    maxItems: 10
                    minItems: 1
                    nullable: true
                    type: array
            required:
                - order_type
                - package_ids
            type: object
        DtoCreatePackageRequest:
            properties:
                data_amount_mb:
                    description: 总流量额度(MB)
                    minimum: 0
                    nullable: true
                    type: integer
                data_type:
                    description: 流量类型 (real:真流量, virtual:虚流量)
                    nullable: true
                    type: string
                duration_months:
                    description: 套餐时长(月数)
                    maximum: 120
                    minimum: 1
                    type: integer
                package_code:
                    description: 套餐编码
                    maxLength: 100
                    minLength: 1
                    type: string
                package_name:
                    description: 套餐名称
                    maxLength: 255
                    minLength: 1
                    type: string
                package_type:
                    description: 套餐类型 (formal:正式套餐, addon:附加套餐)
                    type: string
                price:
                    description: 套餐价格(分)
                    minimum: 0
                    type: integer
                real_data_mb:
                    description: 真流量额度(MB)
                    minimum: 0
                    nullable: true
                    type: integer
                series_id:
                    description: 套餐系列ID
                    minimum: 0
                    nullable: true
                    type: integer
                suggested_cost_price:
                    description: 建议成本价(分)
                    minimum: 0
                    nullable: true
                    type: integer
                suggested_retail_price:
                    description: 建议售价(分)
                    minimum: 0
                    nullable: true
                    type: integer
                virtual_data_mb:
                    description: 虚流量额度(MB)
                    minimum: 0
                    nullable: true
                    type: integer
            required:
                - package_code
                - package_name
                - package_type
                - duration_months
                - price
            type: object
        DtoCreatePackageSeriesRequest:
            properties:
                description:
                    description: 描述
                    maxLength: 500
                    type: string
                series_code:
                    description: 系列编码
                    maxLength: 100
                    minLength: 1
                    type: string
                series_name:
                    description: 系列名称
                    maxLength: 255
                    minLength: 1
                    type: string
            required:
                - series_code
                - series_name
            type: object
        DtoCreatePermissionRequest:
            properties:
                parent_id:
                    description: 父权限ID
                    minimum: 0
                    nullable: true
                    type: integer
                perm_code:
                    description: 权限编码
                    maxLength: 100
                    minLength: 1
                    type: string
                perm_name:
                    description: 权限名称
                    maxLength: 50
                    minLength: 1
                    type: string
                perm_type:
                    description: 权限类型 (1:菜单, 2:按钮)
                    maximum: 2
                    minimum: 1
                    type: integer
                platform:
                    description: 适用端口 (all:全部, web:Web后台, h5:H5端)，默认为 all
                    type: string
                sort:
                    description: 排序值
                    minimum: 0
                    type: integer
                url:
                    description: 请求路径
                    maxLength: 255
                    type: string
            required:
                - perm_name
                - perm_code
                - perm_type
            type: object
        DtoCreateRoleRequest:
            properties:
                role_desc:
                    description: 角色描述
                    maxLength: 255
                    type: string
                role_name:
                    description: 角色名称
                    maxLength: 50
                    minLength: 1
                    type: string
                role_type:
                    description: 角色类型 (1:平台角色, 2:客户角色)
                    maximum: 2
                    minimum: 1
                    type: integer
            required:
                - role_name
                - role_type
            type: object
        DtoCreateShopAccountRequest:
            properties:
                password:
                    description: 密码
                    maxLength: 32
                    minLength: 8
                    type: string
                phone:
                    description: 手机号
                    maxLength: 11
                    minLength: 11
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 1
                    type: integer
                username:
                    description: 用户名
                    maxLength: 50
                    minLength: 3
                    type: string
            required:
                - shop_id
                - username
                - phone
                - password
            type: object
        DtoCreateShopPackageAllocationRequest:
            properties:
                cost_price:
                    description: 覆盖的成本价（分）
                    minimum: 0
                    type: integer
                package_id:
                    description: 套餐ID
                    minimum: 0
                    type: integer
                shop_id:
                    description: 被分配的店铺ID
                    minimum: 0
                    type: integer
            required:
                - shop_id
                - package_id
                - cost_price
            type: object
        DtoCreateShopRequest:
            properties:
                address:
                    description: 详细地址
                    maxLength: 255
                    type: string
                city:
                    description: 城市
                    maxLength: 50
                    type: string
                contact_name:
                    description: 联系人姓名
                    maxLength: 50
                    type: string
                contact_phone:
                    description: 联系人电话
                    maxLength: 11
                    minLength: 11
                    type: string
                district:
                    description: 区县
                    maxLength: 50
                    type: string
                init_password:
                    description: 初始账号密码
                    maxLength: 32
                    minLength: 8
                    type: string
                init_phone:
                    description: 初始账号手机号
                    maxLength: 11
                    minLength: 11
                    type: string
                init_username:
                    description: 初始账号用户名
                    maxLength: 50
                    minLength: 3
                    type: string
                parent_id:
                    description: 上级店铺ID（一级店铺可不填）
                    minimum: 1
                    nullable: true
                    type: integer
                province:
                    description: 省份
                    maxLength: 50
                    type: string
                shop_code:
                    description: 店铺编号
                    maxLength: 50
                    minLength: 1
                    type: string
                shop_name:
                    description: 店铺名称
                    maxLength: 100
                    minLength: 1
                    type: string
            required:
                - shop_name
                - shop_code
                - init_password
                - init_username
                - init_phone
            type: object
        DtoCreateShopSeriesAllocationRequest:
            properties:
                base_commission:
                    $ref: '#/components/schemas/DtoBaseCommissionConfig'
                enable_one_time_commission:
                    description: 是否启用一次性佣金
                    type: boolean
                enable_tier_commission:
                    description: 是否启用梯度返佣
                    type: boolean
                one_time_commission_config:
                    $ref: '#/components/schemas/DtoOneTimeCommissionConfig'
                series_id:
                    description: 套餐系列ID
                    minimum: 0
                    type: integer
                shop_id:
                    description: 被分配的店铺ID
                    minimum: 0
                    type: integer
                tier_config:
                    $ref: '#/components/schemas/DtoTierCommissionConfig'
            required:
                - shop_id
                - series_id
                - base_commission
            type: object
        DtoCreateWithdrawalSettingReq:
            properties:
                daily_withdrawal_limit:
                    description: 每日提现次数限制
                    maximum: 100
                    minimum: 1
                    type: integer
                fee_rate:
                    description: 手续费比率（基点，100=1%）
                    maximum: 10000
                    minimum: 0
                    type: integer
                min_withdrawal_amount:
                    description: 最低提现金额（分）
                    minimum: 1
                    type: integer
            required:
                - daily_withdrawal_limit
                - min_withdrawal_amount
                - fee_rate
            type: object
        DtoCustomerAccountItem:
            properties:
                created_at:
                    description: 创建时间
                    type: string
                enterprise_id:
                    description: 企业ID
                    minimum: 0
                    nullable: true
                    type: integer
                enterprise_name:
                    description: 企业名称
                    type: string
                id:
                    description: 账号ID
                    minimum: 0
                    type: integer
                phone:
                    description: 手机号
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态（0=禁用, 1=启用）
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
                user_type:
                    description: 用户类型（3=代理账号, 4=企业账号）
                    type: integer
                user_type_name:
                    description: 用户类型名称
                    type: string
                username:
                    description: 用户名
                    type: string
            type: object
        DtoCustomerAccountPageResult:
            properties:
                items:
                    description: 账号列表
                    items:
                        $ref: '#/components/schemas/DtoCustomerAccountItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoDailyCommissionStatsResponse:
            properties:
                date:
                    description: 日期（YYYY-MM-DD）
                    type: string
                total_amount:
                    description: 当日总收入（分）
                    type: integer
                total_count:
                    description: 当日总笔数
                    type: integer
            type: object
        DtoDeviceCardBindingResponse:
            properties:
                bind_time:
                    description: 绑定时间
                    format: date-time
                    nullable: true
                    type: string
                carrier_name:
                    description: 运营商名称
                    type: string
                iccid:
                    description: ICCID
                    type: string
                id:
                    description: 绑定记录ID
                    minimum: 0
                    type: integer
                iot_card_id:
                    description: IoT卡ID
                    minimum: 0
                    type: integer
                msisdn:
                    description: 接入号
                    type: string
                slot_position:
                    description: 插槽位置 (1-4)
                    type: integer
                status:
                    description: 卡状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                    type: integer
            type: object
        DtoDeviceCardInfo:
            properties:
                card_id:
                    description: 卡ID
                    minimum: 0
                    type: integer
                carrier_name:
                    description: 运营商名称
                    type: string
                iccid:
                    description: ICCID
                    type: string
                msisdn:
                    description: 手机号
                    type: string
                network_status:
                    description: 网络状态：0=停机 1=开机
                    type: integer
                network_status_name:
                    description: 网络状态名称
                    type: string
            type: object
        DtoDeviceCardOperationReq:
            properties:
                reason:
                    description: 操作原因
                    type: string
            type: object
        DtoDeviceCardOperationResp:
            properties:
                message:
                    description: 操作结果消息
                    type: string
                success:
                    description: 操作是否成功
                    type: boolean
            type: object
        DtoDeviceImportResultItemDTO:
            properties:
                device_no:
                    description: 设备号
                    type: string
                line:
                    description: 行号
                    type: integer
                reason:
                    description: 原因
                    type: string
            type: object
        DtoDeviceImportTaskDetailResponse:
            properties:
                batch_no:
                    description: 批次号
                    type: string
                completed_at:
                    description: 完成时间
                    format: date-time
                    nullable: true
                    type: string
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                error_message:
                    description: 错误信息
                    type: string
                fail_count:
                    description: 失败数
                    type: integer
                failed_items:
                    description: 失败记录详情
                    items:
                        $ref: '#/components/schemas/DtoDeviceImportResultItemDTO'
                    nullable: true
                    type: array
                file_name:
                    description: 文件名
                    type: string
                id:
                    description: 任务ID
                    minimum: 0
                    type: integer
                skip_count:
                    description: 跳过数
                    type: integer
                skipped_items:
                    description: 跳过记录详情
                    items:
                        $ref: '#/components/schemas/DtoDeviceImportResultItemDTO'
                    nullable: true
                    type: array
                started_at:
                    description: 开始处理时间
                    format: date-time
                    nullable: true
                    type: string
                status:
                    description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                    type: integer
                status_text:
                    description: 任务状态文本
                    type: string
                success_count:
                    description: 成功数
                    type: integer
                task_no:
                    description: 任务编号
                    type: string
                total_count:
                    description: 总数
                    type: integer
                warning_count:
                    description: 警告数(部分成功的设备数量)
                    type: integer
                warning_items:
                    description: 警告记录详情(部分成功的设备及其卡绑定失败原因)
                    items:
                        $ref: '#/components/schemas/DtoDeviceImportResultItemDTO'
                    nullable: true
                    type: array
            type: object
        DtoDeviceImportTaskResponse:
            properties:
                batch_no:
                    description: 批次号
                    type: string
                completed_at:
                    description: 完成时间
                    format: date-time
                    nullable: true
                    type: string
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                error_message:
                    description: 错误信息
                    type: string
                fail_count:
                    description: 失败数
                    type: integer
                file_name:
                    description: 文件名
                    type: string
                id:
                    description: 任务ID
                    minimum: 0
                    type: integer
                skip_count:
                    description: 跳过数
                    type: integer
                started_at:
                    description: 开始处理时间
                    format: date-time
                    nullable: true
                    type: string
                status:
                    description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                    type: integer
                status_text:
                    description: 任务状态文本
                    type: string
                success_count:
                    description: 成功数
                    type: integer
                task_no:
                    description: 任务编号
                    type: string
                total_count:
                    description: 总数
                    type: integer
                warning_count:
                    description: 警告数(部分成功的设备数量)
                    type: integer
            type: object
        DtoDeviceResponse:
            properties:
                accumulated_recharge:
                    description: 累计充值金额(分)
                    type: integer
                activated_at:
                    description: 激活时间
                    format: date-time
                    nullable: true
                    type: string
                batch_no:
                    description: 批次号
                    type: string
                bound_card_count:
                    description: 已绑定卡数量
                    type: integer
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                device_model:
                    description: 设备型号
                    type: string
                device_name:
                    description: 设备名称
                    type: string
                device_no:
                    description: 设备号
                    type: string
                device_type:
                    description: 设备类型
                    type: string
                first_commission_paid:
                    description: 一次性佣金是否已发放
                    type: boolean
                id:
                    description: 设备ID
                    minimum: 0
                    type: integer
                manufacturer:
                    description: 制造商
                    type: string
                max_sim_slots:
                    description: 最大插槽数
                    type: integer
                series_allocation_id:
                    description: 套餐系列分配ID
                    minimum: 0
                    nullable: true
                    type: integer
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
                updated_at:
                    description: 更新时间
                    format: date-time
                    type: string
            type: object
        DtoDeviceSeriesBindngFailedItem:
            properties:
                device_id:
                    description: 设备ID
                    minimum: 0
                    type: integer
                device_no:
                    description: 设备号
                    type: string
                reason:
                    description: 失败原因
                    type: string
            type: object
        DtoEnterpriseCardItem:
            properties:
                carrier_id:
                    description: 运营商ID
                    minimum: 0
                    type: integer
                carrier_name:
                    description: 运营商名称
                    type: string
                device_id:
                    description: 设备ID
                    minimum: 0
                    nullable: true
                    type: integer
                device_no:
                    description: 设备号
                    type: string
                iccid:
                    description: ICCID
                    type: string
                id:
                    description: 卡ID
                    minimum: 0
                    type: integer
                msisdn:
                    description: 手机号
                    type: string
                network_status:
                    description: 网络状态
                    type: integer
                network_status_name:
                    description: 网络状态名称
                    type: string
                package_id:
                    description: 套餐ID
                    minimum: 0
                    nullable: true
                    type: integer
                package_name:
                    description: 套餐名称
                    type: string
                status:
                    description: 状态
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
            type: object
        DtoEnterpriseCardPageResult:
            properties:
                items:
                    description: 卡列表
                    items:
                        $ref: '#/components/schemas/DtoEnterpriseCardItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoEnterpriseDeviceDetailResp:
            properties:
                cards:
                    description: 绑定卡列表
                    items:
                        $ref: '#/components/schemas/DtoDeviceCardInfo'
                    nullable: true
                    type: array
                device:
                    $ref: '#/components/schemas/DtoEnterpriseDeviceInfo'
            type: object
        DtoEnterpriseDeviceInfo:
            properties:
                authorized_at:
                    description: 授权时间
                    format: date-time
                    type: string
                device_id:
                    description: 设备ID
                    minimum: 0
                    type: integer
                device_model:
                    description: 设备型号
                    type: string
                device_name:
                    description: 设备名称
                    type: string
                device_no:
                    description: 设备号
                    type: string
                device_type:
                    description: 设备类型
                    type: string
            type: object
        DtoEnterpriseDeviceItem:
            properties:
                authorized_at:
                    description: 授权时间
                    format: date-time
                    type: string
                card_count:
                    description: 绑定卡数量
                    type: integer
                device_id:
                    description: 设备ID
                    minimum: 0
                    type: integer
                device_model:
                    description: 设备型号
                    type: string
                device_name:
                    description: 设备名称
                    type: string
                device_no:
                    description: 设备号
                    type: string
            type: object
        DtoEnterpriseDeviceListResp:
            properties:
                list:
                    description: 设备列表
                    items:
                        $ref: '#/components/schemas/DtoEnterpriseDeviceItem'
                    nullable: true
                    type: array
                total:
                    description: 总数
                    type: integer
            type: object
        DtoEnterpriseItem:
            properties:
                address:
                    description: 详细地址
                    type: string
                business_license:
                    description: 营业执照号
                    type: string
                city:
                    description: 城市
                    type: string
                contact_name:
                    description: 联系人姓名
                    type: string
                contact_phone:
                    description: 联系人电话
                    type: string
                created_at:
                    description: 创建时间
                    type: string
                district:
                    description: 区县
                    type: string
                enterprise_code:
                    description: 企业编号
                    type: string
                enterprise_name:
                    description: 企业名称
                    type: string
                id:
                    description: 企业ID
                    minimum: 0
                    type: integer
                legal_person:
                    description: 法人代表
                    type: string
                login_phone:
                    description: 登录手机号
                    type: string
                owner_shop_id:
                    description: 归属店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                owner_shop_name:
                    description: 归属店铺名称
                    type: string
                province:
                    description: 省份
                    type: string
                status:
                    description: 状态（0=禁用, 1=启用）
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
            type: object
        DtoEnterprisePageResult:
            properties:
                items:
                    description: 企业列表
                    items:
                        $ref: '#/components/schemas/DtoEnterpriseItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoFailedDeviceItem:
            properties:
                device_no:
                    description: 设备号
                    type: string
                reason:
                    description: 失败原因
                    type: string
            type: object
        DtoFailedItem:
            properties:
                iccid:
                    description: ICCID
                    type: string
                reason:
                    description: 失败原因
                    type: string
            type: object
        DtoGetUploadURLRequest:
            properties:
                content_type:
                    description: 文件 MIME 类型（如：text/csv），留空则自动推断
                    maxLength: 100
                    type: string
                file_name:
                    description: 文件名（如：cards.csv）
                    maxLength: 255
                    minLength: 1
                    type: string
                purpose:
                    description: 文件用途 (iot_import:ICCID导入, export:数据导出, attachment:附件)
                    type: string
            required:
                - file_name
                - purpose
            type: object
        DtoGetUploadURLResponse:
            properties:
                expires_in:
                    description: URL 有效期（秒）
                    type: integer
                file_key:
                    description: 文件路径标识，上传成功后用于调用业务接口
                    type: string
                upload_url:
                    description: 预签名上传 URL，使用 PUT 方法上传文件
                    type: string
            type: object
        DtoImportDeviceRequest:
            properties:
                batch_no:
                    description: 批次号
                    maxLength: 100
                    type: string
                file_key:
                    description: 对象存储文件路径(通过 /storage/upload-url 获取)
                    maxLength: 500
                    minLength: 1
                    type: string
            required:
                - file_key
            type: object
        DtoImportDeviceResponse:
            properties:
                message:
                    description: 提示信息
                    type: string
                task_id:
                    description: 导入任务ID
                    minimum: 0
                    type: integer
                task_no:
                    description: 任务编号
                    type: string
            type: object
        DtoImportIotCardRequest:
            properties:
                batch_no:
                    description: 批次号
                    maxLength: 100
                    type: string
                carrier_id:
                    description: 运营商ID
                    minimum: 1
                    type: integer
                file_key:
                    description: 对象存储文件路径（通过 /storage/upload-url 获取）
                    maxLength: 500
                    minLength: 1
                    type: string
            required:
                - carrier_id
                - file_key
            type: object
        DtoImportIotCardResponse:
            properties:
                message:
                    description: 提示信息
                    type: string
                task_id:
                    description: 导入任务ID
                    minimum: 0
                    type: integer
                task_no:
                    description: 任务编号
                    type: string
            type: object
        DtoImportResultItemDTO:
            properties:
                iccid:
                    description: ICCID
                    type: string
                line:
                    description: 行号
                    type: integer
                msisdn:
                    description: 接入号
                    type: string
                reason:
                    description: 原因
                    type: string
            type: object
        DtoImportTaskDetailResponse:
            properties:
                batch_no:
                    description: 批次号
                    type: string
                carrier_id:
                    description: 运营商ID
                    minimum: 0
                    type: integer
                carrier_name:
                    description: 运营商名称
                    type: string
                carrier_type:
                    description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                    type: string
                completed_at:
                    description: 完成时间
                    format: date-time
                    nullable: true
                    type: string
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                error_message:
                    description: 错误信息
                    type: string
                fail_count:
                    description: 失败数
                    type: integer
                failed_items:
                    description: 失败记录详情
                    items:
                        $ref: '#/components/schemas/DtoImportResultItemDTO'
                    nullable: true
                    type: array
                file_name:
                    description: 文件名
                    type: string
                id:
                    description: 任务ID
                    minimum: 0
                    type: integer
                skip_count:
                    description: 跳过数
                    type: integer
                skipped_items:
                    description: 跳过记录详情
                    items:
                        $ref: '#/components/schemas/DtoImportResultItemDTO'
                    nullable: true
                    type: array
                started_at:
                    description: 开始处理时间
                    format: date-time
                    nullable: true
                    type: string
                status:
                    description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                    type: integer
                status_text:
                    description: 任务状态文本
                    type: string
                success_count:
                    description: 成功数
                    type: integer
                task_no:
                    description: 任务编号
                    type: string
                total_count:
                    description: 总数
                    type: integer
            type: object
        DtoImportTaskResponse:
            properties:
                batch_no:
                    description: 批次号
                    type: string
                carrier_id:
                    description: 运营商ID
                    minimum: 0
                    type: integer
                carrier_name:
                    description: 运营商名称
                    type: string
                carrier_type:
                    description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                    type: string
                completed_at:
                    description: 完成时间
                    format: date-time
                    nullable: true
                    type: string
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                error_message:
                    description: 错误信息
                    type: string
                fail_count:
                    description: 失败数
                    type: integer
                file_name:
                    description: 文件名
                    type: string
                id:
                    description: 任务ID
                    minimum: 0
                    type: integer
                skip_count:
                    description: 跳过数
                    type: integer
                started_at:
                    description: 开始处理时间
                    format: date-time
                    nullable: true
                    type: string
                status:
                    description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                    type: integer
                status_text:
                    description: 任务状态文本
                    type: string
                success_count:
                    description: 成功数
                    type: integer
                task_no:
                    description: 任务编号
                    type: string
                total_count:
                    description: 总数
                    type: integer
            type: object
        DtoIotCardDetailResponse:
            properties:
                accumulated_recharge:
                    description: 累计充值金额(分)
                    type: integer
                activated_at:
                    description: 激活时间
                    format: date-time
                    nullable: true
                    type: string
                activation_status:
                    description: 激活状态 (0:未激活, 1:已激活)
                    type: integer
                batch_no:
                    description: 批次号
                    type: string
                card_category:
                    description: 卡业务类型 (normal:普通卡, industry:行业卡)
                    type: string
                card_type:
                    description: 卡类型
                    type: string
                carrier_id:
                    description: 运营商ID
                    minimum: 0
                    type: integer
                carrier_name:
                    description: 运营商名称
                    type: string
                carrier_type:
                    description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                    type: string
                cost_price:
                    description: 成本价(分)
                    type: integer
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                data_usage_mb:
                    description: 累计流量使用(MB)
                    type: integer
                distribute_price:
                    description: 分销价(分)
                    type: integer
                first_commission_paid:
                    description: 一次性佣金是否已发放
                    type: boolean
                iccid:
                    description: ICCID
                    type: string
                id:
                    description: 卡ID
                    minimum: 0
                    type: integer
                imsi:
                    description: IMSI
                    type: string
                msisdn:
                    description: 卡接入号
                    type: string
                network_status:
                    description: 网络状态 (0:停机, 1:开机)
                    type: integer
                real_name_status:
                    description: 实名状态 (0:未实名, 1:已实名)
                    type: integer
                series_allocation_id:
                    description: 套餐系列分配ID
                    minimum: 0
                    nullable: true
                    type: integer
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                    type: integer
                supplier:
                    description: 供应商
                    type: string
                updated_at:
                    description: 更新时间
                    format: date-time
                    type: string
            type: object
        DtoListAssetAllocationRecordResponse:
            properties:
                list:
                    description: 分配记录列表
                    items:
                        $ref: '#/components/schemas/DtoAssetAllocationRecordResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoListDeviceCardsResponse:
            properties:
                bindings:
                    description: 绑定列表
                    items:
                        $ref: '#/components/schemas/DtoDeviceCardBindingResponse'
                    nullable: true
                    type: array
            type: object
        DtoListDeviceImportTaskResponse:
            properties:
                list:
                    description: 任务列表
                    items:
                        $ref: '#/components/schemas/DtoDeviceImportTaskResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoListDeviceResponse:
            properties:
                list:
                    description: 设备列表
                    items:
                        $ref: '#/components/schemas/DtoDeviceResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoListImportTaskResponse:
            properties:
                list:
                    description: 任务列表
                    items:
                        $ref: '#/components/schemas/DtoImportTaskResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoListStandaloneIotCardResponse:
            properties:
                list:
                    description: 单卡列表
                    items:
                        $ref: '#/components/schemas/DtoStandaloneIotCardResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoLoginRequest:
            properties:
                device:
                    type: string
                password:
                    type: string
                username:
                    type: string
            type: object
        DtoLoginResponse:
            properties:
                access_token:
                    type: string
                expires_in:
                    type: integer
                permissions:
                    items:
                        type: string
                    nullable: true
                    type: array
                refresh_token:
                    type: string
                user:
                    $ref: '#/components/schemas/DtoUserInfo'
            type: object
        DtoMyCommissionRecordItem:
            properties:
                amount:
                    description: 佣金金额（分）
                    type: integer
                commission_source:
                    description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)
                    type: string
                created_at:
                    description: 创建时间
                    type: string
                id:
                    description: 佣金记录ID
                    minimum: 0
                    type: integer
                order_id:
                    description: 订单ID
                    minimum: 0
                    type: integer
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                status:
                    description: 状态 (1:已入账, 2:已失效)
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
            type: object
        DtoMyCommissionRecordPageResult:
            properties:
                items:
                    description: 佣金记录列表
                    items:
                        $ref: '#/components/schemas/DtoMyCommissionRecordItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoMyCommissionSummaryResp:
            properties:
                available_commission:
                    description: 可提现佣金（分）
                    type: integer
                frozen_commission:
                    description: 冻结佣金（分）
                    type: integer
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                total_commission:
                    description: 累计佣金（分）
                    type: integer
                unwithdraw_commission:
                    description: 未提现佣金（分）
                    type: integer
                withdrawing_commission:
                    description: 提现中佣金（分）
                    type: integer
                withdrawn_commission:
                    description: 已提现佣金（分）
                    type: integer
            type: object
        DtoOneTimeCommissionConfig:
            properties:
                mode:
                    description: 返佣模式 (fixed:固定金额, percent:百分比) - 固定类型时必填
                    type: string
                threshold:
                    description: 最低阈值（分）
                    minimum: 1
                    type: integer
                tiers:
                    description: 梯度档位列表 - 梯度类型时必填
                    items:
                        $ref: '#/components/schemas/DtoOneTimeCommissionTierEntry'
                    nullable: true
                    type: array
                trigger:
                    description: 触发条件 (single_recharge:单次充值, accumulated_recharge:累计充值)
                    type: string
                type:
                    description: 一次性佣金类型 (fixed:固定, tiered:梯度)
                    type: string
                value:
                    description: 佣金金额（分）或比例（千分比）- 固定类型时必填
                    minimum: 1
                    type: integer
            required:
                - type
                - trigger
                - threshold
            type: object
        DtoOneTimeCommissionTierEntry:
            properties:
                mode:
                    description: 返佣模式 (fixed:固定金额, percent:百分比)
                    type: string
                threshold:
                    description: 梯度阈值（销量或销售额分）
                    minimum: 1
                    type: integer
                tier_type:
                    description: 梯度类型 (sales_count:销量, sales_amount:销售额)
                    type: string
                value:
                    description: 返佣值（分或千分比）
                    minimum: 1
                    type: integer
            required:
                - tier_type
                - threshold
                - mode
                - value
            type: object
        DtoOrderItemResponse:
            properties:
                amount:
                    description: 小计金额(分)
                    type: integer
                id:
                    description: 明细ID
                    minimum: 0
                    type: integer
                package_id:
                    description: 套餐ID
                    minimum: 0
                    type: integer
                package_name:
                    description: 套餐名称
                    type: string
                quantity:
                    description: 数量
                    type: integer
                unit_price:
                    description: 单价(分)
                    type: integer
            type: object
        DtoOrderListResponse:
            properties:
                list:
                    description: 订单列表
                    items:
                        $ref: '#/components/schemas/DtoOrderResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoOrderResponse:
            properties:
                buyer_id:
                    description: 买家ID
                    minimum: 0
                    type: integer
                buyer_type:
                    description: 买家类型 (personal:个人客户, agent:代理商)
                    type: string
                commission_config_version:
                    description: 佣金配置版本
                    type: integer
                commission_status:
                    description: 佣金状态 (1:待计算, 2:已计算)
                    type: integer
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                device_id:
                    description: 设备ID
                    minimum: 0
                    nullable: true
                    type: integer
                id:
                    description: 订单ID
                    minimum: 0
                    type: integer
                iot_card_id:
                    description: IoT卡ID
                    minimum: 0
                    nullable: true
                    type: integer
                items:
                    description: 订单明细列表
                    items:
                        $ref: '#/components/schemas/DtoOrderItemResponse'
                    nullable: true
                    type: array
                order_no:
                    description: 订单号
                    type: string
                order_type:
                    description: 订单类型 (single_card:单卡购买, device:设备购买)
                    type: string
                paid_at:
                    description: 支付时间
                    format: date-time
                    nullable: true
                    type: string
                payment_method:
                    description: 支付方式 (wallet:钱包支付, wechat:微信支付, alipay:支付宝支付)
                    type: string
                payment_status:
                    description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)
                    type: integer
                payment_status_text:
                    description: 支付状态文本
                    type: string
                total_amount:
                    description: 订单总金额(分)
                    type: integer
                updated_at:
                    description: 更新时间
                    format: date-time
                    type: string
            type: object
        DtoPackagePageResult:
            properties:
                list:
                    description: 套餐列表
                    items:
                        $ref: '#/components/schemas/DtoPackageResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoPackageResponse:
            properties:
                cost_price:
                    description: 成本价（分，仅代理用户可见）
                    nullable: true
                    type: integer
                created_at:
                    description: 创建时间
                    type: string
                current_commission_rate:
                    description: 当前返佣比例（仅代理用户可见）
                    type: string
                data_amount_mb:
                    description: 总流量额度(MB)
                    type: integer
                data_type:
                    description: 流量类型 (real:真流量, virtual:虚流量)
                    type: string
                duration_months:
                    description: 套餐时长(月数)
                    type: integer
                id:
                    description: 套餐ID
                    minimum: 0
                    type: integer
                package_code:
                    description: 套餐编码
                    type: string
                package_name:
                    description: 套餐名称
                    type: string
                package_type:
                    description: 套餐类型 (formal:正式套餐, addon:附加套餐)
                    type: string
                price:
                    description: 套餐价格(分)
                    type: integer
                profit_margin:
                    description: 利润空间（分，仅代理用户可见）
                    nullable: true
                    type: integer
                real_data_mb:
                    description: 真流量额度(MB)
                    type: integer
                series_id:
                    description: 套餐系列ID
                    minimum: 0
                    nullable: true
                    type: integer
                series_name:
                    description: 套餐系列名称
                    nullable: true
                    type: string
                shelf_status:
                    description: 上架状态 (1:上架, 2:下架)
                    type: integer
                status:
                    description: 状态 (1:启用, 2:禁用)
                    type: integer
                suggested_cost_price:
                    description: 建议成本价(分)
                    type: integer
                suggested_retail_price:
                    description: 建议售价(分)
                    type: integer
                tier_info:
                    $ref: '#/components/schemas/DtoCommissionTierInfo'
                updated_at:
                    description: 更新时间
                    type: string
                virtual_data_mb:
                    description: 虚流量额度(MB)
                    type: integer
            type: object
        DtoPackageSeriesPageResult:
            properties:
                list:
                    description: 套餐系列列表
                    items:
                        $ref: '#/components/schemas/DtoPackageSeriesResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoPackageSeriesResponse:
            properties:
                created_at:
                    description: 创建时间
                    type: string
                description:
                    description: 描述
                    type: string
                id:
                    description: 系列ID
                    minimum: 0
                    type: integer
                series_code:
                    description: 系列编码
                    type: string
                series_name:
                    description: 系列名称
                    type: string
                status:
                    description: 状态 (1:启用, 2:禁用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
            type: object
        DtoPermissionPageResult:
            properties:
                items:
                    description: 权限列表
                    items:
                        $ref: '#/components/schemas/DtoPermissionResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoPermissionResponse:
            properties:
                available_for_role_types:
                    description: 可用角色类型 (1:平台角色, 2:客户角色)
                    type: string
                created_at:
                    description: 创建时间
                    type: string
                creator:
                    description: 创建人ID
                    minimum: 0
                    type: integer
                id:
                    description: 权限ID
                    minimum: 0
                    type: integer
                parent_id:
                    description: 父权限ID
                    minimum: 0
                    nullable: true
                    type: integer
                perm_code:
                    description: 权限编码
                    type: string
                perm_name:
                    description: 权限名称
                    type: string
                perm_type:
                    description: 权限类型 (1:菜单, 2:按钮)
                    type: integer
                platform:
                    description: 适用端口 (all:全部, web:Web后台, h5:H5端)
                    type: string
                sort:
                    description: 排序值
                    type: integer
                status:
                    description: 状态 (0:禁用, 1:启用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
                updater:
                    description: 更新人ID
                    minimum: 0
                    type: integer
                url:
                    description: 请求路径
                    type: string
            type: object
        DtoPermissionTreeNode:
            properties:
                available_for_role_types:
                    description: 可用角色类型 (1:平台角色, 2:客户角色)
                    type: string
                children:
                    description: 子权限列表
                    items:
                        $ref: '#/components/schemas/DtoPermissionTreeNode'
                    type: array
                id:
                    description: 权限ID
                    minimum: 0
                    type: integer
                perm_code:
                    description: 权限编码
                    type: string
                perm_name:
                    description: 权限名称
                    type: string
                perm_type:
                    description: 权限类型 (1:菜单, 2:按钮)
                    type: integer
                platform:
                    description: 适用端口 (all:全部, web:Web后台, h5:H5端)
                    type: string
                sort:
                    description: 排序值
                    type: integer
                url:
                    description: 请求路径
                    type: string
            type: object
        DtoPriceAdjustment:
            properties:
                type:
                    description: 调整类型 (fixed:固定金额, percent:百分比)
                    type: string
                value:
                    description: 调整值（分或千分比）
                    type: integer
            required:
                - type
                - value
            type: object
        DtoRecallCardsReq:
            properties:
                iccids:
                    description: 需要回收授权的 ICCID 列表
                    items:
                        type: string
                    nullable: true
                    type: array
            required:
                - iccids
            type: object
        DtoRecallCardsResp:
            properties:
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败详情
                    items:
                        $ref: '#/components/schemas/DtoFailedItem'
                    nullable: true
                    type: array
                recalled_devices:
                    description: 连带回收的设备列表
                    items:
                        $ref: '#/components/schemas/DtoRecalledDevice'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoRecallDevicesReq:
            properties:
                device_nos:
                    description: 设备号列表（最多100个）
                    items:
                        type: string
                    nullable: true
                    type: array
            type: object
        DtoRecallDevicesRequest:
            properties:
                device_ids:
                    description: 设备ID列表
                    items:
                        minimum: 0
                        type: integer
                    maxItems: 100
                    minItems: 1
                    nullable: true
                    type: array
                remark:
                    description: 备注
                    maxLength: 500
                    type: string
            required:
                - device_ids
            type: object
        DtoRecallDevicesResp:
            properties:
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败项列表
                    items:
                        $ref: '#/components/schemas/DtoFailedDeviceItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoRecallDevicesResponse:
            properties:
                fail_count:
                    description: 失败数量
                    type: integer
                failed_items:
                    description: 失败详情列表
                    items:
                        $ref: '#/components/schemas/DtoAllocationDeviceFailedItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数量
                    type: integer
            type: object
        DtoRecallStandaloneCardsRequest:
            properties:
                batch_no:
                    description: 批次号（selection_type=filter时可选）
                    maxLength: 100
                    type: string
                carrier_id:
                    description: 运营商ID（selection_type=filter时可选）
                    minimum: 0
                    nullable: true
                    type: integer
                from_shop_id:
                    description: 来源店铺ID（被回收方）
                    minimum: 1
                    type: integer
                iccid_end:
                    description: 结束ICCID（selection_type=range时必填）
                    maxLength: 20
                    type: string
                iccid_start:
                    description: 起始ICCID（selection_type=range时必填）
                    maxLength: 20
                    type: string
                iccids:
                    description: ICCID列表（selection_type=list时必填，最多1000个）
                    items:
                        type: string
                    nullable: true
                    type: array
                remark:
                    description: 备注
                    maxLength: 500
                    type: string
                selection_type:
                    description: 选卡方式 (list:ICCID列表, range:号段范围, filter:筛选条件)
                    enum:
                        - list
                        - range
                        - filter
                    type: string
            required:
                - from_shop_id
                - selection_type
            type: object
        DtoRecallStandaloneCardsResponse:
            properties:
                allocation_no:
                    description: 回收单号
                    type: string
                fail_count:
                    description: 失败数
                    type: integer
                failed_items:
                    description: 失败项列表
                    items:
                        $ref: '#/components/schemas/DtoAllocationFailedItem'
                    nullable: true
                    type: array
                success_count:
                    description: 成功数
                    type: integer
                total_count:
                    description: 待回收总数
                    type: integer
            type: object
        DtoRecalledDevice:
            properties:
                card_count:
                    description: 卡数量
                    type: integer
                device_id:
                    description: 设备ID
                    minimum: 0
                    type: integer
                device_no:
                    description: 设备号
                    type: string
                iccids:
                    description: 卡ICCID列表
                    items:
                        type: string
                    nullable: true
                    type: array
            type: object
        DtoRefreshTokenRequest:
            properties:
                refresh_token:
                    type: string
            type: object
        DtoRefreshTokenResponse:
            properties:
                access_token:
                    type: string
                expires_in:
                    type: integer
            type: object
        DtoRejectWithdrawalReq:
            properties:
                remark:
                    description: 拒绝原因（必填）
                    maxLength: 500
                    type: string
            required:
                - remark
            type: object
        DtoRolePageResult:
            properties:
                items:
                    description: 角色列表
                    items:
                        $ref: '#/components/schemas/DtoRoleResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoRoleResponse:
            properties:
                created_at:
                    description: 创建时间
                    type: string
                creator:
                    description: 创建人ID
                    minimum: 0
                    type: integer
                id:
                    description: 角色ID
                    minimum: 0
                    type: integer
                role_desc:
                    description: 角色描述
                    type: string
                role_name:
                    description: 角色名称
                    type: string
                role_type:
                    description: 角色类型 (1:平台角色, 2:客户角色)
                    type: integer
                status:
                    description: 状态 (0:禁用, 1:启用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
                updater:
                    description: 更新人ID
                    minimum: 0
                    type: integer
            type: object
        DtoShopAccountPageResult:
            properties:
                items:
                    description: 代理账号列表
                    items:
                        $ref: '#/components/schemas/DtoShopAccountResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoShopAccountResponse:
            properties:
                created_at:
                    description: 创建时间
                    type: string
                id:
                    description: 账号ID
                    minimum: 0
                    type: integer
                phone:
                    description: 手机号
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态 (0:禁用, 1:启用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
                user_type:
                    description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
                    type: integer
                username:
                    description: 用户名
                    type: string
            type: object
        DtoShopCommissionRecordItem:
            properties:
                amount:
                    description: 佣金金额（分）
                    type: integer
                balance_after:
                    description: 入账后佣金余额（分）
                    type: integer
                commission_source:
                    description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)
                    type: string
                created_at:
                    description: 佣金入账时间
                    type: string
                device_no:
                    description: 设备号
                    type: string
                iccid:
                    description: ICCID
                    type: string
                id:
                    description: 佣金记录ID
                    minimum: 0
                    type: integer
                order_created_at:
                    description: 订单创建时间
                    type: string
                order_id:
                    description: 订单ID
                    minimum: 0
                    type: integer
                order_no:
                    description: 订单号
                    type: string
                status:
                    description: 状态 (1:已入账, 2:已失效)
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
            type: object
        DtoShopCommissionRecordPageResult:
            properties:
                items:
                    description: 佣金明细列表
                    items:
                        $ref: '#/components/schemas/DtoShopCommissionRecordItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoShopCommissionSummaryItem:
            properties:
                available_commission:
                    description: 可提现佣金（分）
                    type: integer
                created_at:
                    description: 店铺创建时间
                    type: string
                frozen_commission:
                    description: 冻结中佣金（分）
                    type: integer
                phone:
                    description: 主账号手机号
                    type: string
                shop_code:
                    description: 店铺编码
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                total_commission:
                    description: 总佣金（分）
                    type: integer
                unwithdraw_commission:
                    description: 未提现佣金（分）
                    type: integer
                username:
                    description: 主账号用户名
                    type: string
                withdrawing_commission:
                    description: 提现中佣金（分）
                    type: integer
                withdrawn_commission:
                    description: 已提现佣金（分）
                    type: integer
            type: object
        DtoShopCommissionSummaryPageResult:
            properties:
                items:
                    description: 代理商佣金列表
                    items:
                        $ref: '#/components/schemas/DtoShopCommissionSummaryItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoShopPackageAllocationPageResult:
            properties:
                list:
                    description: 分配列表
                    items:
                        $ref: '#/components/schemas/DtoShopPackageAllocationResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoShopPackageAllocationResponse:
            properties:
                allocation_id:
                    description: 关联的系列分配ID
                    minimum: 0
                    type: integer
                calculated_cost_price:
                    description: 原计算成本价（分），供参考
                    type: integer
                cost_price:
                    description: 覆盖的成本价（分）
                    type: integer
                created_at:
                    description: 创建时间
                    type: string
                id:
                    description: 分配ID
                    minimum: 0
                    type: integer
                package_code:
                    description: 套餐编码
                    type: string
                package_id:
                    description: 套餐ID
                    minimum: 0
                    type: integer
                package_name:
                    description: 套餐名称
                    type: string
                shop_id:
                    description: 被分配的店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 被分配的店铺名称
                    type: string
                status:
                    description: 状态 (1:启用, 2:禁用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
            type: object
        DtoShopPageResult:
            properties:
                items:
                    description: 店铺列表
                    items:
                        $ref: '#/components/schemas/DtoShopResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoShopResponse:
            properties:
                address:
                    description: 详细地址
                    type: string
                city:
                    description: 城市
                    type: string
                contact_name:
                    description: 联系人姓名
                    type: string
                contact_phone:
                    description: 联系人电话
                    type: string
                created_at:
                    description: 创建时间
                    type: string
                district:
                    description: 区县
                    type: string
                id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                level:
                    description: 店铺层级 (1-7级)
                    type: integer
                parent_id:
                    description: 上级店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                province:
                    description: 省份
                    type: string
                shop_code:
                    description: 店铺编号
                    type: string
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态 (0:禁用, 1:启用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
            type: object
        DtoShopSeriesAllocationPageResult:
            properties:
                list:
                    description: 分配列表
                    items:
                        $ref: '#/components/schemas/DtoShopSeriesAllocationResponse'
                    nullable: true
                    type: array
                page:
                    description: 当前页
                    type: integer
                page_size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总数
                    type: integer
                total_pages:
                    description: 总页数
                    type: integer
            type: object
        DtoShopSeriesAllocationResponse:
            properties:
                allocator_shop_id:
                    description: 分配者店铺ID
                    minimum: 0
                    type: integer
                allocator_shop_name:
                    description: 分配者店铺名称
                    type: string
                base_commission:
                    $ref: '#/components/schemas/DtoBaseCommissionConfig'
                created_at:
                    description: 创建时间
                    type: string
                enable_one_time_commission:
                    description: 是否启用一次性佣金
                    type: boolean
                enable_tier_commission:
                    description: 是否启用梯度返佣
                    type: boolean
                id:
                    description: 分配ID
                    minimum: 0
                    type: integer
                one_time_commission_config:
                    $ref: '#/components/schemas/DtoOneTimeCommissionConfig'
                series_id:
                    description: 套餐系列ID
                    minimum: 0
                    type: integer
                series_name:
                    description: 套餐系列名称
                    type: string
                shop_id:
                    description: 被分配的店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 被分配的店铺名称
                    type: string
                status:
                    description: 状态 (1:启用, 2:禁用)
                    type: integer
                updated_at:
                    description: 更新时间
                    type: string
            type: object
        DtoShopWithdrawalRequestItem:
            properties:
                account_name:
                    description: 收款账户名称
                    type: string
                account_number:
                    description: 收款账号
                    type: string
                actual_amount:
                    description: 实际到账金额（分）
                    type: integer
                amount:
                    description: 提现金额（分）
                    type: integer
                applicant_id:
                    description: 申请人账号ID
                    minimum: 0
                    type: integer
                applicant_name:
                    description: 申请人用户名
                    type: string
                bank_name:
                    description: 银行名称（银行卡提现时）
                    type: string
                created_at:
                    description: 申请时间
                    type: string
                fee:
                    description: 手续费（分）
                    type: integer
                fee_rate:
                    description: 手续费比率（基点，100=1%）
                    type: integer
                id:
                    description: 提现申请ID
                    minimum: 0
                    type: integer
                paid_at:
                    description: 到账时间
                    type: string
                payment_type:
                    description: 放款类型 (manual:人工打款)
                    type: string
                processed_at:
                    description: 处理时间
                    type: string
                processor_id:
                    description: 处理人账号ID
                    minimum: 0
                    nullable: true
                    type: integer
                processor_name:
                    description: 处理人用户名
                    type: string
                reject_reason:
                    description: 拒绝原因
                    type: string
                remark:
                    description: 备注
                    type: string
                shop_hierarchy:
                    description: 店铺层级路径（格式：上上级_上级_本身，最多两层上级）
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账)
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
                withdrawal_method:
                    description: 提现方式 (alipay:支付宝, wechat:微信, bank:银行卡)
                    type: string
                withdrawal_no:
                    description: 提现单号
                    type: string
            type: object
        DtoShopWithdrawalRequestPageResult:
            properties:
                items:
                    description: 提现记录列表
                    items:
                        $ref: '#/components/schemas/DtoShopWithdrawalRequestItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoStandaloneIotCardResponse:
            properties:
                accumulated_recharge:
                    description: 累计充值金额(分)
                    type: integer
                activated_at:
                    description: 激活时间
                    format: date-time
                    nullable: true
                    type: string
                activation_status:
                    description: 激活状态 (0:未激活, 1:已激活)
                    type: integer
                batch_no:
                    description: 批次号
                    type: string
                card_category:
                    description: 卡业务类型 (normal:普通卡, industry:行业卡)
                    type: string
                card_type:
                    description: 卡类型
                    type: string
                carrier_id:
                    description: 运营商ID
                    minimum: 0
                    type: integer
                carrier_name:
                    description: 运营商名称
                    type: string
                carrier_type:
                    description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                    type: string
                cost_price:
                    description: 成本价(分)
                    type: integer
                created_at:
                    description: 创建时间
                    format: date-time
                    type: string
                data_usage_mb:
                    description: 累计流量使用(MB)
                    type: integer
                distribute_price:
                    description: 分销价(分)
                    type: integer
                first_commission_paid:
                    description: 一次性佣金是否已发放
                    type: boolean
                iccid:
                    description: ICCID
                    type: string
                id:
                    description: 卡ID
                    minimum: 0
                    type: integer
                imsi:
                    description: IMSI
                    type: string
                msisdn:
                    description: 卡接入号
                    type: string
                network_status:
                    description: 网络状态 (0:停机, 1:开机)
                    type: integer
                real_name_status:
                    description: 实名状态 (0:未实名, 1:已实名)
                    type: integer
                series_allocation_id:
                    description: 套餐系列分配ID
                    minimum: 0
                    nullable: true
                    type: integer
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                    type: integer
                supplier:
                    description: 供应商
                    type: string
                updated_at:
                    description: 更新时间
                    format: date-time
                    type: string
            type: object
        DtoTierCommissionConfig:
            properties:
                period_type:
                    description: 周期类型 (monthly:月度, quarterly:季度, yearly:年度)
                    type: string
                tier_type:
                    description: 梯度类型 (sales_count:销量, sales_amount:销售额)
                    type: string
                tiers:
                    description: 梯度档位列表
                    items:
                        $ref: '#/components/schemas/DtoTierEntry'
                    nullable: true
                    type: array
            required:
                - period_type
                - tier_type
                - tiers
            type: object
        DtoTierEntry:
            properties:
                mode:
                    description: 达标后返佣模式 (fixed:固定金额, percent:百分比)
                    type: string
                threshold:
                    description: 阈值（销量或金额分）
                    minimum: 1
                    type: integer
                value:
                    description: 达标后返佣值（分或千分比）
                    minimum: 1
                    type: integer
            required:
                - threshold
                - mode
                - value
            type: object
        DtoUnbindCardFromDeviceResponse:
            properties:
                message:
                    description: 提示信息
                    type: string
            type: object
        DtoUpdateAccountParams:
            properties:
                password:
                    description: 密码
                    maxLength: 32
                    minLength: 8
                    nullable: true
                    type: string
                phone:
                    description: 手机号
                    maxLength: 11
                    minLength: 11
                    nullable: true
                    type: string
                status:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    nullable: true
                    type: integer
                username:
                    description: 用户名
                    maxLength: 50
                    minLength: 3
                    nullable: true
                    type: string
            type: object
        DtoUpdateAuthorizationRemarkReq:
            properties:
                remark:
                    description: 备注（最多500字）
                    type: string
            type: object
        DtoUpdateCarrierParams:
            properties:
                carrier_name:
                    description: 运营商名称
                    maxLength: 100
                    minLength: 1
                    nullable: true
                    type: string
                description:
                    description: 运营商描述
                    maxLength: 500
                    nullable: true
                    type: string
            type: object
        DtoUpdateCarrierStatusParams:
            properties:
                status:
                    description: 状态 (1:启用, 0:禁用)
                    type: integer
            required:
                - status
            type: object
        DtoUpdateCustomerAccountPasswordReq:
            properties:
                password:
                    description: 新密码
                    maximum: 20
                    minimum: 6
                    type: string
            required:
                - password
            type: object
        DtoUpdateCustomerAccountReq:
            properties:
                phone:
                    description: 手机号
                    nullable: true
                    type: string
                username:
                    description: 用户名
                    maximum: 50
                    minimum: 2
                    nullable: true
                    type: string
            type: object
        DtoUpdateCustomerAccountStatusReq:
            properties:
                status:
                    description: 状态（0=禁用, 1=启用）
                    enum:
                        - "0"
                        - "1"
                    type: integer
            required:
                - status
            type: object
        DtoUpdateEnterprisePasswordReq:
            properties:
                password:
                    description: 新密码
                    maximum: 20
                    minimum: 6
                    type: string
            required:
                - password
            type: object
        DtoUpdateEnterpriseReq:
            properties:
                address:
                    description: 详细地址
                    maximum: 255
                    nullable: true
                    type: string
                business_license:
                    description: 营业执照号
                    maximum: 100
                    nullable: true
                    type: string
                city:
                    description: 城市
                    maximum: 50
                    nullable: true
                    type: string
                contact_name:
                    description: 联系人姓名
                    maximum: 50
                    nullable: true
                    type: string
                contact_phone:
                    description: 联系人电话
                    maximum: 20
                    nullable: true
                    type: string
                district:
                    description: 区县
                    maximum: 50
                    nullable: true
                    type: string
                enterprise_code:
                    description: 企业编号
                    maximum: 50
                    nullable: true
                    type: string
                enterprise_name:
                    description: 企业名称
                    maximum: 100
                    nullable: true
                    type: string
                legal_person:
                    description: 法人代表
                    maximum: 50
                    nullable: true
                    type: string
                owner_shop_id:
                    description: 归属店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                province:
                    description: 省份
                    maximum: 50
                    nullable: true
                    type: string
            type: object
        DtoUpdateEnterpriseStatusReq:
            properties:
                status:
                    description: 状态（0=禁用, 1=启用）
                    enum:
                        - "0"
                        - "1"
                    type: integer
            required:
                - status
            type: object
        DtoUpdatePackageParams:
            properties:
                data_amount_mb:
                    description: 总流量额度(MB)
                    minimum: 0
                    nullable: true
                    type: integer
                data_type:
                    description: 流量类型 (real:真流量, virtual:虚流量)
                    nullable: true
                    type: string
                duration_months:
                    description: 套餐时长(月数)
                    maximum: 120
                    minimum: 1
                    nullable: true
                    type: integer
                package_name:
                    description: 套餐名称
                    maxLength: 255
                    minLength: 1
                    nullable: true
                    type: string
                package_type:
                    description: 套餐类型 (formal:正式套餐, addon:附加套餐)
                    nullable: true
                    type: string
                price:
                    description: 套餐价格(分)
                    minimum: 0
                    nullable: true
                    type: integer
                real_data_mb:
                    description: 真流量额度(MB)
                    minimum: 0
                    nullable: true
                    type: integer
                series_id:
                    description: 套餐系列ID
                    minimum: 0
                    nullable: true
                    type: integer
                suggested_cost_price:
                    description: 建议成本价(分)
                    minimum: 0
                    nullable: true
                    type: integer
                suggested_retail_price:
                    description: 建议售价(分)
                    minimum: 0
                    nullable: true
                    type: integer
                virtual_data_mb:
                    description: 虚流量额度(MB)
                    minimum: 0
                    nullable: true
                    type: integer
            type: object
        DtoUpdatePackageSeriesParams:
            properties:
                description:
                    description: 描述
                    maxLength: 500
                    nullable: true
                    type: string
                series_name:
                    description: 系列名称
                    maxLength: 255
                    minLength: 1
                    nullable: true
                    type: string
            type: object
        DtoUpdatePackageSeriesStatusParams:
            properties:
                status:
                    description: 状态 (1:启用, 2:禁用)
                    type: integer
            required:
                - status
            type: object
        DtoUpdatePackageShelfStatusParams:
            properties:
                shelf_status:
                    description: 上架状态 (1:上架, 2:下架)
                    type: integer
            required:
                - shelf_status
            type: object
        DtoUpdatePackageStatusParams:
            properties:
                status:
                    description: 状态 (1:启用, 2:禁用)
                    type: integer
            required:
                - status
            type: object
        DtoUpdatePasswordParams:
            properties:
                new_password:
                    description: 新密码（8-32位）
                    maxLength: 32
                    minLength: 8
                    type: string
            required:
                - new_password
            type: object
        DtoUpdatePermissionParams:
            properties:
                parent_id:
                    description: 父权限ID
                    minimum: 0
                    nullable: true
                    type: integer
                perm_code:
                    description: 权限编码
                    maxLength: 100
                    minLength: 1
                    nullable: true
                    type: string
                perm_name:
                    description: 权限名称
                    maxLength: 50
                    minLength: 1
                    nullable: true
                    type: string
                platform:
                    description: 适用端口 (all:全部, web:Web后台, h5:H5端)
                    nullable: true
                    type: string
                sort:
                    description: 排序值
                    minimum: 0
                    nullable: true
                    type: integer
                status:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    nullable: true
                    type: integer
                url:
                    description: 请求路径
                    maxLength: 255
                    nullable: true
                    type: string
            type: object
        DtoUpdateRoleParams:
            properties:
                role_desc:
                    description: 角色描述
                    maxLength: 255
                    nullable: true
                    type: string
                role_name:
                    description: 角色名称
                    maxLength: 50
                    minLength: 1
                    nullable: true
                    type: string
                status:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    nullable: true
                    type: integer
            type: object
        DtoUpdateRoleStatusParams:
            properties:
                status:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    type: integer
            required:
                - status
            type: object
        DtoUpdateShopAccountParams:
            properties:
                username:
                    description: 用户名
                    maxLength: 50
                    minLength: 3
                    type: string
            required:
                - username
            type: object
        DtoUpdateShopAccountPasswordParams:
            properties:
                new_password:
                    description: 新密码
                    maxLength: 32
                    minLength: 8
                    type: string
            required:
                - new_password
            type: object
        DtoUpdateShopAccountStatusParams:
            properties:
                status:
                    description: 状态 (0:禁用, 1:启用)
                    type: integer
            required:
                - status
            type: object
        DtoUpdateShopPackageAllocationParams:
            properties:
                cost_price:
                    description: 覆盖的成本价（分）
                    minimum: 0
                    nullable: true
                    type: integer
            type: object
        DtoUpdateShopParams:
            properties:
                address:
                    description: 详细地址
                    maxLength: 255
                    type: string
                city:
                    description: 城市
                    maxLength: 50
                    type: string
                contact_name:
                    description: 联系人姓名
                    maxLength: 50
                    type: string
                contact_phone:
                    description: 联系人电话
                    maxLength: 11
                    minLength: 11
                    type: string
                district:
                    description: 区县
                    maxLength: 50
                    type: string
                province:
                    description: 省份
                    maxLength: 50
                    type: string
                shop_name:
                    description: 店铺名称
                    maxLength: 100
                    minLength: 1
                    type: string
                status:
                    description: 状态 (0:禁用, 1:启用)
                    type: integer
            required:
                - shop_name
                - status
            type: object
        DtoUpdateShopSeriesAllocationParams:
            properties:
                base_commission:
                    $ref: '#/components/schemas/DtoBaseCommissionConfig'
                enable_one_time_commission:
                    description: 是否启用一次性佣金
                    nullable: true
                    type: boolean
                enable_tier_commission:
                    description: 是否启用梯度返佣
                    nullable: true
                    type: boolean
                one_time_commission_config:
                    $ref: '#/components/schemas/DtoOneTimeCommissionConfig'
                tier_config:
                    $ref: '#/components/schemas/DtoTierCommissionConfig'
            type: object
        DtoUpdateStatusParams:
            properties:
                status:
                    description: 状态（0:禁用，1:启用）
                    maximum: 1
                    minimum: 0
                    type: integer
            required:
                - status
            type: object
        DtoUserInfo:
            properties:
                enterprise_id:
                    description: 企业ID
                    minimum: 0
                    type: integer
                enterprise_name:
                    description: 企业名称
                    type: string
                id:
                    description: 用户ID
                    minimum: 0
                    type: integer
                phone:
                    description: 手机号
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                user_type:
                    description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
                    type: integer
                user_type_name:
                    description: 用户类型名称
                    type: string
                username:
                    description: 用户名
                    type: string
            type: object
        DtoWithdrawalApprovalResp:
            properties:
                id:
                    description: 提现申请ID
                    minimum: 0
                    type: integer
                processed_at:
                    description: 处理时间
                    type: string
                status:
                    description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账)
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
                withdrawal_no:
                    description: 提现单号
                    type: string
            type: object
        DtoWithdrawalRequestItem:
            properties:
                account_name:
                    description: 收款账户名称
                    type: string
                account_number:
                    description: 收款账号
                    type: string
                actual_amount:
                    description: 实际到账金额（分）
                    type: integer
                amount:
                    description: 提现金额（分）
                    type: integer
                applicant_id:
                    description: 申请人账号ID
                    minimum: 0
                    type: integer
                applicant_name:
                    description: 申请人用户名
                    type: string
                bank_name:
                    description: 银行名称
                    type: string
                created_at:
                    description: 申请时间
                    type: string
                fee:
                    description: 手续费（分）
                    type: integer
                fee_rate:
                    description: 手续费比率（基点，100=1%）
                    type: integer
                id:
                    description: 提现申请ID
                    minimum: 0
                    type: integer
                payment_type:
                    description: 放款类型 (manual:人工打款)
                    type: string
                processed_at:
                    description: 处理时间
                    type: string
                processor_id:
                    description: 处理人账号ID
                    minimum: 0
                    nullable: true
                    type: integer
                processor_name:
                    description: 处理人用户名
                    type: string
                reject_reason:
                    description: 拒绝原因
                    type: string
                remark:
                    description: 备注
                    type: string
                shop_hierarchy:
                    description: 店铺层级路径
                    type: string
                shop_id:
                    description: 店铺ID
                    minimum: 0
                    type: integer
                shop_name:
                    description: 店铺名称
                    type: string
                status:
                    description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账)
                    type: integer
                status_name:
                    description: 状态名称
                    type: string
                withdrawal_method:
                    description: 提现方式 (alipay:支付宝, wechat:微信, bank:银行卡)
                    type: string
                withdrawal_no:
                    description: 提现单号
                    type: string
            type: object
        DtoWithdrawalRequestPageResult:
            properties:
                items:
                    description: 提现申请列表
                    items:
                        $ref: '#/components/schemas/DtoWithdrawalRequestItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        DtoWithdrawalSettingItem:
            properties:
                arrival_days:
                    description: 到账天数
                    type: integer
                created_at:
                    description: 创建时间
                    type: string
                creator_id:
                    description: 创建人ID
                    minimum: 0
                    type: integer
                creator_name:
                    description: 创建人用户名
                    type: string
                daily_withdrawal_limit:
                    description: 每日提现次数限制
                    type: integer
                fee_rate:
                    description: 手续费比率（基点，100=1%）
                    type: integer
                id:
                    description: 配置ID
                    minimum: 0
                    type: integer
                is_active:
                    description: 是否生效
                    type: boolean
                min_withdrawal_amount:
                    description: 最低提现金额（分）
                    type: integer
            type: object
        DtoWithdrawalSettingPageResult:
            properties:
                items:
                    description: 配置列表
                    items:
                        $ref: '#/components/schemas/DtoWithdrawalSettingItem'
                    nullable: true
                    type: array
                page:
                    description: 当前页码
                    type: integer
                size:
                    description: 每页数量
                    type: integer
                total:
                    description: 总记录数
                    type: integer
            type: object
        ErrorResponse:
            properties:
                code:
                    description: 错误码
                    example: 1001
                    type: integer
                data:
                    description: 错误详情（可选）
                    type: object
                msg:
                    description: 错误消息
                    example: 参数验证失败
                    type: string
                timestamp:
                    description: 时间戳
                    format: date-time
                    type: string
            required:
                - code
                - msg
                - timestamp
            type: object
        ModelPermission:
            properties:
                available_for_role_types:
                    type: string
                creator:
                    minimum: 0
                    type: integer
                parent_id:
                    minimum: 0
                    nullable: true
                    type: integer
                perm_code:
                    type: string
                perm_name:
                    type: string
                perm_type:
                    type: integer
                platform:
                    type: string
                sort:
                    type: integer
                status:
                    type: integer
                updater:
                    minimum: 0
                    type: integer
                url:
                    type: string
            type: object
        ModelRole:
            properties:
                creator:
                    minimum: 0
                    type: integer
                role_desc:
                    type: string
                role_name:
                    type: string
                role_type:
                    type: integer
                status:
                    type: integer
                updater:
                    minimum: 0
                    type: integer
            type: object
        RoutesHealthResponse:
            properties:
                service:
                    description: 服务名称
                    type: string
                status:
                    description: 健康状态
                    type: string
            type: object
    securitySchemes:
        BearerAuth:
            bearerFormat: JWT
            scheme: bearer
            type: http
info:
    title: Admin API
    version: "1.0"
openapi: 3.0.3
paths:
    /api/admin/accounts:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 用户名模糊查询
                  in: query
                  name: username
                  schema:
                    description: 用户名模糊查询
                    maxLength: 50
                    type: string
                - description: 手机号模糊查询
                  in: query
                  name: phone
                  schema:
                    description: 手机号模糊查询
                    maxLength: 20
                    type: string
                - description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
                  in: query
                  name: user_type
                  schema:
                    description: 用户类型 (1:超级管理员, 2:平台用户, 3:代理账号, 4:企业账号)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 状态 (0:禁用, 1:启用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 账号列表
            tags:
                - 账号相关
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateAccountRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建账号
            tags:
                - 账号相关
    /api/admin/accounts/{account_id}/roles/{role_id}:
        delete:
            parameters:
                - description: 账号ID
                  in: path
                  name: account_id
                  required: true
                  schema:
                    description: 账号ID
                    minimum: 0
                    type: integer
                - description: 角色ID
                  in: path
                  name: role_id
                  required: true
                  schema:
                    description: 角色ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 移除角色
            tags:
                - 账号相关
    /api/admin/accounts/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除账号
            tags:
                - 账号相关
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取账号详情
            tags:
                - 账号相关
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateAccountParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新账号
            tags:
                - 账号相关
    /api/admin/accounts/{id}/roles:
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        items:
                                            $ref: '#/components/schemas/ModelRole'
                                        type: array
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取账号角色
            tags:
                - 账号相关
        post:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoAssignRolesParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 分配角色
            tags:
                - 账号相关
    /api/admin/asset-allocation-records:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 分配类型 (allocate:分配, recall:回收)
                  in: query
                  name: allocation_type
                  schema:
                    description: 分配类型 (allocate:分配, recall:回收)
                    enum:
                        - allocate
                        - recall
                    type: string
                - description: 资产类型 (iot_card:物联网卡, device:设备)
                  in: query
                  name: asset_type
                  schema:
                    description: 资产类型 (iot_card:物联网卡, device:设备)
                    enum:
                        - iot_card
                        - device
                    type: string
                - description: 资产标识符（ICCID或设备号，模糊查询）
                  in: query
                  name: asset_identifier
                  schema:
                    description: 资产标识符（ICCID或设备号，模糊查询）
                    maxLength: 50
                    type: string
                - description: 分配单号（精确匹配）
                  in: query
                  name: allocation_no
                  schema:
                    description: 分配单号（精确匹配）
                    maxLength: 50
                    type: string
                - description: 来源店铺ID
                  in: query
                  name: from_shop_id
                  schema:
                    description: 来源店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 目标店铺ID
                  in: query
                  name: to_shop_id
                  schema:
                    description: 目标店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 操作人ID
                  in: query
                  name: operator_id
                  schema:
                    description: 操作人ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 创建时间起始
                  in: query
                  name: created_at_start
                  schema:
                    description: 创建时间起始
                    format: date-time
                    nullable: true
                    type: string
                - description: 创建时间结束
                  in: query
                  name: created_at_end
                  schema:
                    description: 创建时间结束
                    format: date-time
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoListAssetAllocationRecordResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 分配记录列表
            tags:
                - 资产分配记录
    /api/admin/asset-allocation-records/{id}:
        get:
            parameters:
                - description: 记录ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 记录ID
                    minimum: 1
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAssetAllocationRecordDetailResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 分配记录详情
            tags:
                - 资产分配记录
    /api/admin/authorizations:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 按企业ID筛选
                  in: query
                  name: enterprise_id
                  schema:
                    description: 按企业ID筛选
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 按ICCID模糊查询
                  in: query
                  name: iccid
                  schema:
                    description: 按ICCID模糊查询
                    type: string
                - description: 授权人类型：2=平台，3=代理
                  in: query
                  name: authorizer_type
                  schema:
                    description: 授权人类型：2=平台，3=代理
                    nullable: true
                    type: integer
                - description: 状态：0=已回收，1=有效
                  in: query
                  name: status
                  schema:
                    description: 状态：0=已回收，1=有效
                    nullable: true
                    type: integer
                - description: 授权时间起（格式：2006-01-02）
                  in: query
                  name: start_time
                  schema:
                    description: 授权时间起（格式：2006-01-02）
                    type: string
                - description: 授权时间止（格式：2006-01-02）
                  in: query
                  name: end_time
                  schema:
                    description: 授权时间止（格式：2006-01-02）
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAuthorizationListResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 授权记录列表
            tags:
                - 授权记录管理
    /api/admin/authorizations/{id}:
        get:
            parameters:
                - description: 授权记录ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 授权记录ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAuthorizationItem'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 授权记录详情
            tags:
                - 授权记录管理
    /api/admin/authorizations/{id}/remark:
        put:
            parameters:
                - description: 授权记录ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 授权记录ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateAuthorizationRemarkReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAuthorizationItem'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 修改授权备注
            tags:
                - 授权记录管理
    /api/admin/carriers:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                  in: query
                  name: carrier_type
                  schema:
                    description: 运营商类型 (CMCC:中国移动, CUCC:中国联通, CTCC:中国电信, CBN:中国广电)
                    nullable: true
                    type: string
                - description: 运营商名称（模糊搜索）
                  in: query
                  name: carrier_name
                  schema:
                    description: 运营商名称（模糊搜索）
                    maxLength: 100
                    nullable: true
                    type: string
                - description: 状态 (1:启用, 0:禁用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:启用, 0:禁用)
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCarrierPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 运营商列表
            tags:
                - 运营商管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateCarrierRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCarrierResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建运营商
            tags:
                - 运营商管理
    /api/admin/carriers/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除运营商
            tags:
                - 运营商管理
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCarrierResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取运营商详情
            tags:
                - 运营商管理
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateCarrierParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCarrierResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新运营商
            tags:
                - 运营商管理
    /api/admin/carriers/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateCarrierStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新运营商状态
            tags:
                - 运营商管理
    /api/admin/commission/withdrawal-requests:
        get:
            parameters:
                - description: 页码（默认1）
                  in: query
                  name: page
                  schema:
                    description: 页码（默认1）
                    minimum: 1
                    type: integer
                - description: 每页数量（默认20，最大100）
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量（默认20，最大100）
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:待审核, 2:已通过, 3:已拒绝, 4:已到账)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 提现单号（精确查询）
                  in: query
                  name: withdrawal_no
                  schema:
                    description: 提现单号（精确查询）
                    maxLength: 50
                    type: string
                - description: 店铺名称（模糊查询）
                  in: query
                  name: shop_name
                  schema:
                    description: 店铺名称（模糊查询）
                    maxLength: 100
                    type: string
                - description: 申请开始时间（格式：2006-01-02 15:04:05）
                  in: query
                  name: start_time
                  schema:
                    description: 申请开始时间（格式：2006-01-02 15:04:05）
                    type: string
                - description: 申请结束时间（格式：2006-01-02 15:04:05）
                  in: query
                  name: end_time
                  schema:
                    description: 申请结束时间（格式：2006-01-02 15:04:05）
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoWithdrawalRequestPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 提现申请列表
            tags:
                - 佣金提现审批
    /api/admin/commission/withdrawal-requests/{id}/approve:
        post:
            parameters:
                - description: 提现申请ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 提现申请ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoApproveWithdrawalReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoWithdrawalApprovalResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 审批通过提现申请
            tags:
                - 佣金提现审批
    /api/admin/commission/withdrawal-requests/{id}/reject:
        post:
            parameters:
                - description: 提现申请ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 提现申请ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoRejectWithdrawalReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoWithdrawalApprovalResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 拒绝提现申请
            tags:
                - 佣金提现审批
    /api/admin/commission/withdrawal-settings:
        get:
            parameters:
                - description: 页码（默认1）
                  in: query
                  name: page
                  schema:
                    description: 页码（默认1）
                    minimum: 1
                    type: integer
                - description: 每页数量（默认20，最大100）
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量（默认20，最大100）
                    maximum: 100
                    minimum: 1
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoWithdrawalSettingPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 提现配置列表
            tags:
                - 提现配置管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateWithdrawalSettingReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoWithdrawalSettingItem'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 新增提现配置
            tags:
                - 提现配置管理
    /api/admin/commission/withdrawal-settings/current:
        get:
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoWithdrawalSettingItem'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取当前生效的提现配置
            tags:
                - 提现配置管理
    /api/admin/customer-accounts:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 用户名（模糊查询）
                  in: query
                  name: username
                  schema:
                    description: 用户名（模糊查询）
                    type: string
                - description: 手机号（模糊查询）
                  in: query
                  name: phone
                  schema:
                    description: 手机号（模糊查询）
                    type: string
                - description: 用户类型（3=代理账号, 4=企业账号）
                  in: query
                  name: user_type
                  schema:
                    description: 用户类型（3=代理账号, 4=企业账号）
                    nullable: true
                    type: integer
                - description: 店铺ID
                  in: query
                  name: shop_id
                  schema:
                    description: 店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 企业ID
                  in: query
                  name: enterprise_id
                  schema:
                    description: 企业ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 状态（0=禁用, 1=启用）
                  in: query
                  name: status
                  schema:
                    description: 状态（0=禁用, 1=启用）
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCustomerAccountPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 客户账号列表
            tags:
                - 客户账号管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateCustomerAccountReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCustomerAccountItem'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 新增代理商账号
            tags:
                - 客户账号管理
    /api/admin/customer-accounts/{id}:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateCustomerAccountReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCustomerAccountItem'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 编辑账号
            tags:
                - 客户账号管理
    /api/admin/customer-accounts/{id}/password:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateCustomerAccountPasswordReq'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 修改账号密码
            tags:
                - 客户账号管理
    /api/admin/customer-accounts/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateCustomerAccountStatusReq'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 修改账号状态
            tags:
                - 客户账号管理
    /api/admin/devices:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 设备号(模糊查询)
                  in: query
                  name: device_no
                  schema:
                    description: 设备号(模糊查询)
                    maxLength: 100
                    type: string
                - description: 设备名称(模糊查询)
                  in: query
                  name: device_name
                  schema:
                    description: 设备名称(模糊查询)
                    maxLength: 255
                    type: string
                - description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 店铺ID (NULL表示平台库存)
                  in: query
                  name: shop_id
                  schema:
                    description: 店铺ID (NULL表示平台库存)
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 套餐系列分配ID
                  in: query
                  name: series_allocation_id
                  schema:
                    description: 套餐系列分配ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 批次号
                  in: query
                  name: batch_no
                  schema:
                    description: 批次号
                    maxLength: 100
                    type: string
                - description: 设备类型
                  in: query
                  name: device_type
                  schema:
                    description: 设备类型
                    maxLength: 50
                    type: string
                - description: 制造商(模糊查询)
                  in: query
                  name: manufacturer
                  schema:
                    description: 制造商(模糊查询)
                    maxLength: 255
                    type: string
                - description: 创建时间起始
                  in: query
                  name: created_at_start
                  schema:
                    description: 创建时间起始
                    format: date-time
                    nullable: true
                    type: string
                - description: 创建时间结束
                  in: query
                  name: created_at_end
                  schema:
                    description: 创建时间结束
                    format: date-time
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoListDeviceResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 设备列表
            tags:
                - 设备管理
    /api/admin/devices/{id}:
        delete:
            description: 仅平台用户可操作。删除设备时自动解绑所有卡（卡不会被删除）。
            parameters:
                - description: 设备ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除设备
            tags:
                - 设备管理
        get:
            parameters:
                - description: 设备ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoDeviceResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 设备详情
            tags:
                - 设备管理
    /api/admin/devices/{id}/cards:
        get:
            parameters:
                - description: 设备ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoListDeviceCardsResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取设备绑定的卡列表
            tags:
                - 设备管理
        post:
            description: 仅平台用户可操作。用于导入后调整卡绑定关系（补卡、换卡）。
            parameters:
                - description: 设备ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoBindCardToDeviceRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoBindCardToDeviceResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 绑定卡到设备
            tags:
                - 设备管理
    /api/admin/devices/{id}/cards/{cardId}:
        delete:
            description: 仅平台用户可操作。解绑不改变卡的 shop_id。
            parameters:
                - description: 设备ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
                - description: IoT卡ID
                  in: path
                  name: cardId
                  required: true
                  schema:
                    description: IoT卡ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoUnbindCardFromDeviceResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 解绑设备上的卡
            tags:
                - 设备管理
    /api/admin/devices/allocate:
        post:
            description: 分配设备给直属下级店铺。分配时自动同步绑定的所有卡的 shop_id。
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoAllocateDevicesRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAllocateDevicesResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量分配设备
            tags:
                - 设备管理
    /api/admin/devices/by-imei/{imei}:
        get:
            parameters:
                - description: 设备号(IMEI)
                  in: path
                  name: imei
                  required: true
                  schema:
                    description: 设备号(IMEI)
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoDeviceResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 通过设备号查询设备详情
            tags:
                - 设备管理
    /api/admin/devices/import:
        post:
            description: |-
                仅平台用户可操作。

                ### 完整导入流程

                1. **获取上传 URL**: 调用 `POST /api/admin/storage/upload-url`
                2. **上传 CSV 文件**: 使用预签名 URL 上传文件到对象存储
                3. **调用本接口**: 使用返回的 `file_key` 提交导入任务

                ### CSV 文件格式

                必须包含列（首行为表头）:
                - `device_no`: 设备号（必填，唯一）
                - `device_name`: 设备名称
                - `device_model`: 设备型号
                - `device_type`: 设备类型
                - `max_sim_slots`: 最大插槽数（默认4）
                - `manufacturer`: 制造商
                - `iccid_1` ~ `iccid_4`: 绑定的卡 ICCID（卡必须已存在且未绑定）
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoImportDeviceRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoImportDeviceResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量导入设备
            tags:
                - 设备管理
    /api/admin/devices/import/tasks:
        get:
            description: 仅平台用户可操作。
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                  in: query
                  name: status
                  schema:
                    description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 批次号(模糊查询)
                  in: query
                  name: batch_no
                  schema:
                    description: 批次号(模糊查询)
                    maxLength: 100
                    type: string
                - description: 创建时间起始
                  in: query
                  name: start_time
                  schema:
                    description: 创建时间起始
                    format: date-time
                    nullable: true
                    type: string
                - description: 创建时间结束
                  in: query
                  name: end_time
                  schema:
                    description: 创建时间结束
                    format: date-time
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoListDeviceImportTaskResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 导入任务列表
            tags:
                - 设备管理
    /api/admin/devices/import/tasks/{id}:
        get:
            description: 仅平台用户可操作。包含跳过和失败记录的详细信息。
            parameters:
                - description: 任务ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 任务ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoDeviceImportTaskDetailResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 导入任务详情
            tags:
                - 设备管理
    /api/admin/devices/recall:
        post:
            description: 从直属下级店铺回收设备。回收时自动同步绑定的所有卡的 shop_id。
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoRecallDevicesRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRecallDevicesResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量回收设备
            tags:
                - 设备管理
    /api/admin/devices/series-binding:
        patch:
            description: 批量设置或清除设备与套餐系列分配的关联关系。series_allocation_id 为 0 时表示清除关联。
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoBatchSetDeviceSeriesBindngRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoBatchSetDeviceSeriesBindngResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量设置设备的套餐系列绑定
            tags:
                - 设备管理
    /api/admin/enterprises:
        get:
            parameters:
                - description: 页码（默认1）
                  in: query
                  name: page
                  schema:
                    description: 页码（默认1）
                    minimum: 1
                    type: integer
                - description: 每页数量（默认20，最大100）
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量（默认20，最大100）
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 企业名称（模糊查询）
                  in: query
                  name: enterprise_name
                  schema:
                    description: 企业名称（模糊查询）
                    type: string
                - description: 登录手机号（模糊查询）
                  in: query
                  name: login_phone
                  schema:
                    description: 登录手机号（模糊查询）
                    type: string
                - description: 联系人电话（模糊查询）
                  in: query
                  name: contact_phone
                  schema:
                    description: 联系人电话（模糊查询）
                    type: string
                - description: 归属店铺ID
                  in: query
                  name: owner_shop_id
                  schema:
                    description: 归属店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 状态（0=禁用, 1=启用）
                  in: query
                  name: status
                  schema:
                    description: 状态（0=禁用, 1=启用）
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoEnterprisePageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 查询企业客户列表
            tags:
                - 企业客户管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateEnterpriseReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCreateEnterpriseResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 新增企业客户
            tags:
                - 企业客户管理
    /api/admin/enterprises/{id}:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateEnterpriseReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoEnterpriseItem'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 编辑企业信息
            tags:
                - 企业客户管理
    /api/admin/enterprises/{id}/allocate-cards:
        post:
            parameters:
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoAllocateCardsReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAllocateCardsResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 授权卡给企业
            tags:
                - 企业卡授权
    /api/admin/enterprises/{id}/allocate-devices:
        post:
            parameters:
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoAllocateDevicesReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAllocateDevicesResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 授权设备给企业
            tags:
                - 企业设备授权
    /api/admin/enterprises/{id}/cards:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 卡状态
                  in: query
                  name: status
                  schema:
                    description: 卡状态
                    nullable: true
                    type: integer
                - description: 运营商ID
                  in: query
                  name: carrier_id
                  schema:
                    description: 运营商ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: ICCID（模糊查询）
                  in: query
                  name: iccid
                  schema:
                    description: ICCID（模糊查询）
                    type: string
                - description: 设备号（模糊查询）
                  in: query
                  name: device_no
                  schema:
                    description: 设备号（模糊查询）
                    type: string
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoEnterpriseCardPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 企业卡列表
            tags:
                - 企业卡授权
    /api/admin/enterprises/{id}/cards/{card_id}/resume:
        post:
            parameters:
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
                - description: 卡ID
                  in: path
                  name: card_id
                  required: true
                  schema:
                    description: 卡ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 复机卡
            tags:
                - 企业卡授权
    /api/admin/enterprises/{id}/cards/{card_id}/suspend:
        post:
            parameters:
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
                - description: 卡ID
                  in: path
                  name: card_id
                  required: true
                  schema:
                    description: 卡ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 停机卡
            tags:
                - 企业卡授权
    /api/admin/enterprises/{id}/devices:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    type: integer
                - description: 设备号（模糊搜索）
                  in: query
                  name: device_no
                  schema:
                    description: 设备号（模糊搜索）
                    type: string
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoEnterpriseDeviceListResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 企业设备列表
            tags:
                - 企业设备授权
    /api/admin/enterprises/{id}/password:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateEnterprisePasswordReq'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 修改企业账号密码
            tags:
                - 企业客户管理
    /api/admin/enterprises/{id}/recall-cards:
        post:
            parameters:
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoRecallCardsReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRecallCardsResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 回收卡授权
            tags:
                - 企业卡授权
    /api/admin/enterprises/{id}/recall-devices:
        post:
            parameters:
                - description: 企业ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 企业ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoRecallDevicesReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRecallDevicesResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 撤销设备授权
            tags:
                - 企业设备授权
    /api/admin/enterprises/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateEnterpriseStatusReq'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 启用/禁用企业
            tags:
                - 企业客户管理
    /api/admin/iot-cards/by-iccid/{iccid}:
        get:
            parameters:
                - description: ICCID
                  in: path
                  name: iccid
                  required: true
                  schema:
                    description: ICCID
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoIotCardDetailResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 通过ICCID查询单卡详情
            tags:
                - IoT卡管理
    /api/admin/iot-cards/import:
        post:
            description: |-
                ## ⚠️ 接口变更说明（BREAKING CHANGE）

                本接口已从 `multipart/form-data` 改为 `application/json`。

                ### 完整导入流程

                1. **获取上传 URL**: 调用 `POST /api/admin/storage/upload-url`
                2. **上传 CSV 文件**: 使用预签名 URL 上传文件到对象存储
                3. **调用本接口**: 使用返回的 `file_key` 提交导入任务

                ### 请求示例

                ```json
                {
                  "carrier_id": 1,
                  "batch_no": "BATCH-2025-01",
                  "file_key": "imports/2025/01/24/abc123.csv"
                }
                ```

                ### CSV 文件格式

                - 必须包含两列：`iccid`, `msisdn`
                - 首行为表头
                - 编码：UTF-8
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoImportIotCardRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoImportIotCardResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量导入IoT卡（ICCID+MSISDN）
            tags:
                - IoT卡管理
    /api/admin/iot-cards/import-tasks:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                  in: query
                  name: status
                  schema:
                    description: 任务状态 (1:待处理, 2:处理中, 3:已完成, 4:失败)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 运营商ID
                  in: query
                  name: carrier_id
                  schema:
                    description: 运营商ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 批次号(模糊查询)
                  in: query
                  name: batch_no
                  schema:
                    description: 批次号(模糊查询)
                    maxLength: 100
                    type: string
                - description: 创建时间起始
                  in: query
                  name: start_time
                  schema:
                    description: 创建时间起始
                    format: date-time
                    nullable: true
                    type: string
                - description: 创建时间结束
                  in: query
                  name: end_time
                  schema:
                    description: 创建时间结束
                    format: date-time
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoListImportTaskResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 导入任务列表
            tags:
                - IoT卡管理
    /api/admin/iot-cards/import-tasks/{id}:
        get:
            parameters:
                - description: 任务ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 任务ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoImportTaskDetailResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 导入任务详情
            tags:
                - IoT卡管理
    /api/admin/iot-cards/series-binding:
        patch:
            description: 批量设置或清除卡与套餐系列分配的关联关系。series_allocation_id 为 0 时表示清除关联。
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoBatchSetCardSeriesBindngRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoBatchSetCardSeriesBindngResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量设置卡的套餐系列绑定
            tags:
                - IoT卡管理
    /api/admin/iot-cards/standalone:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:在库, 2:已分销, 3:已激活, 4:已停用)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 运营商ID
                  in: query
                  name: carrier_id
                  schema:
                    description: 运营商ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 分销商ID
                  in: query
                  name: shop_id
                  schema:
                    description: 分销商ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 套餐系列分配ID
                  in: query
                  name: series_allocation_id
                  schema:
                    description: 套餐系列分配ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: ICCID(模糊查询)
                  in: query
                  name: iccid
                  schema:
                    description: ICCID(模糊查询)
                    maxLength: 20
                    type: string
                - description: 卡接入号(模糊查询)
                  in: query
                  name: msisdn
                  schema:
                    description: 卡接入号(模糊查询)
                    maxLength: 20
                    type: string
                - description: 批次号
                  in: query
                  name: batch_no
                  schema:
                    description: 批次号
                    maxLength: 100
                    type: string
                - description: 套餐ID
                  in: query
                  name: package_id
                  schema:
                    description: 套餐ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 是否已分销 (true:已分销, false:未分销)
                  in: query
                  name: is_distributed
                  schema:
                    description: 是否已分销 (true:已分销, false:未分销)
                    nullable: true
                    type: boolean
                - description: 是否有换卡记录 (true:有换卡记录, false:无换卡记录)
                  in: query
                  name: is_replaced
                  schema:
                    description: 是否有换卡记录 (true:有换卡记录, false:无换卡记录)
                    nullable: true
                    type: boolean
                - description: ICCID起始号
                  in: query
                  name: iccid_start
                  schema:
                    description: ICCID起始号
                    maxLength: 20
                    type: string
                - description: ICCID结束号
                  in: query
                  name: iccid_end
                  schema:
                    description: ICCID结束号
                    maxLength: 20
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoListStandaloneIotCardResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 单卡列表（未绑定设备）
            tags:
                - IoT卡管理
    /api/admin/iot-cards/standalone/allocate:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoAllocateStandaloneCardsRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAllocateStandaloneCardsResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量分配单卡
            tags:
                - IoT卡管理
    /api/admin/iot-cards/standalone/recall:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoRecallStandaloneCardsRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRecallStandaloneCardsResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量回收单卡
            tags:
                - IoT卡管理
    /api/admin/login:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoLoginRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoLoginResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 后台登录
            tags:
                - 认证
    /api/admin/logout:
        post:
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 登出
            tags:
                - 认证
    /api/admin/me:
        get:
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoUserInfo'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取当前用户信息
            tags:
                - 认证
    /api/admin/my/commission-daily-stats:
        get:
            parameters:
                - description: 店铺ID
                  in: query
                  name: shop_id
                  schema:
                    description: 店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 开始日期（YYYY-MM-DD）
                  in: query
                  name: start_date
                  schema:
                    description: 开始日期（YYYY-MM-DD）
                    nullable: true
                    type: string
                - description: 结束日期（YYYY-MM-DD）
                  in: query
                  name: end_date
                  schema:
                    description: 结束日期（YYYY-MM-DD）
                    nullable: true
                    type: string
                - description: 查询天数（默认30天）
                  in: query
                  name: days
                  schema:
                    description: 查询天数（默认30天）
                    maximum: 365
                    minimum: 1
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        items:
                                            $ref: '#/components/schemas/DtoDailyCommissionStatsResponse'
                                        type: array
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 我的每日佣金统计
            tags:
                - 我的佣金
    /api/admin/my/commission-records:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)
                  in: query
                  name: commission_source
                  schema:
                    description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)
                    nullable: true
                    type: string
                - description: ICCID（模糊查询）
                  in: query
                  name: iccid
                  schema:
                    description: ICCID（模糊查询）
                    type: string
                - description: 设备号（模糊查询）
                  in: query
                  name: device_no
                  schema:
                    description: 设备号（模糊查询）
                    type: string
                - description: 订单号（模糊查询）
                  in: query
                  name: order_no
                  schema:
                    description: 订单号（模糊查询）
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoMyCommissionRecordPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 我的佣金明细
            tags:
                - 我的佣金
    /api/admin/my/commission-stats:
        get:
            parameters:
                - description: 店铺ID
                  in: query
                  name: shop_id
                  schema:
                    description: 店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 开始时间
                  in: query
                  name: start_time
                  schema:
                    description: 开始时间
                    nullable: true
                    type: string
                - description: 结束时间
                  in: query
                  name: end_time
                  schema:
                    description: 结束时间
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCommissionStatsResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 我的佣金统计
            tags:
                - 我的佣金
    /api/admin/my/commission-summary:
        get:
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoMyCommissionSummaryResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 我的佣金概览
            tags:
                - 我的佣金
    /api/admin/my/withdrawal-requests:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 状态（1=待审批, 2=已通过, 3=已拒绝）
                  in: query
                  name: status
                  schema:
                    description: 状态（1=待审批, 2=已通过, 3=已拒绝）
                    nullable: true
                    type: integer
                - description: 申请开始时间
                  in: query
                  name: start_time
                  schema:
                    description: 申请开始时间
                    type: string
                - description: 申请结束时间
                  in: query
                  name: end_time
                  schema:
                    description: 申请结束时间
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoWithdrawalRequestPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 我的提现记录
            tags:
                - 我的佣金
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateMyWithdrawalReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoCreateMyWithdrawalResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 发起提现申请
            tags:
                - 我的佣金
    /api/admin/orders:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)
                  in: query
                  name: payment_status
                  schema:
                    description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 订单类型 (single_card:单卡购买, device:设备购买)
                  in: query
                  name: order_type
                  schema:
                    description: 订单类型 (single_card:单卡购买, device:设备购买)
                    type: string
                - description: 订单号(精确查询)
                  in: query
                  name: order_no
                  schema:
                    description: 订单号(精确查询)
                    maxLength: 30
                    type: string
                - description: 创建时间起始
                  in: query
                  name: start_time
                  schema:
                    description: 创建时间起始
                    format: date-time
                    nullable: true
                    type: string
                - description: 创建时间结束
                  in: query
                  name: end_time
                  schema:
                    description: 创建时间结束
                    format: date-time
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoOrderListResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取订单列表
            tags:
                - 订单管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateOrderRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoOrderResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建订单
            tags:
                - 订单管理
    /api/admin/orders/{id}:
        get:
            parameters:
                - description: 订单ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 订单ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoOrderResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取订单详情
            tags:
                - 订单管理
    /api/admin/orders/{id}/cancel:
        post:
            parameters:
                - description: 订单ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 订单ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 取消订单
            tags:
                - 订单管理
    /api/admin/package-series:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 系列名称（模糊搜索）
                  in: query
                  name: series_name
                  schema:
                    description: 系列名称（模糊搜索）
                    maxLength: 255
                    nullable: true
                    type: string
                - description: 状态 (1:启用, 2:禁用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:启用, 2:禁用)
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackageSeriesPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 套餐系列列表
            tags:
                - 套餐系列管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreatePackageSeriesRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackageSeriesResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建套餐系列
            tags:
                - 套餐系列管理
    /api/admin/package-series/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除套餐系列
            tags:
                - 套餐系列管理
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackageSeriesResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取套餐系列详情
            tags:
                - 套餐系列管理
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdatePackageSeriesParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackageSeriesResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新套餐系列
            tags:
                - 套餐系列管理
    /api/admin/package-series/{id}/status:
        patch:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdatePackageSeriesStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新套餐系列状态
            tags:
                - 套餐系列管理
    /api/admin/packages:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 套餐名称（模糊搜索）
                  in: query
                  name: package_name
                  schema:
                    description: 套餐名称（模糊搜索）
                    maxLength: 255
                    nullable: true
                    type: string
                - description: 套餐系列ID
                  in: query
                  name: series_id
                  schema:
                    description: 套餐系列ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 状态 (1:启用, 2:禁用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:启用, 2:禁用)
                    nullable: true
                    type: integer
                - description: 上架状态 (1:上架, 2:下架)
                  in: query
                  name: shelf_status
                  schema:
                    description: 上架状态 (1:上架, 2:下架)
                    nullable: true
                    type: integer
                - description: 套餐类型 (formal:正式套餐, addon:附加套餐)
                  in: query
                  name: package_type
                  schema:
                    description: 套餐类型 (formal:正式套餐, addon:附加套餐)
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackagePageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 套餐列表
            tags:
                - 套餐管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreatePackageRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackageResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建套餐
            tags:
                - 套餐管理
    /api/admin/packages/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除套餐
            tags:
                - 套餐管理
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackageResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取套餐详情
            tags:
                - 套餐管理
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdatePackageParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPackageResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新套餐
            tags:
                - 套餐管理
    /api/admin/packages/{id}/shelf:
        patch:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdatePackageShelfStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新套餐上架状态
            tags:
                - 套餐管理
    /api/admin/packages/{id}/status:
        patch:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdatePackageStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新套餐状态
            tags:
                - 套餐管理
    /api/admin/password:
        put:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoChangePasswordRequest'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 修改密码
            tags:
                - 认证
    /api/admin/permissions:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 权限名称模糊查询
                  in: query
                  name: perm_name
                  schema:
                    description: 权限名称模糊查询
                    maxLength: 50
                    type: string
                - description: 权限编码模糊查询
                  in: query
                  name: perm_code
                  schema:
                    description: 权限编码模糊查询
                    maxLength: 100
                    type: string
                - description: 权限类型 (1:菜单, 2:按钮)
                  in: query
                  name: perm_type
                  schema:
                    description: 权限类型 (1:菜单, 2:按钮)
                    maximum: 2
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 适用端口 (all:全部, web:Web后台, h5:H5端)
                  in: query
                  name: platform
                  schema:
                    description: 适用端口 (all:全部, web:Web后台, h5:H5端)
                    type: string
                - description: 可用角色类型 (1:平台角色, 2:客户角色)
                  in: query
                  name: available_for_role_type
                  schema:
                    description: 可用角色类型 (1:平台角色, 2:客户角色)
                    maximum: 2
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 父权限ID
                  in: query
                  name: parent_id
                  schema:
                    description: 父权限ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 状态 (0:禁用, 1:启用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPermissionPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 权限列表
            tags:
                - 权限
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreatePermissionRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPermissionResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建权限
            tags:
                - 权限
    /api/admin/permissions/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除权限
            tags:
                - 权限
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPermissionResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取权限详情
            tags:
                - 权限
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdatePermissionParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoPermissionResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新权限
            tags:
                - 权限
    /api/admin/permissions/tree:
        get:
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        items:
                                            $ref: '#/components/schemas/DtoPermissionTreeNode'
                                        type: array
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取权限树
            tags:
                - 权限
    /api/admin/platform-accounts:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 用户名模糊查询
                  in: query
                  name: username
                  schema:
                    description: 用户名模糊查询
                    maxLength: 50
                    type: string
                - description: 手机号模糊查询
                  in: query
                  name: phone
                  schema:
                    description: 手机号模糊查询
                    maxLength: 20
                    type: string
                - description: 状态 (0:禁用, 1:启用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 平台账号列表
            tags:
                - 平台账号
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateAccountRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 新增平台账号
            tags:
                - 平台账号
    /api/admin/platform-accounts/{account_id}/roles/{role_id}:
        delete:
            parameters:
                - description: 账号ID
                  in: path
                  name: account_id
                  required: true
                  schema:
                    description: 账号ID
                    minimum: 0
                    type: integer
                - description: 角色ID
                  in: path
                  name: role_id
                  required: true
                  schema:
                    description: 角色ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 移除角色
            tags:
                - 平台账号
    /api/admin/platform-accounts/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除平台账号
            tags:
                - 平台账号
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取平台账号详情
            tags:
                - 平台账号
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateAccountParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 编辑平台账号
            tags:
                - 平台账号
    /api/admin/platform-accounts/{id}/password:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdatePasswordParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 修改密码
            tags:
                - 平台账号
    /api/admin/platform-accounts/{id}/roles:
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        items:
                                            $ref: '#/components/schemas/ModelRole'
                                        type: array
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取账号角色
            tags:
                - 平台账号
        post:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoAssignRolesParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 分配角色
            tags:
                - 平台账号
    /api/admin/platform-accounts/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 启用/禁用账号
            tags:
                - 平台账号
    /api/admin/refresh-token:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoRefreshTokenRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRefreshTokenResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 刷新 Token
            tags:
                - 认证
    /api/admin/roles:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 角色名称模糊查询
                  in: query
                  name: role_name
                  schema:
                    description: 角色名称模糊查询
                    maxLength: 50
                    type: string
                - description: 角色类型 (1:平台角色, 2:客户角色)
                  in: query
                  name: role_type
                  schema:
                    description: 角色类型 (1:平台角色, 2:客户角色)
                    maximum: 2
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 状态 (0:禁用, 1:启用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (0:禁用, 1:启用)
                    maximum: 1
                    minimum: 0
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRolePageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 角色列表
            tags:
                - 角色
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateRoleRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRoleResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建角色
            tags:
                - 角色
    /api/admin/roles/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除角色
            tags:
                - 角色
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRoleResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取角色详情
            tags:
                - 角色
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateRoleParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRoleResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新角色
            tags:
                - 角色
    /api/admin/roles/{id}/permissions:
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        items:
                                            $ref: '#/components/schemas/ModelPermission'
                                        type: array
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取角色权限
            tags:
                - 角色
        post:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoAssignPermissionsParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 分配权限
            tags:
                - 角色
    /api/admin/roles/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateRoleStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新角色状态
            tags:
                - 角色
    /api/admin/roles/{role_id}/permissions/{perm_id}:
        delete:
            parameters:
                - description: 角色ID
                  in: path
                  name: role_id
                  required: true
                  schema:
                    description: 角色ID
                    minimum: 0
                    type: integer
                - description: 权限ID
                  in: path
                  name: perm_id
                  required: true
                  schema:
                    description: 权限ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 移除权限
            tags:
                - 角色
    /api/admin/shop-accounts:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 店铺ID过滤
                  in: query
                  name: shop_id
                  schema:
                    description: 店铺ID过滤
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 用户名（模糊查询）
                  in: query
                  name: username
                  schema:
                    description: 用户名（模糊查询）
                    maxLength: 50
                    type: string
                - description: 手机号（精确查询）
                  in: query
                  name: phone
                  schema:
                    description: 手机号（精确查询）
                    maxLength: 11
                    minLength: 11
                    type: string
                - description: 状态 (0:禁用, 1:启用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (0:禁用, 1:启用)
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopAccountPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 代理账号列表
            tags:
                - 代理账号管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateShopAccountRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建代理账号
            tags:
                - 代理账号管理
    /api/admin/shop-accounts/{id}:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateShopAccountParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopAccountResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新代理账号
            tags:
                - 代理账号管理
    /api/admin/shop-accounts/{id}/password:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateShopAccountPasswordParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 重置代理账号密码
            tags:
                - 代理账号管理
    /api/admin/shop-accounts/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateShopAccountStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 启用/禁用代理账号
            tags:
                - 代理账号管理
    /api/admin/shop-package-allocations:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 被分配的店铺ID
                  in: query
                  name: shop_id
                  schema:
                    description: 被分配的店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 套餐ID
                  in: query
                  name: package_id
                  schema:
                    description: 套餐ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 状态 (1:启用, 2:禁用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:启用, 2:禁用)
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopPackageAllocationPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 单套餐分配列表
            tags:
                - 单套餐分配
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateShopPackageAllocationRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopPackageAllocationResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建单套餐分配
            tags:
                - 单套餐分配
    /api/admin/shop-package-allocations/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除单套餐分配
            tags:
                - 单套餐分配
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopPackageAllocationResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取单套餐分配详情
            tags:
                - 单套餐分配
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateShopPackageAllocationParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopPackageAllocationResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新单套餐分配
            tags:
                - 单套餐分配
    /api/admin/shop-package-allocations/{id}/cost-price:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopPackageAllocationResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新单套餐分配成本价
            tags:
                - 单套餐分配
    /api/admin/shop-package-allocations/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新单套餐分配状态
            tags:
                - 单套餐分配
    /api/admin/shop-package-batch-allocations:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoBatchAllocatePackagesRequest'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量分配套餐
            tags:
                - 批量套餐分配
    /api/admin/shop-package-batch-pricing:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoBatchUpdateCostPriceRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoBatchUpdateCostPriceResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 批量调价
            tags:
                - 批量套餐调价
    /api/admin/shop-series-allocations:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 被分配的店铺ID
                  in: query
                  name: shop_id
                  schema:
                    description: 被分配的店铺ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 套餐系列ID
                  in: query
                  name: series_id
                  schema:
                    description: 套餐系列ID
                    minimum: 0
                    nullable: true
                    type: integer
                - description: 状态 (1:启用, 2:禁用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (1:启用, 2:禁用)
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopSeriesAllocationPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 套餐系列分配列表
            tags:
                - 套餐系列分配
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateShopSeriesAllocationRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopSeriesAllocationResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建套餐系列分配
            tags:
                - 套餐系列分配
    /api/admin/shop-series-allocations/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除套餐系列分配
            tags:
                - 套餐系列分配
        get:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopSeriesAllocationResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取套餐系列分配详情
            tags:
                - 套餐系列分配
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateShopSeriesAllocationParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopSeriesAllocationResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新套餐系列分配
            tags:
                - 套餐系列分配
    /api/admin/shop-series-allocations/{id}/status:
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateStatusParams'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新套餐系列分配状态
            tags:
                - 套餐系列分配
    /api/admin/shops:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 店铺名称模糊查询
                  in: query
                  name: shop_name
                  schema:
                    description: 店铺名称模糊查询
                    maxLength: 100
                    type: string
                - description: 店铺编号模糊查询
                  in: query
                  name: shop_code
                  schema:
                    description: 店铺编号模糊查询
                    maxLength: 50
                    type: string
                - description: 上级店铺ID
                  in: query
                  name: parent_id
                  schema:
                    description: 上级店铺ID
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 店铺层级 (1-7级)
                  in: query
                  name: level
                  schema:
                    description: 店铺层级 (1-7级)
                    maximum: 7
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 状态 (0:禁用, 1:启用)
                  in: query
                  name: status
                  schema:
                    description: 状态 (0:禁用, 1:启用)
                    nullable: true
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 店铺列表
            tags:
                - 店铺管理
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateShopRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建店铺
            tags:
                - 店铺管理
    /api/admin/shops/{id}:
        delete:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 删除店铺
            tags:
                - 店铺管理
        put:
            parameters:
                - description: ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoUpdateShopParams'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新店铺
            tags:
                - 店铺管理
    /api/admin/shops/{shop_id}/commission-records:
        get:
            parameters:
                - description: 页码（默认1）
                  in: query
                  name: page
                  schema:
                    description: 页码（默认1）
                    minimum: 1
                    type: integer
                - description: 每页数量（默认20，最大100）
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量（默认20，最大100）
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)
                  in: query
                  name: commission_source
                  schema:
                    description: 佣金来源 (cost_diff:成本价差, one_time:一次性佣金, tier_bonus:梯度奖励)
                    type: string
                - description: ICCID（模糊查询）
                  in: query
                  name: iccid
                  schema:
                    description: ICCID（模糊查询）
                    maxLength: 50
                    type: string
                - description: 设备号（模糊查询）
                  in: query
                  name: device_no
                  schema:
                    description: 设备号（模糊查询）
                    maxLength: 50
                    type: string
                - description: 订单号（模糊查询）
                  in: query
                  name: order_no
                  schema:
                    description: 订单号（模糊查询）
                    maxLength: 50
                    type: string
                - description: 店铺ID
                  in: path
                  name: shop_id
                  required: true
                  schema:
                    description: 店铺ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopCommissionRecordPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 代理商佣金明细
            tags:
                - 代理商佣金管理
    /api/admin/shops/{shop_id}/withdrawal-requests:
        get:
            parameters:
                - description: 页码（默认1）
                  in: query
                  name: page
                  schema:
                    description: 页码（默认1）
                    minimum: 1
                    type: integer
                - description: 每页数量（默认20，最大100）
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量（默认20，最大100）
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 提现单号（精确查询）
                  in: query
                  name: withdrawal_no
                  schema:
                    description: 提现单号（精确查询）
                    maxLength: 50
                    type: string
                - description: 申请开始时间（格式：2006-01-02 15:04:05）
                  in: query
                  name: start_time
                  schema:
                    description: 申请开始时间（格式：2006-01-02 15:04:05）
                    type: string
                - description: 申请结束时间（格式：2006-01-02 15:04:05）
                  in: query
                  name: end_time
                  schema:
                    description: 申请结束时间（格式：2006-01-02 15:04:05）
                    type: string
                - description: 店铺ID
                  in: path
                  name: shop_id
                  required: true
                  schema:
                    description: 店铺ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopWithdrawalRequestPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 代理商提现记录
            tags:
                - 代理商佣金管理
    /api/admin/shops/commission-summary:
        get:
            parameters:
                - description: 页码（默认1）
                  in: query
                  name: page
                  schema:
                    description: 页码（默认1）
                    minimum: 1
                    type: integer
                - description: 每页数量（默认20，最大100）
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量（默认20，最大100）
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 店铺名称（模糊查询）
                  in: query
                  name: shop_name
                  schema:
                    description: 店铺名称（模糊查询）
                    maxLength: 100
                    type: string
                - description: 主账号用户名（模糊查询）
                  in: query
                  name: username
                  schema:
                    description: 主账号用户名（模糊查询）
                    maxLength: 50
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoShopCommissionSummaryPageResult'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 代理商佣金列表
            tags:
                - 代理商佣金管理
    /api/admin/storage/upload-url:
        post:
            description: |-
                ## 文件上传流程

                本接口用于获取对象存储的预签名上传 URL，实现前端直传文件到对象存储。

                ### 完整流程

                1. **调用本接口** 获取预签名 URL 和 file_key
                2. **使用预签名 URL 上传文件** 发起 PUT 请求直接上传到对象存储
                3. **调用业务接口** 使用 file_key 调用相关业务接口（如 ICCID 导入）

                ### 前端上传示例

                ```javascript
                // 1. 获取预签名 URL
                const { data } = await api.post('/storage/upload-url', {
                  file_name: 'cards.csv',
                  content_type: 'text/csv',
                  purpose: 'iot_import'
                });

                // 2. 上传文件到对象存储
                await fetch(data.upload_url, {
                  method: 'PUT',
                  headers: { 'Content-Type': 'text/csv' },
                  body: file
                });

                // 3. 调用业务接口
                await api.post('/iot-cards/import', {
                  carrier_id: 1,
                  batch_no: 'BATCH-2025-01',
                  file_key: data.file_key
                });
                ```

                ### purpose 可选值

                | 值 | 说明 | 生成路径格式 |
                |---|------|-------------|
                | iot_import | ICCID 导入 | imports/YYYY/MM/DD/uuid.csv |
                | export | 数据导出 | exports/YYYY/MM/DD/uuid.xlsx |
                | attachment | 附件上传 | attachments/YYYY/MM/DD/uuid.ext |

                ### 注意事项

                - 预签名 URL 有效期 **15 分钟**，请及时使用
                - 上传时 Content-Type 需与请求时一致
                - file_key 在上传成功后永久有效，用于后续业务接口调用
                - 上传失败时可重新调用本接口获取新的 URL
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoGetUploadURLRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoGetUploadURLResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取文件上传预签名 URL
            tags:
                - 对象存储
    /api/c/v1/bind-wechat:
        post:
            description: 绑定微信账号到当前个人客户
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AppBindWechatRequest'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 绑定微信
            tags:
                - 个人客户 - 账户
    /api/c/v1/login:
        post:
            description: 使用手机号和验证码登录
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AppLoginRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/AppLoginResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 手机号登录
            tags:
                - 个人客户 - 认证
    /api/c/v1/login/send-code:
        post:
            description: 向指定手机号发送登录验证码
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AppSendCodeRequest'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 发送验证码
            tags:
                - 个人客户 - 认证
    /api/c/v1/profile:
        get:
            description: 获取当前登录客户的个人资料
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/AppPersonalCustomerDTO'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取个人资料
            tags:
                - 个人客户 - 账户
        put:
            description: 更新当前登录客户的昵称和头像
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AppUpdateProfileRequest'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 更新个人资料
            tags:
                - 个人客户 - 账户
    /api/callback/alipay:
        post:
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 支付宝回调
            tags:
                - 支付回调
    /api/callback/wechat-pay:
        post:
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 微信支付回调
            tags:
                - 支付回调
    /api/h5/devices:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    type: integer
                - description: 设备号（模糊搜索）
                  in: query
                  name: device_no
                  schema:
                    description: 设备号（模糊搜索）
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoEnterpriseDeviceListResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 企业设备列表（H5）
            tags:
                - H5-企业设备
    /api/h5/devices/{device_id}:
        get:
            parameters:
                - description: 设备ID
                  in: path
                  name: device_id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoEnterpriseDeviceDetailResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取设备详情（H5）
            tags:
                - H5-企业设备
    /api/h5/devices/{device_id}/cards/{card_id}/resume:
        post:
            parameters:
                - description: 设备ID
                  in: path
                  name: device_id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
                - description: 卡ID
                  in: path
                  name: card_id
                  required: true
                  schema:
                    description: 卡ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoDeviceCardOperationReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoDeviceCardOperationResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 复机卡（H5）
            tags:
                - H5-企业设备
    /api/h5/devices/{device_id}/cards/{card_id}/suspend:
        post:
            parameters:
                - description: 设备ID
                  in: path
                  name: device_id
                  required: true
                  schema:
                    description: 设备ID
                    minimum: 0
                    type: integer
                - description: 卡ID
                  in: path
                  name: card_id
                  required: true
                  schema:
                    description: 卡ID
                    minimum: 0
                    type: integer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoDeviceCardOperationReq'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoDeviceCardOperationResp'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 停机卡（H5）
            tags:
                - H5-企业设备
    /api/h5/login:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoLoginRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoLoginResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: H5 登录
            tags:
                - H5 认证
    /api/h5/logout:
        post:
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 登出
            tags:
                - H5 认证
    /api/h5/me:
        get:
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoUserInfo'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取当前用户信息
            tags:
                - H5 认证
    /api/h5/orders:
        get:
            parameters:
                - description: 页码
                  in: query
                  name: page
                  schema:
                    description: 页码
                    minimum: 1
                    type: integer
                - description: 每页数量
                  in: query
                  name: page_size
                  schema:
                    description: 每页数量
                    maximum: 100
                    minimum: 1
                    type: integer
                - description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)
                  in: query
                  name: payment_status
                  schema:
                    description: 支付状态 (1:待支付, 2:已支付, 3:已取消, 4:已退款)
                    maximum: 4
                    minimum: 1
                    nullable: true
                    type: integer
                - description: 订单类型 (single_card:单卡购买, device:设备购买)
                  in: query
                  name: order_type
                  schema:
                    description: 订单类型 (single_card:单卡购买, device:设备购买)
                    type: string
                - description: 订单号(精确查询)
                  in: query
                  name: order_no
                  schema:
                    description: 订单号(精确查询)
                    maxLength: 30
                    type: string
                - description: 创建时间起始
                  in: query
                  name: start_time
                  schema:
                    description: 创建时间起始
                    format: date-time
                    nullable: true
                    type: string
                - description: 创建时间结束
                  in: query
                  name: end_time
                  schema:
                    description: 创建时间结束
                    format: date-time
                    nullable: true
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoOrderListResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取订单列表
            tags:
                - H5 订单
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoCreateOrderRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoOrderResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 创建订单
            tags:
                - H5 订单
    /api/h5/orders/{id}:
        get:
            parameters:
                - description: 订单ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 订单ID
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoOrderResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 获取订单详情
            tags:
                - H5 订单
    /api/h5/orders/{id}/wallet-pay:
        post:
            parameters:
                - description: 订单ID
                  in: path
                  name: id
                  required: true
                  schema:
                    description: 订单ID
                    minimum: 0
                    type: integer
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 钱包支付
            tags:
                - H5 订单
    /api/h5/password:
        put:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoChangePasswordRequest'
            responses:
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 未认证或认证已过期
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 无权访问
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            security:
                - BearerAuth: []
            summary: 修改密码
            tags:
                - H5 认证
    /api/h5/refresh-token:
        post:
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DtoRefreshTokenRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/DtoRefreshTokenResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 刷新 Token
            tags:
                - H5 认证
    /health:
        get:
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/RoutesHealthResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 健康检查
            tags:
                - 系统
    /ready:
        get:
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties:
                                    code:
                                        description: 响应码
                                        example: 0
                                        type: integer
                                    data:
                                        $ref: '#/components/schemas/RoutesHealthResponse'
                                    msg:
                                        description: 响应消息
                                        example: success
                                        type: string
                                    timestamp:
                                        description: 时间戳
                                        format: date-time
                                        type: string
                                required:
                                    - code
                                    - msg
                                    - data
                                    - timestamp
                                type: object
                    description: 成功
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 请求参数错误
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ErrorResponse'
                    description: 服务器内部错误
            summary: 就绪检查
            tags:
                - 系统
