3516 lines
84 KiB
YAML
3516 lines
84 KiB
YAML
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:
|
||
$ref: '#/definitions/dto.ContentItem'
|
||
owner:
|
||
$ref: '#/definitions/dto.AdminContentOwnerLite'
|
||
price:
|
||
$ref: '#/definitions/dto.ContentPrice'
|
||
status_description:
|
||
type: string
|
||
tenant:
|
||
allOf:
|
||
- $ref: '#/definitions/dto.SuperContentTenantLite'
|
||
description: Tenant 内容所属租户信息,用于超管列表展示与跳转。
|
||
visibility_description:
|
||
type: string
|
||
type: object
|
||
dto.AdminContentOwnerLite:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
roles:
|
||
items:
|
||
$ref: '#/definitions/consts.Role'
|
||
type: array
|
||
status:
|
||
$ref: '#/definitions/consts.UserStatus'
|
||
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:
|
||
type: integer
|
||
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:
|
||
items:
|
||
$ref: '#/definitions/dto.OrderStatisticsRow'
|
||
type: array
|
||
total_amount_paid_sum:
|
||
type: integer
|
||
total_count:
|
||
type: integer
|
||
type: object
|
||
dto.OrderStatisticsRow:
|
||
properties:
|
||
amount_paid_sum:
|
||
type: integer
|
||
count:
|
||
type: integer
|
||
status:
|
||
$ref: '#/definitions/consts.OrderStatus'
|
||
status_description:
|
||
type: string
|
||
type: object
|
||
dto.OrderStatusResponse:
|
||
properties:
|
||
status:
|
||
description: Status 订单状态(unpaid/paid/completed 等)。
|
||
type: string
|
||
type: object
|
||
dto.OrderTenantLite:
|
||
properties:
|
||
code:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
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:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
type: object
|
||
dto.SuperOrderDetail:
|
||
properties:
|
||
buyer:
|
||
$ref: '#/definitions/dto.OrderBuyerLite'
|
||
order:
|
||
allOf:
|
||
- $ref: '#/definitions/dto.SuperOrderItem'
|
||
description: Using SuperOrderItem as base, extend if needed
|
||
tenant:
|
||
$ref: '#/definitions/dto.OrderTenantLite'
|
||
type: object
|
||
dto.SuperOrderItem:
|
||
properties:
|
||
amount_discount:
|
||
type: integer
|
||
amount_original:
|
||
type: integer
|
||
amount_paid:
|
||
type: integer
|
||
buyer:
|
||
$ref: '#/definitions/dto.OrderBuyerLite'
|
||
created_at:
|
||
type: string
|
||
currency:
|
||
$ref: '#/definitions/consts.Currency'
|
||
id:
|
||
type: integer
|
||
items:
|
||
description: Items 订单明细行,用于展示具体内容与金额拆分。
|
||
items:
|
||
$ref: '#/definitions/dto.SuperOrderItemLine'
|
||
type: array
|
||
paid_at:
|
||
type: string
|
||
refunded_at:
|
||
type: string
|
||
snapshot:
|
||
description: Snapshot 订单快照,包含下单时的关键参数与定价信息,便于审计回溯。
|
||
status:
|
||
$ref: '#/definitions/consts.OrderStatus'
|
||
status_description:
|
||
type: string
|
||
tenant:
|
||
$ref: '#/definitions/dto.OrderTenantLite'
|
||
type:
|
||
$ref: '#/definitions/consts.OrderType'
|
||
updated_at:
|
||
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:
|
||
type: boolean
|
||
idempotency_key:
|
||
type: string
|
||
reason:
|
||
type: string
|
||
type: object
|
||
dto.SuperTenantContentStatusUpdateForm:
|
||
properties:
|
||
status:
|
||
allOf:
|
||
- $ref: '#/definitions/consts.ContentStatus'
|
||
enum:
|
||
- unpublished
|
||
- blocked
|
||
required:
|
||
- status
|
||
type: object
|
||
dto.SuperTenantUserItem:
|
||
properties:
|
||
tenant_user:
|
||
$ref: '#/definitions/dto.TenantUser'
|
||
user:
|
||
$ref: '#/definitions/dto.SuperUserLite'
|
||
type: object
|
||
dto.SuperUserLite:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
roles:
|
||
items:
|
||
$ref: '#/definitions/consts.Role'
|
||
type: array
|
||
status:
|
||
$ref: '#/definitions/consts.UserStatus'
|
||
status_description:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
username:
|
||
type: string
|
||
verified_at:
|
||
type: string
|
||
type: object
|
||
dto.TenantAdminUserLite:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
username:
|
||
type: string
|
||
type: object
|
||
dto.TenantCreateForm:
|
||
properties:
|
||
admin_user_id:
|
||
type: integer
|
||
code:
|
||
maxLength: 64
|
||
type: string
|
||
duration:
|
||
enum:
|
||
- 7
|
||
- 30
|
||
- 90
|
||
- 180
|
||
- 365
|
||
type: integer
|
||
name:
|
||
maxLength: 128
|
||
type: string
|
||
required:
|
||
- admin_user_id
|
||
- code
|
||
- duration
|
||
- name
|
||
type: object
|
||
dto.TenantExpireUpdateForm:
|
||
properties:
|
||
duration:
|
||
enum:
|
||
- 7
|
||
- 30
|
||
- 90
|
||
- 180
|
||
- 365
|
||
type: integer
|
||
required:
|
||
- duration
|
||
type: object
|
||
dto.TenantItem:
|
||
properties:
|
||
admin_users:
|
||
items:
|
||
$ref: '#/definitions/dto.TenantAdminUserLite'
|
||
type: array
|
||
code:
|
||
type: string
|
||
config:
|
||
description: Replace with actual config struct if needed
|
||
items:
|
||
type: integer
|
||
type: array
|
||
created_at:
|
||
type: string
|
||
expired_at:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
income_amount_paid_sum:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
owner:
|
||
$ref: '#/definitions/dto.TenantOwnerUserLite'
|
||
status:
|
||
$ref: '#/definitions/consts.TenantStatus'
|
||
status_description:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
user_count:
|
||
type: integer
|
||
user_id:
|
||
type: integer
|
||
users:
|
||
items:
|
||
$ref: '#/definitions/dto.SuperUserLite'
|
||
type: array
|
||
uuid:
|
||
type: string
|
||
type: object
|
||
dto.TenantOwnerUserLite:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
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:
|
||
$ref: '#/definitions/consts.TenantStatus'
|
||
required:
|
||
- status
|
||
type: object
|
||
dto.TenantUser:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
role:
|
||
items:
|
||
$ref: '#/definitions/consts.TenantUserRole'
|
||
type: array
|
||
status:
|
||
$ref: '#/definitions/consts.UserStatus'
|
||
tenant_id:
|
||
type: integer
|
||
updated_at:
|
||
type: string
|
||
user_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:
|
||
type: integer
|
||
balance_frozen:
|
||
type: integer
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
joined_tenant_count:
|
||
type: integer
|
||
owned_tenant_count:
|
||
type: integer
|
||
roles:
|
||
items:
|
||
$ref: '#/definitions/consts.Role'
|
||
type: array
|
||
status:
|
||
$ref: '#/definitions/consts.UserStatus'
|
||
status_description:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
username:
|
||
type: string
|
||
verified_at:
|
||
type: string
|
||
type: object
|
||
dto.UserRolesUpdateForm:
|
||
properties:
|
||
roles:
|
||
items:
|
||
$ref: '#/definitions/consts.Role'
|
||
minItems: 1
|
||
type: array
|
||
required:
|
||
- roles
|
||
type: object
|
||
dto.UserStatistics:
|
||
properties:
|
||
count:
|
||
type: integer
|
||
status:
|
||
$ref: '#/definitions/consts.UserStatus'
|
||
status_description:
|
||
type: string
|
||
type: object
|
||
dto.UserStatusUpdateForm:
|
||
properties:
|
||
status:
|
||
$ref: '#/definitions/consts.UserStatus'
|
||
required:
|
||
- status
|
||
type: object
|
||
dto.UserTenantItem:
|
||
properties:
|
||
code:
|
||
type: string
|
||
expired_at:
|
||
type: string
|
||
joined_at:
|
||
type: string
|
||
member_status:
|
||
$ref: '#/definitions/consts.UserStatus'
|
||
member_status_description:
|
||
type: string
|
||
name:
|
||
type: string
|
||
owner:
|
||
$ref: '#/definitions/dto.TenantOwnerUserLite'
|
||
role:
|
||
items:
|
||
$ref: '#/definitions/consts.TenantUserRole'
|
||
type: array
|
||
tenant_id:
|
||
type: integer
|
||
tenant_status:
|
||
$ref: '#/definitions/consts.TenantStatus'
|
||
tenant_status_description:
|
||
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:
|
||
type: string
|
||
province:
|
||
type: string
|
||
type: object
|
||
quyun_v2_app_http_super_v1_dto.LoginForm:
|
||
properties:
|
||
password:
|
||
type: string
|
||
username:
|
||
type: string
|
||
type: object
|
||
quyun_v2_app_http_super_v1_dto.LoginResponse:
|
||
properties:
|
||
token:
|
||
type: string
|
||
user:
|
||
$ref: '#/definitions/quyun_v2_app_http_super_v1_dto.User'
|
||
type: object
|
||
quyun_v2_app_http_super_v1_dto.User:
|
||
properties:
|
||
avatar:
|
||
type: string
|
||
balance:
|
||
type: number
|
||
bio:
|
||
type: string
|
||
birthday:
|
||
description: YYYY-MM-DD
|
||
type: string
|
||
gender:
|
||
$ref: '#/definitions/consts.Gender'
|
||
id:
|
||
type: integer
|
||
is_real_name_verified:
|
||
type: boolean
|
||
location:
|
||
$ref: '#/definitions/quyun_v2_app_http_super_v1_dto.Location'
|
||
nickname:
|
||
type: string
|
||
phone:
|
||
type: string
|
||
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: Tenant 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"
|