Files
quyun-v2/backend/app/http/v1/dto/creator.go

230 lines
6.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package dto
import (
"quyun/v2/app/requests"
"quyun/v2/pkg/consts"
)
type ApplyForm struct {
// Name 频道/创作者名称。
Name string `json:"name"`
// Bio 频道简介。
Bio string `json:"bio"`
// Avatar 头像URL。
Avatar string `json:"avatar"`
}
type DashboardStats struct {
// TotalFollowers 粉丝总数统计。
TotalFollowers IntStatItem `json:"total_followers"`
// TotalRevenue 累计收入统计(单位元)。
TotalRevenue FloatStatItem `json:"total_revenue"`
// PendingRefunds 待处理退款数量。
PendingRefunds int `json:"pending_refunds"`
// NewMessages 新消息数量。
NewMessages int `json:"new_messages"`
}
type IntStatItem struct {
// Value 统计数值。
Value int `json:"value"`
// Trend 环比/同比变化比例。
Trend float64 `json:"trend"`
}
type FloatStatItem struct {
// Value 统计数值(浮点)。
Value float64 `json:"value"`
// Trend 环比/同比变化比例。
Trend float64 `json:"trend"`
}
type ContentCreateForm struct {
// Title 内容标题。
Title string `json:"title"`
// Genre 内容分类/风格。
Genre string `json:"genre"`
// Key 音乐调性或主音。
Key string `json:"key"`
// Price 价格(单位元)。
Price float64 `json:"price"`
// Status 内容状态draft/published
Status string `json:"status"`
// CoverIDs 封面资源ID集合。
CoverIDs []int64 `json:"cover_ids"`
// MediaIDs 媒体资源ID集合音频/视频/图片)。
MediaIDs []int64 `json:"media_ids"`
}
type ContentUpdateForm struct {
// Title 内容标题(为空表示不修改)。
Title string `json:"title"`
// Genre 内容分类/风格。
Genre string `json:"genre"`
// Key 音乐调性或主音。
Key string `json:"key"`
// Price 价格单位元nil 表示不修改)。
Price *float64 `json:"price"`
// Status 内容状态draft/published
Status string `json:"status"`
// IsPinned 是否置顶。
IsPinned *bool `json:"is_pinned"`
// CoverIDs 封面资源ID集合。
CoverIDs []int64 `json:"cover_ids"`
// MediaIDs 媒体资源ID集合。
MediaIDs []int64 `json:"media_ids"`
}
type ContentEditDTO struct {
// ID 内容ID。
ID int64 `json:"id"`
// Title 内容标题。
Title string `json:"title"`
// Genre 内容分类。
Genre string `json:"genre"`
// Key 音乐调性或主音。
Key string `json:"key"`
// Description 内容简介。
Description string `json:"description"`
// Status 内容状态。
Status string `json:"status"`
// Price 价格(单位元)。
Price float64 `json:"price"`
// EnableTrial 是否开启试读/试听。
EnableTrial bool `json:"enable_trial"`
// PreviewSeconds 试看/试听秒数。
PreviewSeconds int `json:"preview_seconds"`
// Assets 资源列表(封面/媒体)。
Assets []AssetDTO `json:"assets"`
}
type CreatorContentItem struct {
// ID 内容ID。
ID int64 `json:"id"`
// Title 内容标题。
Title string `json:"title"`
// Genre 内容分类。
Genre string `json:"genre"`
// Key 音乐调性或主音。
Key string `json:"key"`
// Price 价格(单位元)。
Price float64 `json:"price"`
// Views 浏览量。
Views int `json:"views"`
// Likes 点赞数。
Likes int `json:"likes"`
// Cover 封面URL。
Cover string `json:"cover"`
// ImageCount 图片素材数量。
ImageCount int `json:"image_count"`
// VideoCount 视频素材数量。
VideoCount int `json:"video_count"`
// AudioCount 音频素材数量。
AudioCount int `json:"audio_count"`
// Status 内容状态。
Status string `json:"status"`
// Visibility 可见性。
Visibility string `json:"visibility"`
// CreatedAt 创建时间RFC3339
CreatedAt string `json:"created_at"`
// IsPinned 是否置顶。
IsPinned bool `json:"is_pinned"`
// IsPurchased 是否已购买。
IsPurchased bool `json:"is_purchased"`
}
type AssetDTO struct {
// ID 资源ID。
ID int64 `json:"id"`
// Role 资源角色cover/media/preview
Role string `json:"role"`
// Type 资源类型image/audio/video
Type string `json:"type"`
// URL 资源访问地址。
URL string `json:"url"`
// Name 文件名。
Name string `json:"name"`
// Size 文件大小描述。
Size string `json:"size"`
// Sort 排序权重。
Sort int `json:"sort"`
}
type CreatorContentListFilter struct {
// Pagination 分页参数page/limit
requests.Pagination
// Status 内容状态过滤。
Status *string `query:"status"`
// Visibility 可见性过滤。
Visibility *string `query:"visibility"`
// Genre 分类筛选。
Genre *string `query:"genre"`
// Key 调性筛选。
Key *string `query:"key"`
// Keyword 关键词搜索(标题/简介)。
Keyword *string `query:"keyword"`
// Sort 排序规则。
Sort *string `query:"sort"`
}
type CreatorOrderListFilter struct {
// Pagination 分页参数page/limit
requests.Pagination
// Status 订单状态过滤。
Status *string `query:"status"`
// Keyword 关键词搜索(订单号/内容标题)。
Keyword *string `query:"keyword"`
}
type RefundForm struct {
// Action 处理动作accept/reject
Action string `json:"action"`
// Reason 退款原因/备注。
Reason string `json:"reason"`
}
type Settings struct {
// ID 租户/频道ID。
ID int64 `json:"id"`
// Name 频道名称。
Name string `json:"name"`
// Bio 频道简介。
Bio string `json:"bio"`
// Avatar 头像URL。
Avatar string `json:"avatar"`
// Cover 封面图URL。
Cover string `json:"cover"`
// Description 详细描述。
Description string `json:"description"`
}
type PayoutAccount struct {
// ID 收款账户ID。
ID int64 `json:"id"`
// Type 账户类型bank/alipay
Type string `json:"type"`
// Name 账户名称/开户行。
Name string `json:"name"`
// Account 收款账号。
Account string `json:"account"`
// Realname 收款人姓名。
Realname string `json:"realname"`
// Status 审核状态pending/approved/rejected
Status consts.PayoutAccountStatus `json:"status"`
// StatusDescription 审核状态描述(用于展示)。
StatusDescription string `json:"status_description"`
// ReviewedAt 审核时间RFC3339
ReviewedAt string `json:"reviewed_at"`
// ReviewReason 审核说明/驳回原因。
ReviewReason string `json:"review_reason"`
}
type WithdrawForm struct {
// Amount 提现金额(单位元)。
Amount float64 `json:"amount"`
// Method 提现方式wallet/external
Method string `json:"method"`
// AccountID 收款账户ID。
AccountID int64 `json:"account_id"`
}