basePath: / definitions: consts.ContentStatus: enum: - draft - reviewing - published - unpublished - blocked type: string x-enum-varnames: - ContentStatusDraft - ContentStatusReviewing - ContentStatusPublished - ContentStatusUnpublished - ContentStatusBlocked consts.Currency: enum: - CNY type: string x-enum-varnames: - CurrencyCNY consts.Gender: enum: - male - female - secret type: string x-enum-varnames: - GenderMale - GenderFemale - GenderSecret consts.OrderStatus: enum: - created - paid - refunding - refunded - canceled - failed type: string x-enum-varnames: - OrderStatusCreated - OrderStatusPaid - OrderStatusRefunding - OrderStatusRefunded - OrderStatusCanceled - OrderStatusFailed consts.OrderType: enum: - content_purchase - recharge - withdrawal type: string x-enum-varnames: - OrderTypeContentPurchase - OrderTypeRecharge - OrderTypeWithdrawal consts.Role: enum: - user - super_admin - creator type: string x-enum-varnames: - RoleUser - RoleSuperAdmin - RoleCreator consts.TenantStatus: enum: - pending_verify - verified - banned type: string x-enum-varnames: - TenantStatusPendingVerify - TenantStatusVerified - TenantStatusBanned consts.TenantUserRole: enum: - member - tenant_admin type: string x-enum-varnames: - TenantUserRoleMember - TenantUserRoleTenantAdmin consts.UserStatus: enum: - active - inactive - pending_verify - verified - banned type: string x-enum-varnames: - UserStatusActive - UserStatusInactive - UserStatusPendingVerify - UserStatusVerified - UserStatusBanned dto.AdminContentItem: properties: content: allOf: - $ref: '#/definitions/dto.ContentItem' description: Content 内容摘要信息。 owner: allOf: - $ref: '#/definitions/dto.AdminContentOwnerLite' description: Owner 内容作者用户信息。 price: allOf: - $ref: '#/definitions/dto.ContentPrice' description: Price 内容价格信息。 status_description: description: StatusDescription 状态描述(用于展示)。 type: string tenant: allOf: - $ref: '#/definitions/dto.SuperContentTenantLite' description: Tenant 内容所属租户信息,用于超管列表展示与跳转。 visibility_description: description: VisibilityDescription 可见性描述(用于展示)。 type: string type: object dto.AdminContentOwnerLite: properties: id: description: ID 用户ID。 type: integer roles: description: Roles 用户角色列表。 items: $ref: '#/definitions/consts.Role' type: array status: allOf: - $ref: '#/definitions/consts.UserStatus' description: Status 用户状态。 username: description: Username 用户名。 type: string type: object dto.ApplyForm: properties: avatar: description: Avatar 头像URL。 type: string bio: description: Bio 频道简介。 type: string name: description: Name 频道/创作者名称。 type: string type: object dto.AssetDTO: properties: id: description: ID 资源ID。 type: integer name: description: Name 文件名。 type: string role: description: Role 资源角色(cover/media/preview)。 type: string size: description: Size 文件大小描述。 type: string sort: description: Sort 排序权重。 type: integer type: description: Type 资源类型(image/audio/video)。 type: string url: description: URL 资源访问地址。 type: string type: object dto.Comment: properties: content: description: Content 评论内容。 type: string create_time: description: CreateTime 评论创建时间(RFC3339)。 type: string id: description: ID 评论ID。 type: integer is_liked: description: IsLiked 当前用户是否点赞该评论。 type: boolean likes: description: Likes 评论点赞数。 type: integer reply_to: description: ReplyTo 回复的评论ID(0 表示一级评论)。 type: integer user_avatar: description: UserAvatar 评论用户头像。 type: string user_id: description: UserID 评论用户ID。 type: integer user_nickname: description: UserNickname 评论用户昵称。 type: string type: object dto.CommentCreateForm: properties: content: description: Content 评论正文,不能为空。 type: string reply_to: description: ReplyTo 被回复评论ID(0 表示一级评论)。 type: integer type: object dto.ContentCreateForm: properties: cover_ids: description: CoverIDs 封面资源ID集合。 items: type: integer type: array genre: description: Genre 内容分类/风格。 type: string key: description: Key 音乐调性或主音。 type: string media_ids: description: MediaIDs 媒体资源ID集合(音频/视频/图片)。 items: type: integer type: array price: description: Price 价格(单位元)。 type: number status: description: Status 内容状态(draft/published)。 type: string title: description: Title 内容标题。 type: string type: object dto.ContentDetail: properties: author_avatar: description: AuthorAvatar 作者头像URL。 type: string author_id: description: AuthorID 作者用户ID。 type: integer author_is_following: description: AuthorIsFollowing 当前用户是否关注作者(未登录默认 false)。 type: boolean author_name: description: AuthorName 作者展示名(优先昵称)。 type: string body: description: Body 详细正文/图文内容(文章类可为空)。 type: string cover: description: Cover 封面URL(无封面时为空)。 type: string created_at: description: CreatedAt 创建时间(RFC3339 格式)。 type: string description: description: Description 内容描述(用于详情页摘要)。 type: string genre: description: Genre 内容分类/风格标签。 type: string id: description: ID 内容唯一ID。 type: integer is_favorited: description: IsFavorited 当前用户是否收藏。 type: boolean is_liked: description: IsLiked 当前用户是否点赞。 type: boolean is_purchased: description: IsPurchased 是否已购买(用于内容列表快速判断)。 type: boolean likes: description: Likes 点赞数统计。 type: integer media_urls: description: MediaUrls 关联媒体资源(音频/视频/预览)。 items: $ref: '#/definitions/dto.MediaURL' type: array meta: allOf: - $ref: '#/definitions/dto.Meta' description: Meta 内容元信息(曲风/调性/节拍等)。 price: description: Price 价格(单位元,免费为 0)。 type: number published_at: description: PublishedAt 发布时间,未发布为空。 type: string status: description: Status 内容状态(如 published/unpublished)。 type: string tenant_id: description: TenantID 内容所属租户ID。 type: integer title: description: Title 内容标题。 type: string type: description: Type 内容媒体类型(video/audio/article)。 type: string user_id: description: UserID 内容作者用户ID(与 author_id 同义,便于后台展示)。 type: integer views: description: Views 浏览量统计。 type: integer visibility: description: Visibility 内容可见性(如 public/tenant_only/private)。 type: string type: object dto.ContentEditDTO: properties: assets: description: Assets 资源列表(封面/媒体)。 items: $ref: '#/definitions/dto.AssetDTO' type: array description: description: Description 内容简介。 type: string enable_trial: description: EnableTrial 是否开启试读/试听。 type: boolean genre: description: Genre 内容分类。 type: string id: description: ID 内容ID。 type: integer key: description: Key 音乐调性或主音。 type: string preview_seconds: description: PreviewSeconds 试看/试听秒数。 type: integer price: description: Price 价格(单位元)。 type: number status: description: Status 内容状态。 type: string title: description: Title 内容标题。 type: string type: object dto.ContentItem: properties: author_avatar: description: AuthorAvatar 作者头像URL。 type: string author_id: description: AuthorID 作者用户ID。 type: integer author_is_following: description: AuthorIsFollowing 当前用户是否关注作者(未登录默认 false)。 type: boolean author_name: description: AuthorName 作者展示名(优先昵称)。 type: string cover: description: Cover 封面URL(无封面时为空)。 type: string created_at: description: CreatedAt 创建时间(RFC3339 格式)。 type: string genre: description: Genre 内容分类/风格标签。 type: string id: description: ID 内容唯一ID。 type: integer is_purchased: description: IsPurchased 是否已购买(用于内容列表快速判断)。 type: boolean likes: description: Likes 点赞数统计。 type: integer price: description: Price 价格(单位元,免费为 0)。 type: number published_at: description: PublishedAt 发布时间,未发布为空。 type: string status: description: Status 内容状态(如 published/unpublished)。 type: string tenant_id: description: TenantID 内容所属租户ID。 type: integer title: description: Title 内容标题。 type: string type: description: Type 内容媒体类型(video/audio/article)。 type: string user_id: description: UserID 内容作者用户ID(与 author_id 同义,便于后台展示)。 type: integer views: description: Views 浏览量统计。 type: integer visibility: description: Visibility 内容可见性(如 public/tenant_only/private)。 type: string type: object dto.ContentPrice: properties: currency: description: Currency 币种(CNY 等)。 type: string discount_end_at: description: DiscountEndAt 折扣结束时间(RFC3339)。 type: string discount_start_at: description: DiscountStartAt 折扣开始时间(RFC3339)。 type: string discount_type: description: DiscountType 折扣类型(amount/percent)。 type: string discount_value: description: DiscountValue 折扣值(amount=元,percent=百分比)。 type: number price_amount: description: PriceAmount 原价金额(单位元)。 type: number type: object dto.ContentUpdateForm: properties: cover_ids: description: CoverIDs 封面资源ID集合。 items: type: integer type: array genre: description: Genre 内容分类/风格。 type: string is_pinned: description: IsPinned 是否置顶。 type: boolean key: description: Key 音乐调性或主音。 type: string media_ids: description: MediaIDs 媒体资源ID集合。 items: type: integer type: array price: description: Price 价格(单位元,nil 表示不修改)。 type: number status: description: Status 内容状态(draft/published)。 type: string title: description: Title 内容标题(为空表示不修改)。 type: string type: object dto.DashboardStats: properties: new_messages: description: NewMessages 新消息数量。 type: integer pending_refunds: description: PendingRefunds 待处理退款数量。 type: integer total_followers: allOf: - $ref: '#/definitions/dto.IntStatItem' description: TotalFollowers 粉丝总数统计。 total_revenue: allOf: - $ref: '#/definitions/dto.FloatStatItem' description: TotalRevenue 累计收入统计(单位元)。 type: object dto.FloatStatItem: properties: trend: description: Trend 环比/同比变化比例。 type: number value: description: Value 统计数值(浮点)。 type: number type: object dto.IntStatItem: properties: trend: description: Trend 环比/同比变化比例。 type: number value: description: Value 统计数值。 type: integer type: object dto.MediaURL: properties: duration: description: Duration 媒体时长(秒),无时长则为 0。 type: integer type: description: Type 媒体类型(audio/video/image/preview)。 type: string url: description: URL 媒体资源地址。 type: string type: object dto.Meta: properties: beat: description: Beat 节拍信息(如 4/4)。 type: string key: description: Key 音乐调性或主音。 type: string role: description: Role 内容角色/定位(如 demo/主稿)。 type: string type: object dto.Notification: properties: content: description: Content 通知内容。 type: string id: description: ID 通知ID。 type: integer read: description: Read 是否已读。 type: boolean time: description: Time 发送时间(RFC3339)。 type: string title: description: Title 通知标题。 type: string type: description: Type 通知类型(system/order/interaction)。 type: string type: object dto.OptionsResponse: properties: content_genre: description: ContentGenre 内容类型/分类选项。 items: $ref: '#/definitions/requests.KV' type: array content_status: description: ContentStatus 内容状态选项。 items: $ref: '#/definitions/requests.KV' type: array type: object dto.Order: properties: amount: description: Amount 实付金额(单位元)。 type: number buyer_avatar: description: BuyerAvatar 买家头像URL。 type: string buyer_name: description: BuyerName 买家昵称。 type: string cover: description: Cover 订单封面图。 type: string create_time: description: CreateTime 创建时间(RFC3339)。 type: string id: description: ID 订单ID。 type: integer is_virtual: description: IsVirtual 是否虚拟订单。 type: boolean items: description: Items 订单内容明细。 items: $ref: '#/definitions/dto.ContentItem' type: array pay_time: description: PayTime 支付时间(RFC3339)。 type: string quantity: description: Quantity 内容数量。 type: integer status: description: Status 订单状态。 type: string status_description: description: StatusDescription 订单状态描述。 type: string tenant_id: description: TenantID 内容所属租户ID。 type: integer tenant_name: description: TenantName 租户名称。 type: string title: description: Title 订单标题(用于列表展示)。 type: string type: description: Type 订单类型(内容购买/充值等)。 type: string type_description: description: TypeDescription 订单类型描述。 type: string type: object dto.OrderBuyerLite: properties: id: description: ID 买家用户ID。 type: integer username: description: Username 买家用户名。 type: string type: object dto.OrderCreateForm: properties: content_id: description: ContentID 内容ID。 type: integer idempotency_key: description: IdempotencyKey 幂等键(同一业务请求需保持一致)。 type: string quantity: description: Quantity 购买数量(默认 1)。 type: integer sku: description: Sku 规格标识(可选)。 type: string user_coupon_id: description: UserCouponID 用户券ID(可选)。 type: integer type: object dto.OrderCreateResponse: properties: order_id: description: OrderID 创建成功的订单ID。 type: integer type: object dto.OrderPayForm: properties: method: description: Method 支付方式(wechat/alipay/balance)。 type: string type: object dto.OrderPayResponse: properties: pay_params: description: PayParams 支付参数(透传给前端)。 type: string type: object dto.OrderStatisticsResponse: properties: by_status: description: ByStatus 按状态聚合统计。 items: $ref: '#/definitions/dto.OrderStatisticsRow' type: array total_amount_paid_sum: description: TotalAmountPaidSum 实付总额(分)。 type: integer total_count: description: TotalCount 订单总数。 type: integer type: object dto.OrderStatisticsRow: properties: amount_paid_sum: description: AmountPaidSum 该状态实付总额(分)。 type: integer count: description: Count 该状态订单数量。 type: integer status: allOf: - $ref: '#/definitions/consts.OrderStatus' description: Status 订单状态。 status_description: description: StatusDescription 状态描述(用于展示)。 type: string type: object dto.OrderStatusResponse: properties: status: description: Status 订单状态(unpaid/paid/completed 等)。 type: string type: object dto.OrderTenantLite: properties: code: description: Code 租户编码。 type: string id: description: ID 租户ID。 type: integer name: description: Name 租户名称。 type: string type: object dto.PayoutAccount: properties: account: description: Account 收款账号。 type: string id: description: ID 收款账户ID。 type: integer name: description: Name 账户名称/开户行。 type: string realname: description: Realname 收款人姓名。 type: string type: description: Type 账户类型(bank/alipay)。 type: string type: object dto.RealNameForm: properties: id_card: description: IDCard 身份证号。 type: string realname: description: Realname 真实姓名。 type: string type: object dto.RechargeForm: properties: amount: description: Amount 充值金额(单位元)。 type: number method: description: Method 充值方式(wechat/alipay)。 type: string type: object dto.RechargeResponse: properties: order_id: description: OrderID 充值订单ID。 type: integer pay_params: description: PayParams 支付参数(透传给前端)。 type: string type: object dto.RefundForm: properties: action: description: Action 处理动作(accept/reject)。 type: string reason: description: Reason 退款原因/备注。 type: string type: object dto.Settings: properties: avatar: description: Avatar 头像URL。 type: string bio: description: Bio 频道简介。 type: string cover: description: Cover 封面图URL。 type: string description: description: Description 详细描述。 type: string id: description: ID 租户/频道ID。 type: integer name: description: Name 频道名称。 type: string type: object dto.Stats: properties: contents: description: Contents 内容数。 type: integer followers: description: Followers 粉丝数。 type: integer likes: description: Likes 累计点赞数。 type: integer type: object dto.SuperContentTenantLite: properties: code: description: Code 租户编码。 type: string id: description: ID 租户ID。 type: integer name: description: Name 租户名称。 type: string type: object dto.SuperOrderDetail: properties: buyer: allOf: - $ref: '#/definitions/dto.OrderBuyerLite' description: Buyer 订单买家信息。 order: allOf: - $ref: '#/definitions/dto.SuperOrderItem' description: Order 订单详细信息。 tenant: allOf: - $ref: '#/definitions/dto.OrderTenantLite' description: Tenant 订单所属租户信息。 type: object dto.SuperOrderItem: properties: amount_discount: description: AmountDiscount 优惠金额(分)。 type: integer amount_original: description: AmountOriginal 原价金额(分)。 type: integer amount_paid: description: AmountPaid 实付金额(分)。 type: integer buyer: allOf: - $ref: '#/definitions/dto.OrderBuyerLite' description: Buyer 订单买家信息。 created_at: description: CreatedAt 创建时间(RFC3339)。 type: string currency: allOf: - $ref: '#/definitions/consts.Currency' description: Currency 币种。 id: description: ID 订单ID。 type: integer items: description: Items 订单明细行,用于展示具体内容与金额拆分。 items: $ref: '#/definitions/dto.SuperOrderItemLine' type: array paid_at: description: PaidAt 支付时间(RFC3339)。 type: string refunded_at: description: RefundedAt 退款时间(RFC3339)。 type: string snapshot: description: Snapshot 订单快照,包含下单时的关键参数与定价信息,便于审计回溯。 status: allOf: - $ref: '#/definitions/consts.OrderStatus' description: Status 订单状态。 status_description: description: StatusDescription 状态描述(用于展示)。 type: string tenant: allOf: - $ref: '#/definitions/dto.OrderTenantLite' description: Tenant 订单所属租户信息。 type: allOf: - $ref: '#/definitions/consts.OrderType' description: Type 订单类型。 updated_at: description: UpdatedAt 更新时间(RFC3339)。 type: string type: object dto.SuperOrderItemLine: properties: amount_paid: description: AmountPaid 该明细实付金额(分)。 type: integer content_id: description: ContentID 购买的内容ID。 type: integer id: description: ID 订单明细ID。 type: integer snapshot: description: Snapshot 明细快照,用于展示内容标题等历史信息。 type: object dto.SuperOrderRefundForm: properties: force: description: Force 是否强制退款(忽略部分约束)。 type: boolean idempotency_key: description: IdempotencyKey 幂等键(防止重复提交)。 type: string reason: description: Reason 退款原因说明。 type: string type: object dto.SuperTenantContentStatusUpdateForm: properties: status: allOf: - $ref: '#/definitions/consts.ContentStatus' description: Status 目标内容状态。 enum: - unpublished - blocked required: - status type: object dto.SuperTenantUserItem: properties: tenant_user: allOf: - $ref: '#/definitions/dto.TenantUser' description: TenantUser 租户成员关系信息。 user: allOf: - $ref: '#/definitions/dto.SuperUserLite' description: User 用户信息。 type: object dto.SuperUserLite: properties: created_at: description: CreatedAt 创建时间(RFC3339)。 type: string id: description: ID 用户ID。 type: integer roles: description: Roles 用户角色列表。 items: $ref: '#/definitions/consts.Role' type: array status: allOf: - $ref: '#/definitions/consts.UserStatus' description: Status 用户状态。 status_description: description: StatusDescription 状态描述(用于展示)。 type: string updated_at: description: UpdatedAt 更新时间(RFC3339)。 type: string username: description: Username 用户名(用于识别/展示)。 type: string verified_at: description: VerifiedAt 实名认证时间(RFC3339)。 type: string type: object dto.TenantAdminUserLite: properties: id: description: ID 用户ID。 type: integer username: description: Username 用户名。 type: string type: object dto.TenantCreateForm: properties: admin_user_id: description: AdminUserID 租户管理员用户ID。 type: integer code: description: Code 租户编码(唯一)。 maxLength: 64 type: string duration: description: Duration 租户有效期(天)。 enum: - 7 - 30 - 90 - 180 - 365 type: integer name: description: Name 租户名称。 maxLength: 128 type: string required: - admin_user_id - code - duration - name type: object dto.TenantExpireUpdateForm: properties: duration: description: Duration 延长有效期(天)。 enum: - 7 - 30 - 90 - 180 - 365 type: integer required: - duration type: object dto.TenantItem: properties: admin_users: description: AdminUsers 租户管理员列表。 items: $ref: '#/definitions/dto.TenantAdminUserLite' type: array code: description: Code 租户编码。 type: string config: description: Config 租户配置项(占位/需要结构化时替换)。 items: type: integer type: array created_at: description: CreatedAt 创建时间(RFC3339)。 type: string expired_at: description: ExpiredAt 租户过期时间(RFC3339)。 type: string id: description: ID 租户ID。 type: integer income_amount_paid_sum: description: IncomeAmountPaidSum 累计实收金额(分)。 type: integer name: description: Name 租户名称。 type: string owner: allOf: - $ref: '#/definitions/dto.TenantOwnerUserLite' description: Owner 租户所有者信息。 status: allOf: - $ref: '#/definitions/consts.TenantStatus' description: Status 租户状态。 status_description: description: StatusDescription 租户状态描述。 type: string updated_at: description: UpdatedAt 更新时间(RFC3339)。 type: string user_count: description: UserCount 租户成员数量。 type: integer user_id: description: UserID 创建者用户ID。 type: integer users: description: Users 租户成员列表(用于详情展示)。 items: $ref: '#/definitions/dto.SuperUserLite' type: array uuid: description: UUID 租户UUID。 type: string type: object dto.TenantOwnerUserLite: properties: id: description: ID 用户ID。 type: integer username: description: Username 用户名。 type: string type: object dto.TenantProfile: properties: avatar: description: Avatar 头像URL。 type: string bio: description: Bio 简短简介。 type: string cert_type: description: CertType 认证类型(personal/enterprise)。 type: string cover: description: Cover 封面图URL。 type: string description: description: Description 详细描述。 type: string id: description: ID 租户ID。 type: integer is_following: description: IsFollowing 当前用户是否关注。 type: boolean name: description: Name 租户名称。 type: string stats: allOf: - $ref: '#/definitions/dto.Stats' description: Stats 统计信息。 type: object dto.TenantStatusUpdateForm: properties: status: allOf: - $ref: '#/definitions/consts.TenantStatus' description: Status 目标租户状态。 required: - status type: object dto.TenantUser: properties: created_at: description: CreatedAt 创建时间(RFC3339)。 type: string id: description: ID 成员记录ID。 type: integer role: description: Role 成员角色列表。 items: $ref: '#/definitions/consts.TenantUserRole' type: array status: allOf: - $ref: '#/definitions/consts.UserStatus' description: Status 成员状态。 tenant_id: description: TenantID 租户ID。 type: integer updated_at: description: UpdatedAt 更新时间(RFC3339)。 type: string user_id: description: UserID 用户ID。 type: integer type: object dto.Topic: properties: count: description: Count 专题内内容数量。 type: integer cover: description: Cover 专题封面图。 type: string id: description: ID 专题ID。 type: integer tag: description: Tag 专题标签(用于筛选/展示)。 type: string title: description: Title 专题标题。 type: string type: object dto.Transaction: properties: amount: description: Amount 发生金额(单位元)。 type: number date: description: Date 发生时间(RFC3339)。 type: string id: description: ID 流水ID。 type: integer title: description: Title 流水标题/描述。 type: string type: description: Type 流水类型(income/expense)。 type: string type: object dto.UploadCompleteForm: properties: upload_id: description: UploadID 分片上传ID。 type: string type: object dto.UploadInitForm: properties: filename: description: Filename 原始文件名。 type: string hash: description: Hash 文件 MD5 哈希(用于秒传校验)。 type: string mime_type: description: MimeType 文件类型(如 image/png)。 type: string size: description: Size 文件大小(字节)。 type: integer type: description: Type 业务类型(如 cover/media/avatar)。 type: string type: object dto.UploadInitResponse: properties: chunk_size: description: ChunkSize 分片大小(字节)。 type: integer key: description: Key 对象存储Key(S3 直传使用)。 type: string upload_id: description: UploadID 分片上传ID。 type: string type: object dto.UploadResult: properties: filename: description: Filename 原始文件名。 type: string id: description: ID 媒体资源ID。 type: integer mime_type: description: MimeType 文件类型(如 image/png)。 type: string size: description: Size 文件大小(字节)。 type: integer url: description: URL 访问地址(包含签名或公共URL)。 type: string type: object dto.UserCouponItem: properties: coupon_id: description: CouponID 券模板ID。 type: integer description: description: Description 券描述。 type: string end_at: description: EndAt 过期时间(RFC3339)。 type: string id: description: ID 用户券ID。 type: integer min_order_amount: description: MinOrderAmount 使用门槛金额(分)。 type: integer start_at: description: StartAt 生效时间(RFC3339)。 type: string status: description: Status 当前状态(可用/已用/过期)。 type: string title: description: Title 券标题。 type: string type: description: Type 券类型(满减/折扣)。 type: string value: description: Value 券面值(分/百分比)。 type: integer type: object dto.UserItem: properties: balance: description: Balance 账户可用余额(分)。 type: integer balance_frozen: description: BalanceFrozen 账户冻结余额(分)。 type: integer created_at: description: CreatedAt 创建时间(RFC3339)。 type: string id: description: ID 用户ID。 type: integer joined_tenant_count: description: JoinedTenantCount 加入的租户数量。 type: integer owned_tenant_count: description: OwnedTenantCount 拥有的租户数量。 type: integer roles: description: Roles 用户角色列表。 items: $ref: '#/definitions/consts.Role' type: array status: allOf: - $ref: '#/definitions/consts.UserStatus' description: Status 用户状态。 status_description: description: StatusDescription 状态描述(用于展示)。 type: string updated_at: description: UpdatedAt 更新时间(RFC3339)。 type: string username: description: Username 用户名(用于识别/展示)。 type: string verified_at: description: VerifiedAt 实名认证时间(RFC3339)。 type: string type: object dto.UserRolesUpdateForm: properties: roles: description: Roles 目标角色列表(至少包含 1 个)。 items: $ref: '#/definitions/consts.Role' minItems: 1 type: array required: - roles type: object dto.UserStatistics: properties: count: description: Count 该状态用户数量。 type: integer status: allOf: - $ref: '#/definitions/consts.UserStatus' description: Status 用户状态枚举。 status_description: description: StatusDescription 状态描述(用于展示)。 type: string type: object dto.UserStatusUpdateForm: properties: status: allOf: - $ref: '#/definitions/consts.UserStatus' description: Status 目标用户状态。 required: - status type: object dto.UserTenantItem: properties: code: description: Code 租户编码。 type: string expired_at: description: ExpiredAt 租户过期时间(RFC3339)。 type: string joined_at: description: JoinedAt 加入时间(RFC3339)。 type: string member_status: allOf: - $ref: '#/definitions/consts.UserStatus' description: MemberStatus 成员状态。 member_status_description: description: MemberStatusDescription 成员状态描述。 type: string name: description: Name 租户名称。 type: string owner: allOf: - $ref: '#/definitions/dto.TenantOwnerUserLite' description: Owner 租户所有者用户信息。 role: description: Role 用户在该租户内的角色列表。 items: $ref: '#/definitions/consts.TenantUserRole' type: array tenant_id: description: TenantID 租户ID。 type: integer tenant_status: allOf: - $ref: '#/definitions/consts.TenantStatus' description: TenantStatus 租户状态。 tenant_status_description: description: TenantStatusDescription 租户状态描述。 type: string type: object dto.UserUpdate: properties: avatar: description: Avatar 头像URL。 type: string bio: description: Bio 个人简介。 type: string birthday: description: Birthday 生日(YYYY-MM-DD)。 type: string gender: allOf: - $ref: '#/definitions/consts.Gender' description: Gender 性别(枚举)。 location: allOf: - $ref: '#/definitions/quyun_v2_app_http_v1_dto.Location' description: Location 地区信息(省/市)。 nickname: description: Nickname 昵称。 type: string type: object dto.WalletResponse: properties: balance: description: Balance 账户余额(单位元)。 type: number transactions: description: Transactions 交易流水列表。 items: $ref: '#/definitions/dto.Transaction' type: array type: object dto.WithdrawForm: properties: account_id: description: AccountID 收款账户ID。 type: integer amount: description: Amount 提现金额(单位元)。 type: number method: description: Method 提现方式(wallet/external)。 type: string type: object quyun_v2_app_http_super_v1_dto.Location: properties: city: description: City 城市名称。 type: string province: description: Province 省份名称。 type: string type: object quyun_v2_app_http_super_v1_dto.LoginForm: properties: password: description: Password 登录密码(加密传输)。 type: string username: description: Username 登录用户名。 type: string type: object quyun_v2_app_http_super_v1_dto.LoginResponse: properties: token: description: Token 登录后签发的 JWT。 type: string user: allOf: - $ref: '#/definitions/quyun_v2_app_http_super_v1_dto.User' description: User 当前登录用户信息。 type: object quyun_v2_app_http_super_v1_dto.User: properties: avatar: description: Avatar 头像URL。 type: string balance: description: Balance 账户余额(元)。 type: number bio: description: Bio 用户简介。 type: string birthday: description: Birthday 生日(YYYY-MM-DD)。 type: string gender: allOf: - $ref: '#/definitions/consts.Gender' description: Gender 性别(male/female/secret)。 id: description: ID 用户ID。 type: integer is_real_name_verified: description: IsRealNameVerified 是否已实名认证。 type: boolean location: allOf: - $ref: '#/definitions/quyun_v2_app_http_super_v1_dto.Location' description: Location 所在地(省/市)。 nickname: description: Nickname 用户昵称。 type: string phone: description: Phone 手机号。 type: string points: description: Points 用户积分。 type: integer type: object quyun_v2_app_http_v1_dto.Location: properties: city: description: City 城市名称。 type: string province: description: Province 省份名称。 type: string type: object quyun_v2_app_http_v1_dto.LoginForm: properties: otp: description: OTP 短信验证码。 type: string phone: description: Phone 手机号(登录账号)。 type: string type: object quyun_v2_app_http_v1_dto.LoginResponse: properties: token: description: Token 登录成功后的 JWT。 type: string user: allOf: - $ref: '#/definitions/quyun_v2_app_http_v1_dto.User' description: User 当前登录用户信息。 type: object quyun_v2_app_http_v1_dto.SendOTPForm: properties: phone: description: Phone 手机号(用于发送验证码)。 type: string type: object quyun_v2_app_http_v1_dto.User: properties: avatar: description: Avatar 头像URL。 type: string balance: description: Balance 余额(单位元)。 type: number bio: description: Bio 个人简介。 type: string birthday: description: Birthday 生日(YYYY-MM-DD)。 type: string gender: allOf: - $ref: '#/definitions/consts.Gender' description: Gender 性别(枚举)。 id: description: ID 用户ID。 type: integer is_real_name_verified: description: IsRealNameVerified 是否完成实名认证。 type: boolean location: allOf: - $ref: '#/definitions/quyun_v2_app_http_v1_dto.Location' description: Location 地区信息(省/市)。 nickname: description: Nickname 昵称。 type: string phone: description: Phone 绑定手机号。 type: string points: description: Points 积分余额。 type: integer type: object requests.KV: properties: key: description: Key is a machine-readable value, usually an enum string. type: string value: description: Value is the label payload, often a human-readable string. type: object requests.Pager: properties: items: description: Items is the paged result list; concrete type depends on endpoint. limit: description: Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10). type: integer page: description: Page is 1-based page index; values <= 0 are normalized to 1. type: integer total: description: Total is the total number of items matching current filter (before paging). type: integer type: object v1.WebhookForm: properties: external_id: type: string order_id: type: integer type: object externalDocs: description: OpenAPI url: https://swagger.io/resources/open-api/ host: localhost:8080 info: contact: email: support@swagger.io name: UserName url: http://www.swagger.io/support description: Multi-tenant media platform backend API. license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html termsOfService: http://swagger.io/terms/ title: ApiDoc version: "1.0" paths: /super/v1/auth/login: post: consumes: - application/json description: Login parameters: - description: Login form in: body name: form required: true schema: $ref: '#/definitions/quyun_v2_app_http_super_v1_dto.LoginForm' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/quyun_v2_app_http_super_v1_dto.LoginResponse' summary: Login tags: - Auth /super/v1/auth/token: get: consumes: - application/json description: Check token produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/quyun_v2_app_http_super_v1_dto.LoginResponse' summary: Check token tags: - Auth /super/v1/contents: get: consumes: - application/json description: List contents parameters: - description: Page number in: query name: page type: integer - description: Page size in: query name: limit type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.AdminContentItem' type: array type: object summary: List contents tags: - Content /super/v1/orders: get: consumes: - application/json description: List orders parameters: - description: Page number in: query name: page type: integer - description: Page size in: query name: limit type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.SuperOrderItem' type: array type: object summary: List orders tags: - Order /super/v1/orders/{id}: get: consumes: - application/json description: Get order parameters: - description: Order ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.SuperOrderDetail' summary: Get order tags: - Order /super/v1/orders/{id}/refund: post: consumes: - application/json description: Refund order parameters: - description: Order ID format: int64 in: path name: id required: true type: integer - description: Refund form in: body name: form required: true schema: $ref: '#/definitions/dto.SuperOrderRefundForm' produces: - application/json responses: "200": description: Refunded schema: type: string summary: Refund order tags: - Order /super/v1/orders/statistics: get: consumes: - application/json description: Order statistics produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.OrderStatisticsResponse' summary: Order statistics tags: - Order /super/v1/tenants: get: consumes: - application/json description: List tenants parameters: - description: Page number in: query name: page type: integer - description: Page size in: query name: limit type: integer - description: Name in: query name: name type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.TenantItem' type: array type: object summary: List tenants tags: - Tenant post: consumes: - application/json description: Create tenant parameters: - description: Create form in: body name: form required: true schema: $ref: '#/definitions/dto.TenantCreateForm' produces: - application/json responses: "200": description: Created schema: type: string summary: Create tenant tags: - Tenant /super/v1/tenants/{id}: get: consumes: - application/json description: Get tenant parameters: - description: Tenant ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.TenantItem' summary: Get tenant tags: - Tenant patch: consumes: - application/json description: Update tenant expire parameters: - description: Tenant ID format: int64 in: path name: id required: true type: integer - description: Update form in: body name: form required: true schema: $ref: '#/definitions/dto.TenantExpireUpdateForm' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update tenant expire tags: - Tenant /super/v1/tenants/{id}/status: patch: consumes: - application/json description: Update tenant status parameters: - description: Tenant ID format: int64 in: path name: id required: true type: integer - description: Update form in: body name: form required: true schema: $ref: '#/definitions/dto.TenantStatusUpdateForm' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update tenant status tags: - Tenant /super/v1/tenants/{tenantID}/contents: get: consumes: - application/json description: List contents by tenant parameters: - description: Tenant ID format: int64 in: path name: tenantID required: true type: integer - description: Page number in: query name: page type: integer - description: Page size in: query name: limit type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.AdminContentItem' type: array type: object summary: List tenant contents tags: - Content /super/v1/tenants/{tenantID}/contents/{contentID}/status: patch: consumes: - application/json description: Update content status parameters: - description: Tenant ID format: int64 in: path name: tenantID required: true type: integer - description: Content ID format: int64 in: path name: contentID required: true type: integer - description: Update form in: body name: form required: true schema: $ref: '#/definitions/dto.SuperTenantContentStatusUpdateForm' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update content status tags: - Content /super/v1/tenants/{tenantID}/users: get: consumes: - application/json description: List tenant users parameters: - description: Tenant ID format: int64 in: path name: tenantID required: true type: integer - description: Page number in: query name: page type: integer - description: Page size in: query name: limit type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.SuperTenantUserItem' type: array type: object summary: List tenant users tags: - Tenant /super/v1/tenants/statuses: get: consumes: - application/json description: Tenant statuses produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/requests.KV' type: array summary: Tenant statuses tags: - Tenant /super/v1/users: get: consumes: - application/json description: List users parameters: - description: Page number in: query name: page type: integer - description: Page size in: query name: limit type: integer - description: Username in: query name: username type: string produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.UserItem' type: array type: object summary: List users tags: - User /super/v1/users/{id}: get: consumes: - application/json description: Get user parameters: - description: User ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.UserItem' summary: Get user tags: - User /super/v1/users/{id}/roles: patch: consumes: - application/json description: Update user roles parameters: - description: User ID format: int64 in: path name: id required: true type: integer - description: Update form in: body name: form required: true schema: $ref: '#/definitions/dto.UserRolesUpdateForm' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update user roles tags: - User /super/v1/users/{id}/status: patch: consumes: - application/json description: Update user status parameters: - description: User ID format: int64 in: path name: id required: true type: integer - description: Update form in: body name: form required: true schema: $ref: '#/definitions/dto.UserStatusUpdateForm' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update user status tags: - User /super/v1/users/{id}/tenants: get: consumes: - application/json description: List tenants joined by user parameters: - description: User ID format: int64 in: path name: id required: true type: integer - description: Page number in: query name: page type: integer - description: Page size in: query name: limit type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.UserTenantItem' type: array type: object summary: List user tenants tags: - User /super/v1/users/statistics: get: consumes: - application/json description: User statistics produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.UserStatistics' type: array summary: User statistics tags: - User /super/v1/users/statuses: get: consumes: - application/json description: User statuses produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/requests.KV' type: array summary: User statuses tags: - User /t/{tenantCode}/v1/auth/login: post: consumes: - application/json description: Login or register user using phone number and OTP parameters: - description: Login form in: body name: form required: true schema: $ref: '#/definitions/quyun_v2_app_http_v1_dto.LoginForm' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/quyun_v2_app_http_v1_dto.LoginResponse' summary: Login or Register with OTP tags: - Auth /t/{tenantCode}/v1/auth/otp: post: consumes: - application/json description: Send OTP to phone number parameters: - description: Phone number in: body name: form required: true schema: $ref: '#/definitions/quyun_v2_app_http_v1_dto.SendOTPForm' produces: - application/json responses: "200": description: OTP sent schema: type: string summary: Send OTP tags: - Auth /t/{tenantCode}/v1/comments/{id}/like: post: consumes: - application/json description: Like a comment parameters: - description: Comment ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: Liked schema: type: string summary: Like comment tags: - Content /t/{tenantCode}/v1/common/options: get: consumes: - application/json description: Get global options (enums) produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.OptionsResponse' summary: Get options tags: - Common /t/{tenantCode}/v1/contents: get: consumes: - application/json description: List contents with filtering and pagination parameters: - description: Search keyword in: query name: keyword type: string - description: Genre in: query name: genre type: string - description: Filter by creator format: int64 in: query name: tenant_id type: integer - description: Sort order enum: - latest - hot - price_asc in: query name: sort type: string - description: Page number in: query name: page type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.ContentItem' type: array type: object summary: List contents tags: - Content /t/{tenantCode}/v1/contents/{id}: get: consumes: - application/json description: Get content detail by ID parameters: - description: Content ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.ContentDetail' summary: Get content detail tags: - Content /t/{tenantCode}/v1/contents/{id}/comments: get: consumes: - application/json description: Get comments for a content parameters: - description: Content ID format: int64 in: path name: id required: true type: integer - description: Page number in: query name: page type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.Comment' type: array type: object summary: Get comments tags: - Content post: consumes: - application/json description: Post a comment to a content parameters: - description: Content ID format: int64 in: path name: id required: true type: integer - description: Comment form in: body name: form required: true schema: $ref: '#/definitions/dto.CommentCreateForm' produces: - application/json responses: "200": description: Comment created schema: type: string summary: Post comment tags: - Content /t/{tenantCode}/v1/contents/{id}/favorite: delete: parameters: - description: Content ID format: int64 in: path name: id required: true type: integer responses: "200": description: Unfavorited schema: type: string summary: Remove favorite tags: - Content post: parameters: - description: Content ID format: int64 in: path name: id required: true type: integer responses: "200": description: Favorited schema: type: string summary: Add favorite tags: - Content /t/{tenantCode}/v1/contents/{id}/like: delete: parameters: - description: Content ID format: int64 in: path name: id required: true type: integer responses: "200": description: Unliked schema: type: string summary: Remove like tags: - Content post: parameters: - description: Content ID format: int64 in: path name: id required: true type: integer responses: "200": description: Liked schema: type: string summary: Add like tags: - Content /t/{tenantCode}/v1/creator/apply: post: consumes: - application/json description: Apply to become a creator parameters: - description: Apply form in: body name: form required: true schema: $ref: '#/definitions/dto.ApplyForm' produces: - application/json responses: "200": description: Application submitted schema: type: string summary: Apply creator tags: - CreatorCenter /t/{tenantCode}/v1/creator/contents: get: consumes: - application/json description: List creator contents parameters: - description: Status in: query name: status type: string - description: Genre in: query name: genre type: string - description: Keyword in: query name: keyword type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.ContentItem' type: array summary: List contents tags: - CreatorCenter post: consumes: - application/json description: Create/Publish content parameters: - description: Content form in: body name: form required: true schema: $ref: '#/definitions/dto.ContentCreateForm' produces: - application/json responses: "200": description: Created schema: type: string summary: Create content tags: - CreatorCenter /t/{tenantCode}/v1/creator/contents/{id}: delete: consumes: - application/json description: Delete content parameters: - description: Content ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: Deleted schema: type: string summary: Delete content tags: - CreatorCenter get: consumes: - application/json description: Get content details for edit parameters: - description: Content ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.ContentEditDTO' summary: Get content tags: - CreatorCenter put: consumes: - application/json description: Update content parameters: - description: Content ID format: int64 in: path name: id required: true type: integer - description: Update form in: body name: form required: true schema: $ref: '#/definitions/dto.ContentUpdateForm' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update content tags: - CreatorCenter /t/{tenantCode}/v1/creator/dashboard: get: consumes: - application/json description: Get creator dashboard stats produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.DashboardStats' summary: Dashboard stats tags: - CreatorCenter /t/{tenantCode}/v1/creator/orders: get: consumes: - application/json description: List sales orders parameters: - description: Status in: query name: status type: string - description: Keyword in: query name: keyword type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.Order' type: array summary: List sales orders tags: - CreatorCenter /t/{tenantCode}/v1/creator/orders/{id}/refund: post: consumes: - application/json description: Process refund parameters: - description: Order ID format: int64 in: path name: id required: true type: integer - description: Refund form in: body name: form required: true schema: $ref: '#/definitions/dto.RefundForm' produces: - application/json responses: "200": description: Processed schema: type: string summary: Process refund tags: - CreatorCenter /t/{tenantCode}/v1/creator/payout-accounts: delete: consumes: - application/json description: Remove payout account parameters: - description: Account ID format: int64 in: query name: id required: true type: integer produces: - application/json responses: "200": description: Removed schema: type: string summary: Remove payout account tags: - CreatorCenter get: consumes: - application/json description: List payout accounts produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.PayoutAccount' type: array summary: List payout accounts tags: - CreatorCenter post: consumes: - application/json description: Add payout account parameters: - description: Account form in: body name: form required: true schema: $ref: '#/definitions/dto.PayoutAccount' produces: - application/json responses: "200": description: Added schema: type: string summary: Add payout account tags: - CreatorCenter /t/{tenantCode}/v1/creator/settings: get: consumes: - application/json description: Get channel settings produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.Settings' summary: Get settings tags: - CreatorCenter put: consumes: - application/json description: Update channel settings parameters: - description: Settings form in: body name: form required: true schema: $ref: '#/definitions/dto.Settings' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update settings tags: - CreatorCenter /t/{tenantCode}/v1/creator/withdraw: post: consumes: - application/json description: Request withdrawal parameters: - description: Withdraw form in: body name: form required: true schema: $ref: '#/definitions/dto.WithdrawForm' produces: - application/json responses: "200": description: Withdrawal requested schema: type: string summary: Request withdrawal tags: - CreatorCenter /t/{tenantCode}/v1/creators/{id}/contents: get: consumes: - application/json description: List contents of a specific creator parameters: - description: Creator User ID format: int64 in: path name: id required: true type: integer - description: Page in: query name: page type: integer - description: Limit in: query name: limit type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/requests.Pager' summary: List creator contents tags: - TenantPublic /t/{tenantCode}/v1/me: get: consumes: - application/json description: Get current user profile produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/quyun_v2_app_http_v1_dto.User' summary: Get user profile tags: - UserCenter put: consumes: - application/json description: Update user profile parameters: - description: Update form in: body name: form required: true schema: $ref: '#/definitions/dto.UserUpdate' produces: - application/json responses: "200": description: Updated schema: type: string summary: Update user profile tags: - UserCenter /t/{tenantCode}/v1/me/coupons: get: consumes: - application/json description: List my coupons parameters: - description: Status (unused, used, expired) in: query name: status type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.UserCouponItem' type: array summary: List coupons tags: - UserCenter /t/{tenantCode}/v1/me/favorites: get: consumes: - application/json description: Get favorites produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.ContentItem' type: array summary: Get favorites tags: - UserCenter post: consumes: - application/json description: Add to favorites parameters: - description: Content ID format: int64 in: query name: contentId required: true type: integer produces: - application/json responses: "200": description: Added schema: type: string summary: Add favorite tags: - UserCenter /t/{tenantCode}/v1/me/favorites/{contentId}: delete: consumes: - application/json description: Remove from favorites parameters: - description: Content ID format: int64 in: path name: contentId required: true type: integer produces: - application/json responses: "200": description: Removed schema: type: string summary: Remove favorite tags: - UserCenter /t/{tenantCode}/v1/me/following: get: consumes: - application/json description: Get following tenants produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.TenantProfile' type: array summary: Get following tags: - UserCenter /t/{tenantCode}/v1/me/library: get: consumes: - application/json description: Get purchased content produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.ContentItem' type: array summary: Get library tags: - UserCenter /t/{tenantCode}/v1/me/likes: get: consumes: - application/json description: Get liked contents produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.ContentItem' type: array summary: Get likes tags: - UserCenter post: consumes: - application/json description: Like content parameters: - description: Content ID format: int64 in: query name: contentId required: true type: integer produces: - application/json responses: "200": description: Liked schema: type: string summary: Like content tags: - UserCenter /t/{tenantCode}/v1/me/likes/{contentId}: delete: consumes: - application/json description: Unlike content parameters: - description: Content ID format: int64 in: path name: contentId required: true type: integer produces: - application/json responses: "200": description: Unliked schema: type: string summary: Unlike content tags: - UserCenter /t/{tenantCode}/v1/me/notifications: get: consumes: - application/json description: Get notifications parameters: - description: Type enum(all, system, order, audit, interaction) in: query name: type type: string - description: Page number in: query name: page type: integer produces: - application/json responses: "200": description: OK schema: allOf: - $ref: '#/definitions/requests.Pager' - properties: items: items: $ref: '#/definitions/dto.Notification' type: array type: object summary: Get notifications tags: - UserCenter /t/{tenantCode}/v1/me/notifications/{id}/read: post: consumes: - application/json parameters: - description: Notification ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: type: string summary: Mark as read tags: - UserCenter /t/{tenantCode}/v1/me/notifications/read-all: post: consumes: - application/json produces: - application/json responses: "200": description: OK schema: type: string summary: Mark all as read tags: - UserCenter /t/{tenantCode}/v1/me/orders: get: consumes: - application/json description: List user orders parameters: - description: Status enum(all, unpaid, completed, refund) in: query name: status type: string produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.Order' type: array summary: List orders tags: - UserCenter /t/{tenantCode}/v1/me/orders/{id}: get: consumes: - application/json description: Get user order detail parameters: - description: Order ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.Order' summary: Get order detail tags: - UserCenter /t/{tenantCode}/v1/me/realname: post: consumes: - application/json description: Submit real-name authentication parameters: - description: Realname form in: body name: form required: true schema: $ref: '#/definitions/dto.RealNameForm' produces: - application/json responses: "200": description: Submitted schema: type: string summary: Realname auth tags: - UserCenter /t/{tenantCode}/v1/me/wallet: get: consumes: - application/json description: Get wallet balance and transactions produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.WalletResponse' summary: Get wallet tags: - UserCenter /t/{tenantCode}/v1/me/wallet/recharge: post: consumes: - application/json description: Recharge wallet parameters: - description: Recharge form in: body name: form required: true schema: $ref: '#/definitions/dto.RechargeForm' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.RechargeResponse' summary: Recharge wallet tags: - UserCenter /t/{tenantCode}/v1/media-assets/{id}: delete: consumes: - application/json description: Delete media asset parameters: - description: Asset ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: type: string summary: Delete media asset tags: - Common /t/{tenantCode}/v1/orders: post: consumes: - application/json description: Create Order parameters: - description: Create form in: body name: form required: true schema: $ref: '#/definitions/dto.OrderCreateForm' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.OrderCreateResponse' summary: Create Order tags: - Transaction /t/{tenantCode}/v1/orders/{id}/pay: post: consumes: - application/json description: Pay for order parameters: - description: Order ID format: int64 in: path name: id required: true type: integer - description: Pay form in: body name: form required: true schema: $ref: '#/definitions/dto.OrderPayForm' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.OrderPayResponse' summary: Pay for order tags: - Transaction /t/{tenantCode}/v1/orders/{id}/status: get: consumes: - application/json description: Check order payment status parameters: - description: Order ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.OrderStatusResponse' summary: Check order status tags: - Transaction /t/{tenantCode}/v1/storage/{any}: get: consumes: - application/json parameters: - description: any path in: path name: any type: string - description: Expiry in: query name: expires required: true type: string - description: Signature in: query name: sign required: true type: string produces: - application/octet-stream responses: "200": description: OK schema: type: file summary: Download file tags: - Storage put: consumes: - application/octet-stream parameters: - description: any path in: path name: any type: string - description: Expiry in: query name: expires required: true type: string - description: Signature in: query name: sign required: true type: string produces: - application/json responses: "200": description: success schema: type: string summary: Upload file tags: - Storage /t/{tenantCode}/v1/tenants: get: consumes: - application/json description: Search tenants parameters: - description: Keyword in: query name: keyword type: string - description: Page in: query name: page type: integer - description: Limit in: query name: limit type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/requests.Pager' summary: List tenants tags: - TenantPublic /t/{tenantCode}/v1/tenants/{id}: get: consumes: - application/json description: Get tenant public profile parameters: - description: Tenant ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.TenantProfile' summary: Get tenant profile tags: - TenantPublic /t/{tenantCode}/v1/tenants/{id}/follow: delete: consumes: - application/json description: Unfollow a tenant parameters: - description: Tenant ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: Unfollowed schema: type: string summary: Unfollow tenant tags: - TenantPublic post: consumes: - application/json description: Follow a tenant parameters: - description: Tenant ID format: int64 in: path name: id required: true type: integer produces: - application/json responses: "200": description: Followed schema: type: string summary: Follow tenant tags: - TenantPublic /t/{tenantCode}/v1/topics: get: consumes: - application/json description: List curated topics produces: - application/json responses: "200": description: OK schema: items: $ref: '#/definitions/dto.Topic' type: array summary: List topics tags: - Content /t/{tenantCode}/v1/upload: post: consumes: - multipart/form-data description: Upload file parameters: - description: File in: formData name: file required: true type: file - description: Type 上传资源类型(如 cover/media/avatar)。 in: formData name: type type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.UploadResult' summary: Upload file tags: - Common /t/{tenantCode}/v1/upload/{uploadId}: delete: consumes: - application/json description: Abort multipart upload parameters: - description: Upload ID in: path name: uploadId required: true type: string produces: - application/json responses: "200": description: OK schema: type: string summary: Abort upload tags: - Common /t/{tenantCode}/v1/upload/check: get: consumes: - application/json description: Check if file hash exists parameters: - description: File MD5 Hash in: query name: hash required: true type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.UploadResult' summary: Check hash tags: - Common /t/{tenantCode}/v1/upload/complete: post: consumes: - application/json description: Complete multipart upload parameters: - description: Complete form in: body name: form required: true schema: $ref: '#/definitions/dto.UploadCompleteForm' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.UploadResult' summary: Complete upload tags: - Common /t/{tenantCode}/v1/upload/init: post: consumes: - application/json description: Initialize multipart upload parameters: - description: Init form in: body name: form required: true schema: $ref: '#/definitions/dto.UploadInitForm' produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/dto.UploadInitResponse' summary: Init multipart upload tags: - Common /t/{tenantCode}/v1/upload/part: post: consumes: - multipart/form-data description: Upload a part parameters: - description: Part File in: formData name: file required: true type: file - description: PartNumber 分片序号(从 1 开始)。 in: formData name: part_number type: integer - description: UploadID 分片上传ID。 in: formData name: upload_id type: string produces: - application/json responses: "200": description: OK schema: type: string summary: Upload part tags: - Common /t/{tenantCode}/v1/webhook/payment/notify: post: consumes: - application/json description: Payment Webhook parameters: - description: Webhook Data in: body name: form required: true schema: $ref: '#/definitions/v1.WebhookForm' produces: - application/json responses: "200": description: success schema: type: string summary: Payment Webhook tags: - Transaction securityDefinitions: BasicAuth: type: basic swagger: "2.0"