package dto import "quyun/v2/app/requests" type ContentListFilter struct { requests.Pagination Keyword *string `query:"keyword"` Genre *string `query:"genre"` TenantID *string `query:"tenantId"` Sort *string `query:"sort"` IsPinned *bool `query:"is_pinned"` } type ContentItem struct { ID string `json:"id"` Title string `json:"title"` Cover string `json:"cover"` Genre string `json:"genre"` Type string `json:"type"` // video, audio, article Price float64 `json:"price"` AuthorID string `json:"author_id"` AuthorName string `json:"author_name"` AuthorAvatar string `json:"author_avatar"` Views int `json:"views"` Likes int `json:"likes"` IsPurchased bool `json:"is_purchased"` } type ContentDetail struct { ContentItem Description string `json:"description"` Body string `json:"body"` MediaUrls []MediaURL `json:"media_urls"` Meta Meta `json:"meta"` IsLiked bool `json:"is_liked"` IsFavorited bool `json:"is_favorited"` } type MediaURL struct { Type string `json:"type"` URL string `json:"url"` Duration int `json:"duration"` } type Meta struct { Role string `json:"role"` Key string `json:"key"` Beat string `json:"beat"` } type Comment struct { ID string `json:"id"` Content string `json:"content"` UserID string `json:"user_id"` UserNickname string `json:"user_nickname"` UserAvatar string `json:"user_avatar"` CreateTime string `json:"create_time"` Likes int `json:"likes"` IsLiked bool `json:"is_liked"` ReplyTo string `json:"reply_to"` } type CommentCreateForm struct { Content string `json:"content"` ReplyTo string `json:"reply_to"` } type Topic struct { ID string `json:"id"` Title string `json:"title"` Cover string `json:"cover"` Tag string `json:"tag"` Count int `json:"count"` } type ContentPrice struct { Currency string `json:"currency"` PriceAmount float64 `json:"price_amount"` DiscountType string `json:"discount_type"` DiscountValue float64 `json:"discount_value"` DiscountStartAt string `json:"discount_start_at"` DiscountEndAt string `json:"discount_end_at"` }