Files
web_hghl_server/app/api/proto/playlet_home.go
T
2026-10-26 16:28:14 +08:00

117 lines
5.7 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 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"` // 广告配置
}