117 lines
5.7 KiB
Go
117 lines
5.7 KiB
Go
package proto
|
||
|
||
import "videoweb/pub/pubdef"
|
||
|
||
// HomePlayletResponse 短剧首页数据。
|
||
type HomePlayletResponse struct {
|
||
HomeBannerData []*HomeBannerData `json:"homeBannerData"`
|
||
Modules []*HomeModuleData `json:"modules"`
|
||
Announcements []*AnnouncementItem `json:"announcements"`
|
||
Advitise AdvitiseData `json:"advitise"`
|
||
SeoInfo *pubdef.SeoValue `json:"seoInfo,omitempty"`
|
||
}
|
||
|
||
type HomeBannerData struct {
|
||
PlayletData
|
||
ShowOnBanner bool `json:"showOnBanner"`
|
||
Banner string `json:"banner"`
|
||
}
|
||
|
||
// HomeModuleData.List 根据 dataType 返回短剧或视频列表。
|
||
type HomeModuleData struct {
|
||
Id int64 `json:"id"`
|
||
Slug string `json:"slug"` // 页面路径标识
|
||
Title string `json:"title"`
|
||
Desc string `json:"desc"`
|
||
Label string `json:"label"`
|
||
Style string `json:"style"`
|
||
CardBackgroundImage string `json:"cardBackgroundImage"`
|
||
ModuleType int64 `json:"moduleType"`
|
||
DataType int64 `json:"dataType"`
|
||
RecommendType int64 `json:"recommendType"`
|
||
CategoryId int64 `json:"categoryId"`
|
||
Rank int64 `json:"rank"`
|
||
List any `json:"list"`
|
||
TopicList []*HomeTopicData `json:"topicList"`
|
||
}
|
||
|
||
type HomeTopicData struct {
|
||
Id int64 `json:"id"`
|
||
Name string `json:"name"`
|
||
Slug string `json:"slug"`
|
||
Icon string `json:"icon"`
|
||
Rank int64 `json:"rank"`
|
||
PlayletCount int64 `json:"playletCount"`
|
||
VideoCount int64 `json:"videoCount,omitempty"`
|
||
List any `json:"list"`
|
||
SeoInfo pubdef.SeoValue `json:"seoInfo"`
|
||
}
|
||
|
||
type HomeVideoData struct {
|
||
Id int64 `json:"id"`
|
||
Title string `json:"title"`
|
||
Slug string `json:"slug"`
|
||
Cover string `json:"cover"`
|
||
Desc string `json:"desc"`
|
||
Tags []int64 `json:"tags"`
|
||
WatchNum int64 `json:"watchNum"`
|
||
LikeNum int64 `json:"likeNum"`
|
||
SeoInfo pubdef.SeoValue `json:"seoInfo"`
|
||
}
|
||
|
||
type AnnouncementItem struct {
|
||
Id int64 `json:"id"`
|
||
Title string `json:"title"`
|
||
Content string `json:"content"`
|
||
}
|
||
|
||
// PlayletHomeConfigListReq 首页配置内容分页请求
|
||
type PlayletHomeConfigListReq struct {
|
||
// pageNum 默认 1,pageSize 默认 20、最大 100
|
||
pubdef.Page
|
||
Id int64 `form:"id" json:"id"` // 首页配置 ID,与 slug 二选一
|
||
Slug string `form:"slug" json:"slug"` // 页面路径标识,和 ID 同时传时优先使用
|
||
}
|
||
|
||
// PlayletHomeConfigListResp 首页配置内容分页响应
|
||
type PlayletHomeConfigListResp struct {
|
||
Config *HomeModuleData `json:"config"` // 当前首页配置,不包含首页预览内容
|
||
TotalCount int64 `json:"totalCount"` // 符合配置条件的内容或专题总数
|
||
PageSize int `json:"pageSize"` // 每页条数
|
||
PageNum int `json:"pageNum"` // 当前页码
|
||
List any `json:"list"` // 普通模块内容,dataType 为 1 时是短剧,为 2 时是视频
|
||
TopicList []*HomeTopicData `json:"topicList"` // 专题模块内容,短剧按题材分组,视频按分类分组
|
||
Advitise AdvitiseData `json:"advitise"` // 广告配置
|
||
}
|
||
|
||
// PlayletTopicDetailReq 短剧题材或视频分类专题详情请求
|
||
type PlayletTopicDetailReq struct {
|
||
// pageNum 默认 1,pageSize 默认 12、最大 100
|
||
pubdef.Page
|
||
Id int64 `form:"id" json:"id"` // 专题 ID,dataType 为 1 时是题材 ID,为 2 时是视频分类 ID
|
||
TopicSlug string `form:"topicSlug" json:"topicSlug"` // 专题 slug,非空时优先于 id
|
||
DataType int64 `form:"dataType" json:"dataType"` // 数据类型,1 为短剧题材,2 为视频分类,默认 1
|
||
SortType int64 `form:"sortType" json:"sortType"` // 排序方式,1 编辑排序,2 最新,3 最热,默认 1
|
||
}
|
||
|
||
// PlayletTopicDetailResp 短剧题材或视频分类专题详情响应
|
||
type PlayletTopicDetailResp struct {
|
||
Id int64 `json:"id"` // 专题 ID
|
||
DataType int64 `json:"dataType"` // 数据类型,1 为短剧题材,2 为视频分类
|
||
Name string `json:"name"` // 专题名称
|
||
Slug string `json:"slug"` // 专题 slug
|
||
Desc string `json:"desc"` // 专题描述
|
||
Icon string `json:"icon"` // 题材图标地址,视频分类专题为空
|
||
Rank int64 `json:"rank"` // 专题排序值
|
||
PlayletCount int64 `json:"playletCount"` // 已上架短剧数量,视频专题为 0
|
||
VideoCount int64 `json:"videoCount,omitempty"` // 审核通过的视频数量,为 0 时省略
|
||
Covers []string `json:"covers"` // 顶部封面,最多 3 张
|
||
TotalCount int64 `json:"totalCount"` // 专题内符合条件的内容总数
|
||
PageSize int `json:"pageSize"` // 每页条数
|
||
PageNum int `json:"pageNum"` // 当前页码
|
||
List any `json:"list"` // 当前页内容,dataType 为 1 时是短剧,为 2 时是视频
|
||
MoreTopics []*HomeTopicData `json:"moreTopics"` // 同数据类型的其他专题,最多 3 个
|
||
SeoInfo *pubdef.SeoValue `json:"seoInfo"` // 专题 SEO 信息
|
||
Advitise AdvitiseData `json:"advitise"` // 广告配置
|
||
}
|