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

125 lines
3.2 KiB
Go

package dto
import "quyun/v2/app/requests"
type ApplyForm struct {
Name string `json:"name"`
Bio string `json:"bio"`
Avatar string `json:"avatar"`
}
type DashboardStats struct {
TotalFollowers IntStatItem `json:"total_followers"`
TotalRevenue FloatStatItem `json:"total_revenue"`
PendingRefunds int `json:"pending_refunds"`
NewMessages int `json:"new_messages"`
}
type IntStatItem struct {
Value int `json:"value"`
Trend float64 `json:"trend"`
}
type FloatStatItem struct {
Value float64 `json:"value"`
Trend float64 `json:"trend"`
}
type ContentCreateForm struct {
Title string `json:"title"`
Genre string `json:"genre"`
Key string `json:"key"`
Price float64 `json:"price"`
CoverIDs []string `json:"cover_ids"`
MediaIDs []string `json:"media_ids"`
}
type ContentUpdateForm struct {
Title string `json:"title"`
Genre string `json:"genre"`
Key string `json:"key"`
Price *float64 `json:"price"`
Status string `json:"status"`
CoverIDs []string `json:"cover_ids"`
MediaIDs []string `json:"media_ids"`
}
type ContentEditDTO struct {
ID string `json:"id"`
Title string `json:"title"`
Genre string `json:"genre"`
Key string `json:"key"`
Description string `json:"description"`
Status string `json:"status"`
Price float64 `json:"price"`
EnableTrial bool `json:"enable_trial"`
PreviewSeconds int `json:"preview_seconds"`
Assets []AssetDTO `json:"assets"`
}
type CreatorContentItem struct {
ID string `json:"id"`
Title string `json:"title"`
Genre string `json:"genre"`
Key string `json:"key"`
Price float64 `json:"price"`
Views int `json:"views"`
Likes int `json:"likes"`
Cover string `json:"cover"`
ImageCount int `json:"image_count"`
VideoCount int `json:"video_count"`
AudioCount int `json:"audio_count"`
Status string `json:"status"`
IsPurchased bool `json:"is_purchased"`
}
type AssetDTO struct {
ID string `json:"id"`
Role string `json:"role"`
Type string `json:"type"`
URL string `json:"url"`
Name string `json:"name"`
Size string `json:"size"`
Sort int `json:"sort"`
}
type CreatorContentListFilter struct {
requests.Pagination
Status *string `query:"status"`
Genre *string `query:"genre"`
Keyword *string `query:"keyword"`
}
type CreatorOrderListFilter struct {
requests.Pagination
Status *string `query:"status"`
Keyword *string `query:"keyword"`
}
type RefundForm struct {
Action string `json:"action"` // accept, reject
Reason string `json:"reason"`
}
type Settings struct {
Name string `json:"name"`
Bio string `json:"bio"`
Avatar string `json:"avatar"`
Cover string `json:"cover"`
Description string `json:"description"`
}
type PayoutAccount struct {
ID string `json:"id"`
Type string `json:"type"` // bank, alipay
Name string `json:"name"`
Account string `json:"account"`
Realname string `json:"realname"`
}
type WithdrawForm struct {
Amount float64 `json:"amount"`
Method string `json:"method"` // wallet, external
AccountID string `json:"account_id"`
}