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