package proto import ( "time" "videoweb/pub/pubdef" ) // HomePlayletResponse 首页响应 type HomePlayletResponse struct { HomeBannerData []*CommonData `json:"homeBannerData"` // 首页banner短剧信息列表 Modules []*HomeModuleData `json:"modules"` // 首页短剧和题材模块 Announcements []*AnnouncementItem `json:"announcements"` // 启用中的公告,来自独立缓存 Advitise AdvitiseData `json:"advitise"` // 广告 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息(短剧列表页SEO) } // HomeConfigData 首页配置数据 type HomeConfigData struct { Id int64 `json:"id"` // ID Name string `json:"name"` // 名称 Slug string `json:"slug"` // slug,H5 更多页优先用它 Desc string `json:"desc"` // 描述 Keyword []string `json:"keyword"` // 页面关键字 Label string `json:"label"` Style string `json:"style"` CardBackgroundImage string `json:"cardBackgroundImage"` TopicIds []int64 `json:"topicIds"` CategoryId int64 `json:"categoryId"` RecommendType int64 `json:"recommendType"` Type int32 `json:"type"` // 类型 1-短剧 3-题材 Rank int64 `json:"rank"` // 排序,越大越靠前 Limit int64 `json:"limit"` // 首页展示数量 SortType int32 `json:"sortType"` // 短剧模块排序 1-推荐 2-热播 3-最近更新 4-上架时间 5-分类,题材模块预览按专题详情默认排序 Status bool `json:"status"` // 上下架状态 true-上架 false-下架 CreatedAt time.Time `json:"createdAt"` // 创建时间 UpdatedAt time.Time `json:"updatedAt"` // 修改时间 List []*CommonData `json:"list"` // 配置对应短剧集合,type=1时返回 ThemeList []*HomeConfigThemeData `json:"themeList"` // 题材集合,type=3时返回 SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息 } type HomeModuleData struct { Id int64 `json:"id"` Slug string `json:"slug"` Title string `json:"title"` Desc string `json:"desc"` Keyword []string `json:"keyword"` // 页面关键字 Label string `json:"label"` Style string `json:"style"` CardBackgroundImage string `json:"cardBackgroundImage"` ModuleType int32 `json:"moduleType"` // 1 短剧列表,2 题材 DataType int32 `json:"dataType"` // 固定为 1 短剧 RecommendType int64 `json:"recommendType"` CategoryId int64 `json:"categoryId"` Rank int64 `json:"rank"` Limit int64 `json:"limit"` // 实际生效的首页展示数量 SeoInfo pubdef.SeoValue `json:"seoInfo"` // 首页配置表中的SEO信息 List []*CommonData `json:"list"` TopicList []*HomeConfigThemeData `json:"topicList"` } type PlayletHomeConfigListReq struct { pubdef.Page Id int64 `form:"id"` Slug string `form:"slug"` } type PlayletHomeConfigListResp struct { Config *HomeModuleData `json:"config"` TotalCount int64 `json:"totalCount"` PageSize int `json:"pageSize"` PageNum int `json:"pageNum"` List []*CommonData `json:"list"` TopicList []*HomeConfigThemeData `json:"topicList"` Advitise AdvitiseData `json:"advitise"` } // HomeConfigThemeData 首页配置题材数据 type HomeConfigThemeData struct { Id int64 `json:"id"` // 题材ID Name string `json:"name"` // 题材名称 Slug string `json:"slug"` // 题材slug Icon string `json:"icon"` // 题材图标,已拼接图片域名 Rank int64 `json:"rank"` // 排序,越大越靠前 PlayletCount int64 `json:"playletCount"` // 题材下已上架短剧总数 List []*CommonData `json:"list"` // 题材下短剧集合 SeoInfo *SeoInfo `json:"seoInfo"` // 题材对应页面SEO信息 } // AnnouncementItem 首页公告 type AnnouncementItem struct { Id int64 `json:"id"` // 公告ID Title string `json:"title"` // 标题 Content string `json:"content"` // 内容 } // PlayletAllListReq 全部短剧分页请求 type PlayletAllListReq struct { pubdef.Page ThemeId int64 `form:"themeId" json:"themeId"` // 题材ID ThemeSlug string `form:"themeSlug" json:"themeSlug"` // 题材slug,非空时优先按slug解析题材ID UpdateStatus int `form:"updateStatus" json:"updateStatus"` // 更新状态 0-全部 1-连载中 2-已完结 SortType int64 `form:"sortType" json:"sortType"` // 排序 1-最新 2-最热 3-收藏最多 } // PlayletAllListResp 全部短剧分页响应 type PlayletAllListResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []CommonData `json:"list"` // 短剧集合 Advitise AdvitiseData `json:"advitise"` // 广告 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息 } // PlayletHotListReq 热门短剧分页请求 type PlayletHotListReq struct { pubdef.Page ExcludePlayletId int64 `form:"excludePlayletId" json:"excludePlayletId"` // 排除的短剧ID,默认不排除 } // PlayletHotListResp 热门短剧分页响应 type PlayletHotListResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []CommonData `json:"list"` // 短剧集合 } // CommonData 首页通用数据 type CommonData struct { Id int64 `json:"id"` // 短剧id Status int32 `json:"status"` // 状态: 0下架 1上架 IsFeatured bool `json:"isFeatured"` // 是否爆剧(true-是,false-否) IsOriginal bool `json:"isOriginal"` // 是否原创 ShowOriginal bool `json:"showOriginal"` // 页面是否展示原创标识 IsRecommend bool `json:"isRecommend"` // 是否推荐 true-推荐,false-不推荐 IsNew bool `json:"isNew"` // 是否上新,本周内上架为true OperateType int32 `json:"operateType"` // 运营类型 1-短剧 2-漫剧 ShowOnBanner bool `json:"showOnBanner"` // 是否显示在首页banner Banner string `json:"banner"` // banner图,已拼接图片域名 OnlineAt time.Time `json:"onlineAt"` // 上架时间 MediaCreatedAt time.Time `json:"mediaCreatedAt"` // 媒资中心创建时间 MediaUpdatedAt time.Time `json:"mediaUpdatedAt"` // 媒资中心更新时间 ThemeIds []int64 `json:"themeIds"` // 题材ID集合 ThemeNames []string `json:"themeNames"` // 题材名称集合 ThemeSlugs []string `json:"themeSlugs"` // 题材slug集合 CategoryIds []int64 `json:"categoryIds"` // 分类ID集合 Title string `json:"title"` // 标题 PlayName string `json:"playName"` // 剧名 Description string `json:"description"` // SEO Description Slug string `json:"slug"` // slug Desc string `json:"desc"` // 简介 Anchor string `json:"anchor"` // 作者/演员 Cover string `json:"cover"` // 竖版封面,已拼接图片域名 HorizontalCover string `json:"horizontalCover"` // 横版封面,已拼接图片域名 Preview string `json:"preview"` // 预告地址,详情接口返回时带播放签名 TagIds []int64 `json:"tagIds"` // 标签ID集合 TagNames []string `json:"tagNames"` // 标签名称集合 TagSlugs []string `json:"tagSlugs"` // 标签slug集合 TotalEpisode int64 `json:"totalEpisode"` // 总集数 UpdateStatus int `json:"updateStatus"` // 更新状态 1-连载中 2-已完结 CountBrowse int64 `json:"countBrowse"` // 观看量 HeatValue int64 `json:"heatValue"` // 热度值 CountCollect int64 `json:"countCollect"` // 收藏数 CountLike int64 `json:"countLike"` // 点赞数,包含真实点赞数和后台虚拟点赞数 CreatedAt time.Time `json:"createdAt"` // 创建时间 UpdatedAt time.Time `json:"updatedAt"` // 修改时间 SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息 } // PlayletRankReq 短剧排行榜请求 type PlayletRankReq struct { // 普通分页参数,pageNum默认1,pageSize默认10、最大100 pubdef.Page SortOrder int64 `form:"sortOrder" json:"sortOrder"` // 排序 1-热播榜,按热度值倒序 2-新剧榜,按上架时间倒序 3-追剧榜,按收藏数倒序 } // PlayletRankResp 短剧排行榜响应 type PlayletRankResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []CommonData `json:"list"` // 短剧集合 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息(短剧列表页SEO) } // PlayletHotRankListReq 热榜分页请求 type PlayletHotRankListReq struct { pubdef.Page RankType int64 `form:"rankType" json:"rankType"` // 榜单类型 1-热播榜 2-新剧榜 3-追剧榜 } // PlayletHotRankListResp 热榜分页响应 type PlayletHotRankListResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 RankType int64 `json:"rankType"` // 榜单类型 1-热播榜 2-新剧榜 3-追剧榜 List []CommonData `json:"list"` // 短剧集合 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息 } // PlayletOperateListReq 短剧分类列表分页请求 type PlayletOperateListReq struct { pubdef.Page Type int64 `form:"type" json:"type"` // 类型 1-最新更新 2-当前热播 3-独家原创 4-随机推荐 } // PlayletOperateListResp 短剧分类列表响应 type PlayletOperateListResp struct { TotalCount int64 `json:"totalCount"` // 符合条件的短剧总数 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 Type int64 `json:"type"` // 类型 1-最新更新 2-当前热播 3-独家原创 4-随机推荐 List []CommonData `json:"list"` // 当前页短剧 } // PlayletTodayUpdateReq 今日更新短剧请求 type PlayletTodayUpdateReq struct { // 普通分页参数,pageNum默认1,pageSize默认10、最大100 pubdef.Page } // PlayletTodayUpdateResp 今日更新短剧响应 type PlayletTodayUpdateResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []CommonData `json:"list"` // 短剧集合 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息(短剧列表页SEO) } // PlayletGuessLikeListReq 猜你喜欢分页请求 type PlayletGuessLikeListReq struct { // 普通分页参数,pageNum默认1,pageSize默认6、最大100 pubdef.Page PlayletId int64 `form:"playletId" json:"playletId" binding:"required"` // 当前短剧ID } // PlayletGuessLikeListResp 猜你喜欢分页响应 type PlayletGuessLikeListResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []CommonData `json:"list"` // 猜你喜欢短剧集合 } // PlayletTagVideoReq 根据标签ID分页查询短剧请求 type PlayletTagVideoReq struct { // 普通分页参数,pageNum默认1,pageSize默认10、最大100 pubdef.Page TagId int64 `form:"tagId" json:"tagId"` // 标签ID,tagSlug为空时必传 TagSlug string `form:"tagSlug" json:"tagSlug"` // 标签slug,非空时优先按slug解析标签ID SortType int64 `form:"sortType" json:"sortType"` // 排序 1-最新 2-最热 3-收藏最多 } // PlayletTagVideoResp 根据标签ID分页查询短剧响应 type PlayletTagVideoResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []CommonData `json:"list"` // 短剧集合 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息(标签SEO) } // PlayletSearchReq 短剧ES分页搜索请求 type PlayletSearchReq struct { // 普通分页参数,pageNum默认1,pageSize默认10、最大100 pubdef.Page Keyword string `form:"keyword" json:"keyword"` // 搜索关键词,支持剧名、题材名、简介和标签名 } // PlayletSearchResp 短剧ES分页搜索响应 type PlayletSearchResp struct { TotalCount int64 `json:"totalCount"` // 总共数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 Keyword string `json:"keyword"` // 搜索词 List []CommonData `json:"list"` // 搜索结果 EveryoneWatching []*CommonData `json:"everyoneWatching"` // 大家都在看,搜索无结果时返回 } // PlayletSearchSuggestReq 短剧搜索联想请求 type PlayletSearchSuggestReq struct { Keyword string `form:"keyword" json:"keyword" binding:"required"` // 搜索关键词 } // PlayletSearchSuggestResp 短剧搜索联想响应 type PlayletSearchSuggestResp struct { Keyword string `json:"keyword"` // 搜索关键词 List []CommonData `json:"list"` // 短剧列表 } // PlayletHotSearchItem 热搜词 type PlayletHotSearchItem struct { Keyword string `json:"keyword"` // 搜索词 Count int64 `json:"count"` // 搜索次数 } // PlayletHotLikeResp 热搜词和猜你喜欢 type PlayletHotLikeResp struct { HotSearch []PlayletHotSearchItem `json:"hotSearch"` // 前10个热搜词 GuessLike []*CommonData `json:"guessLike"` // 按收藏量最多的15部上架短剧 } // PlayletLikeListReq 我的短剧点赞列表请求 type PlayletLikeListReq struct { pubdef.Page // 分页参数 } // PlayletLikeData 我的短剧点赞列表项 type PlayletLikeData struct { CommonData IsLike int64 `json:"isLike"` // 点赞状态,固定为1-已点赞 LikedAt time.Time `json:"likedAt"` // 点赞时间 } // PlayletLikeListResp 我的短剧点赞列表响应 type PlayletLikeListResp struct { TotalCount int64 `json:"totalCount"` // 点赞记录总数 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []PlayletLikeData `json:"list"` // 点赞短剧集合 } // PlayletLikeSetReq 短剧点赞设置请求 type PlayletLikeSetReq struct { Id int64 `json:"id" binding:"required"` // 短剧ID IsLike *bool `json:"isLike" binding:"required"` // 是否点赞,true-点赞,false-取消点赞 } // PlayletLikeSetResp 短剧点赞设置响应 type PlayletLikeSetResp struct { Id int64 `json:"id"` // 短剧ID IsLike int64 `json:"isLike"` // 点赞状态 1-已点赞 2-未点赞 CountLike int64 `json:"countLike"` // 短剧点赞数 } // PlayletCollectSetReq 短剧收藏设置请求 type PlayletCollectSetReq struct { Id int64 `json:"id" binding:"required"` // 短剧ID IsCollect *bool `json:"isCollect" binding:"required"` // 是否收藏,true-收藏,false-取消收藏 } // PlayletCollectSetResp 短剧收藏设置响应 type PlayletCollectSetResp struct { Id int64 `json:"id"` // 短剧ID IsCollect int64 `json:"isCollect"` // 收藏状态 1-已收藏 2-未收藏 CountCollect int64 `json:"countCollect"` // 短剧收藏数 } // PlayletForwardHeatReq 短剧转发加热度请求 type PlayletForwardHeatReq struct { Id int64 `json:"id" binding:"required"` // 短剧ID } // PlayletForwardHeatResp 短剧转发加热度响应 type PlayletForwardHeatResp struct { Id int64 `json:"id"` // 短剧ID HeatValue int64 `json:"heatValue"` // 加热后的热度值 } // PlayletCollectListReq 我的收藏列表请求 type PlayletCollectListReq struct { // 普通分页参数,pageNum默认1,pageSize默认10、最大100 pubdef.Page WatchStatus int64 `form:"watchStatus" json:"watchStatus"` // 观看状态 0-全部 1-追剧中 2-已看完 } // PlayletCollectData 我的收藏列表项 type PlayletCollectData struct { Id int64 `json:"id"` // 短剧ID Title string `json:"title"` // 标题 PlayName string `json:"playName"` // 剧名 Slug string `json:"slug"` // slug Cover string `json:"cover"` // 封面,已拼接图片域名 ThemeIds []int64 `json:"themeIds"` // 题材ID集合 ThemeNames []string `json:"themeNames"` // 题材名称集合 ThemeSlugs []string `json:"themeSlugs"` // 题材slug集合 TagIds []int64 `json:"tagIds"` // 标签ID集合 TagNames []string `json:"tagNames"` // 标签名称集合 TagSlugs []string `json:"tagSlugs"` // 标签slug集合 TotalEpisode int64 `json:"totalEpisode"` // 总集数 UpdateStatus int `json:"updateStatus"` // 更新状态 1-连载中 2-已完结 CountBrowse int64 `json:"countBrowse"` // 观看量 HeatValue int64 `json:"heatValue"` // 热度值 CountCollect int64 `json:"countCollect"` // 收藏数 IsCollect int64 `json:"isCollect"` // 收藏状态,收藏列表固定返回1-已收藏 CollectedAt time.Time `json:"collectedAt"` // 收藏时间 WatchedCount int64 `json:"watchedCount"` // 当前用户已看集数 UnwatchedCount int64 `json:"unwatchedCount"` // 当前用户未看集数,按totalEpisode-watchedCount计算 LastChapterId int64 `json:"lastChapterId"` // 最近观看剧集ID,无观看进度时为0 LastEpisode int64 `json:"lastEpisode"` // 最近观看集数,无观看进度时为0 SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息 } // PlayletCollectListResp 我的收藏列表响应 type PlayletCollectListResp struct { TotalCount int64 `json:"totalCount"` // 总收藏数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []PlayletCollectData `json:"list"` // 收藏短剧集合 } // PlayletBoughtListReq 我的已购短剧列表请求 type PlayletBoughtListReq struct { // 普通分页参数,pageNum默认1,pageSize默认10、最大100 pubdef.Page } // PlayletBoughtData 我的已购短剧列表项 type PlayletBoughtData struct { CommonData BoughtChapterCount int64 `json:"boughtChapterCount"` // 已购剧集数量 CostCoins int64 `json:"costCoins"` // 已消耗金币 BoughtAt time.Time `json:"boughtAt"` // 最近购买时间 LastChapterId int64 `json:"lastChapterId"` // 最近观看剧集ID,无观看进度时为0 LastEpisode int64 `json:"lastEpisode"` // 最近观看集数,无观看进度时为0 WatchedCount int64 `json:"watchedCount"` // 当前用户已看集数 UnwatchedCount int64 `json:"unwatchedCount"` // 当前用户未看集数,按totalEpisode-watchedCount计算 IsFinished bool `json:"isFinished"` // 当前用户是否已看完 } // PlayletBoughtListResp 我的已购短剧列表响应 type PlayletBoughtListResp struct { TotalCount int64 `json:"totalCount"` // 总已购短剧数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []PlayletBoughtData `json:"list"` // 已购短剧集合 } // PlayletHistoryListReq 观看历史列表请求 type PlayletHistoryListReq struct { // 普通分页参数,pageNum默认1,pageSize默认20、最大100 pubdef.Page } // PlayletHistoryData 观看历史列表项 type PlayletHistoryData struct { CommonData LastChapterId int64 `json:"lastChapterId"` // 最近观看剧集ID LastEpisode int64 `json:"lastEpisode"` // 最近观看集数 WatchedCount int64 `json:"watchedCount"` // 当前用户已看集数 UnwatchedCount int64 `json:"unwatchedCount"` // 当前用户未看集数 IsFinished bool `json:"isFinished"` // 是否已看完 HistoryAt string `json:"historyAt"` // 最近观看时间 } // PlayletHistoryListResp 观看历史列表响应 type PlayletHistoryListResp struct { TotalCount int64 `json:"totalCount"` // 总历史数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []PlayletHistoryData `json:"list"` // 观看历史集合 } // PlayletHistoryDeleteReq 删除单条观看历史请求 type PlayletHistoryDeleteReq struct { PlayletId int64 `json:"playletId" binding:"required"` // 短剧ID } // PlayletHistoryDeleteResp 删除单条观看历史响应 type PlayletHistoryDeleteResp struct { DeletedCount int64 `json:"deletedCount"` // 删除记录数量 } // PlayletHistoryClearResp 清空观看历史响应 type PlayletHistoryClearResp struct { DeletedCount int64 `json:"deletedCount"` // 删除记录数量 } // PlayletChapterLikeSetReq 短剧剧集点赞设置请求 type PlayletChapterLikeSetReq struct { ChapterId int64 `json:"chapterId" binding:"required"` // 短剧剧集ID IsLike *bool `json:"isLike" binding:"required"` // 是否点赞,true-点赞,false-取消点赞 } // PlayletChapterLikeSetResp 短剧剧集点赞设置响应 type PlayletChapterLikeSetResp struct { ChapterId int64 `json:"chapterId"` // 短剧剧集ID IsLike int64 `json:"isLike"` // 点赞状态 1-已点赞 2-未点赞 CountLike int64 `json:"countLike"` // 短剧剧集点赞数 } // PlayletChapterCollectSetReq 短剧剧集收藏设置请求 type PlayletChapterCollectSetReq struct { ChapterId int64 `json:"chapterId" binding:"required"` // 短剧剧集ID IsCollect *bool `json:"isCollect" binding:"required"` // 是否收藏,true-收藏,false-取消收藏 } // PlayletChapterCollectSetResp 短剧剧集收藏设置响应 type PlayletChapterCollectSetResp struct { ChapterId int64 `json:"chapterId"` // 短剧剧集ID IsCollect int64 `json:"isCollect"` // 收藏状态 1-已收藏 2-未收藏 CountCollect int64 `json:"countCollect"` // 短剧剧集收藏数 } // PlayletChapterCollectListReq 我的剧集收藏列表请求 type PlayletChapterCollectListReq struct { // 普通分页参数,pageNum默认1,pageSize默认10、最大100 pubdef.Page } // PlayletChapterCollectData 我的剧集收藏列表项 type PlayletChapterCollectData struct { PlayletId int64 `json:"playletId"` // 短剧ID PlayletTitle string `json:"playletTitle"` // 短剧标题 PlayletCover string `json:"playletCover"` // 短剧封面,已拼接图片域名 TotalEpisode int64 `json:"totalEpisode"` // 短剧总集数 UpdateStatus int `json:"updateStatus"` // 更新状态 1-连载中 2-已完结 ChapterId int64 `json:"chapterId"` // 短剧剧集ID CurrentEpisode int64 `json:"currentEpisode"` // 第几集 ChapterTitle string `json:"chapterTitle"` // 剧集标题 VideoUrl string `json:"videoUrl"` // 播放地址 MediaTime int64 `json:"mediaTime"` // 影片长度(秒) PayType int32 `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP SingleCoins int64 `json:"singleCoins"` // 单集金币 CountBrowse int64 `json:"countBrowse"` // 剧集观看数 CountCollect int64 `json:"countCollect"` // 剧集收藏数 IsCollect int64 `json:"isCollect"` // 收藏状态,收藏列表固定返回1-已收藏 CollectedAt time.Time `json:"collectedAt"` // 收藏时间 } // PlayletChapterCollectListResp 我的剧集收藏列表响应 type PlayletChapterCollectListResp struct { TotalCount int64 `json:"totalCount"` // 总收藏数量 PageSize int `json:"pageSize"` // 每页数 PageNum int `json:"pageNum"` // 页数 List []PlayletChapterCollectData `json:"list"` // 收藏剧集集合 } // PlayletChapterWatchReportReq 短剧剧集观看上报请求 type PlayletChapterWatchReportReq struct { PlayletId int64 `json:"playletId"` // 短剧ID,传入时用于校验剧集归属 ChapterId int64 `json:"chapterId" binding:"required"` // 短剧剧集ID } // PlayletChapterWatchReportResp 短剧剧集观看上报响应 type PlayletChapterWatchReportResp struct { PlayletId int64 `json:"playletId"` // 短剧ID ChapterId int64 `json:"chapterId"` // 短剧剧集ID CurrentEpisode int64 `json:"currentEpisode"` // 当前集数 WatchedCount int64 `json:"watchedCount"` // 当前用户已看集数 UnwatchedCount int64 `json:"unwatchedCount"` // 当前用户未看集数 LastChapterId int64 `json:"lastChapterId"` // 最近观看剧集ID LastEpisode int64 `json:"lastEpisode"` // 最近观看集数 } // PlayletInfoReq 详情请求 type PlayletInfoReq struct { Id int64 `form:"id" json:"id"` // 短剧id Slug string `form:"slug" json:"slug"` // 短剧slug,非空时优先按slug解析短剧ID } // PlayletChapterInfoReq 短剧剧集详情请求 type PlayletChapterInfoReq struct { PlayletId int64 `form:"playletId" json:"playletId"` // 短剧ID,传入时用于校验剧集归属 PlayletSlug string `form:"playletSlug" json:"playletSlug"` // 短剧slug,非空时优先按slug解析短剧ID ChapterId int64 `form:"chapterId" json:"chapterId" binding:"required"` // 短剧剧集ID } // PlayletChapterListReq 短剧剧集列表请求 type PlayletChapterListReq struct { PlayletId int64 `form:"playletId" json:"playletId"` // 短剧ID PlayletSlug string `form:"playletSlug" json:"playletSlug"` // 短剧slug,非空时优先按slug解析短剧ID } // PlayletChapterListResp 短剧剧集列表响应 type PlayletChapterListResp struct { PlayletId int64 `json:"playletId"` // 短剧ID List []PlayletChapterData `json:"list"` // 短剧剧集集合 } // PlayletChapterInfoResp 短剧剧集详情响应 type PlayletChapterInfoResp struct { Id int64 `json:"id"` // 短剧剧集ID PlayletId int64 `json:"playletId"` // 短剧ID CurrentEpisode int64 `json:"currentEpisode"` // 第几集 Title string `json:"title"` // 章节名 Md5 string `json:"md5"` // 媒体md5 Hash string `json:"hash"` // 媒体hash Height int64 `json:"height"` // 高 Width int64 `json:"width"` // 宽 Ratio float64 `json:"ratio"` // 宽高比 VideoUrl string `json:"videoUrl"` // 视频地址 MediaSize int64 `json:"mediaSize"` // 资源大小 MediaTime int64 `json:"mediaTime"` // 影片长度(秒) CountComment int64 `json:"countComment"` // 短剧剧集评论数 CountBrowse int64 `json:"countBrowse"` // 短剧剧集观看数 CountCollect int64 `json:"countCollect"` // 短剧剧集收藏数 CountLike int64 `json:"countLike"` // 短剧剧集点赞数 IsLike int64 `json:"isLike"` // 点赞状态 1-已点赞 2-未点赞 IsCollect int64 `json:"isCollect"` // 收藏状态 1-已收藏 2-未收藏 PayType int32 `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP SingleCoins int64 `json:"singleCoins"` // 单集金币(支付方式为1-金币时候生效) CanWatch bool `json:"canWatch"` // 是否可观看 NeedUnlock bool `json:"needUnlock"` // 是否需要金币解锁 NeedVip bool `json:"needVip"` // 是否需要开通VIP CostCoins int64 `json:"costCoins"` // 本次解锁消耗金币 Balance int64 `json:"balance"` // 当前金币余额 VipValid bool `json:"vipValid"` // 当前用户VIP是否有效 IsUnlocked bool `json:"isUnlocked"` // 当前用户是否已解锁本集 // 页面SEO信息 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` } // PlayletChapterUnlockReq 短剧剧集金币解锁请求 type PlayletChapterUnlockReq struct { PlayletId int64 `json:"playletId" binding:"required"` // 短剧ID ChapterId int64 `json:"chapterId" binding:"required"` // 短剧剧集ID } // PlayletChapterUnlockResp 短剧剧集金币解锁响应 type PlayletChapterUnlockResp struct { PlayletId int64 `json:"playletId"` // 短剧ID ChapterId int64 `json:"chapterId"` // 短剧剧集ID Unlocked bool `json:"unlocked"` // 是否已解锁 CanWatch bool `json:"canWatch"` // 是否可观看 Balance int64 `json:"balance"` // 当前金币余额 CostCoins int64 `json:"costCoins"` // 本次解锁消耗金币 ChangeCoin int64 `json:"changeCoin"` // 本次实际扣减金币,幂等命中时为0 } // PlayletInfoResp 详情响应 type PlayletInfoResp struct { CommonData // 是否点赞(1-已点赞,2-未点赞) IsLike int64 `json:"isLike"` // 是否收藏(1-已收藏,2-未收藏) IsCollect int64 `json:"isCollect"` // 短剧章节集合 PlayletChapterInfo []PlayletChapterData `json:"playletChapterInfo"` // 页面SEO信息 SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 广告 Advitise AdvitiseData `json:"advitise"` } // PlayletChapterData 短剧章节信息 type PlayletChapterData struct { Id int64 `json:"id"` // 短剧剧集ID PlayletId int64 `json:"playletId"` // 短剧ID CurrentEpisode int64 `json:"currentEpisode"` // 第几集 Title string `json:"title"` // 章节名 Md5 string `json:"md5"` // 媒体md5 Hash string `json:"hash"` // 媒体hash Height int64 `json:"height"` // 高 Width int64 `json:"width"` // 宽 Ratio float64 `json:"ratio"` // 宽高比 VideoUrl string `json:"videoUrl"` // 视频地址 MediaSize int64 `json:"mediaSize"` // 资源大小 MediaTime int64 `json:"mediaTime"` // 影片长度(秒) PayType int32 `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP SingleCoins int64 `json:"singleCoins"` // 单集金币(支付方式为1-金币时候生效) CanWatch bool `json:"canWatch"` // 是否可观看 NeedUnlock bool `json:"needUnlock"` // 是否需要金币解锁 NeedVip bool `json:"needVip"` // 是否需要开通VIP CostCoins int64 `json:"costCoins"` // 本次解锁消耗金币 Balance int64 `json:"balance"` // 当前金币余额 VipValid bool `json:"vipValid"` // 当前用户VIP是否有效 IsUnlocked bool `json:"isUnlocked"` // 当前用户是否已解锁本集 }