Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
529 lines
26 KiB
Go
529 lines
26 KiB
Go
package proto
|
||
|
||
import (
|
||
"time"
|
||
"videoweb/pub/pubdef"
|
||
)
|
||
|
||
// HomePlayletResponse 首页响应
|
||
type HomePlayletResponse struct {
|
||
HomeBannerData []*HomeBannerData `json:"homeBannerData"` // 首页banner信息列表
|
||
HomeTodayUpdateData []*CommonData `json:"homeTodayUpdateData"` // 最近更新集合,最多16条
|
||
HomeCategoryData []*HomeCategoryData `json:"homeCategoryData"` // 启用分类短剧集合,按分类排序,每个分类最多16条
|
||
HomeRecommendThemes []*HomeRecommendTheme `json:"homeRecommendThemes"` // 推荐主题,最多4条
|
||
Announcements []*AnnouncementItem `json:"announcements"` // 启用中的公告,来自独立缓存
|
||
SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息(短剧列表页SEO)
|
||
}
|
||
|
||
// HomeRecommendTheme 首页推荐主题
|
||
type HomeRecommendTheme 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"` // 该题材绑定的上架短剧数量
|
||
}
|
||
|
||
// AnnouncementItem 首页公告
|
||
type AnnouncementItem struct {
|
||
Id int64 `json:"id"` // 公告ID
|
||
Title string `json:"title"` // 标题
|
||
Content string `json:"content"` // 内容
|
||
}
|
||
|
||
// HomeCategoryData 首页分类短剧集合数据
|
||
type HomeCategoryData struct {
|
||
Id int64 `json:"id"` // 分类ID
|
||
Name string `json:"name"` // 分类名称
|
||
Slug string `json:"slug"` // slug
|
||
Desc string `json:"desc"` // 描述
|
||
Icon string `json:"icon"` // 分类图标
|
||
Rank int64 `json:"rank"` // 分类排序,越大越靠前
|
||
List []*CommonData `json:"list"` // 分类下短剧集合,最多16条
|
||
}
|
||
|
||
// PlayletRecommendListReq 分类短剧分页请求
|
||
type PlayletRecommendListReq struct {
|
||
// 普通分页参数,pageNum默认1,pageSize默认10、最大100
|
||
pubdef.Page
|
||
CategoryId int64 `form:"categoryId" json:"categoryId"` // 分类ID
|
||
CategorySlug string `form:"categorySlug" json:"categorySlug"` // 分类slug,非空时优先按slug解析分类ID
|
||
}
|
||
|
||
// PlayletRecommendListResp 分类短剧分页响应
|
||
type PlayletRecommendListResp struct {
|
||
CategoryId int64 `json:"categoryId"` // 分类ID
|
||
CategoryName string `json:"categoryName"` // 分类名称
|
||
CategorySlug string `json:"categorySlug"` // 分类slug
|
||
CategoryDesc string `json:"categoryDesc"` // 分类描述
|
||
TotalCount int64 `json:"totalCount"` // 总共数量
|
||
PageSize int `json:"pageSize"` // 每页数
|
||
PageNum int `json:"pageNum"` // 页数
|
||
List []CommonData `json:"list"` // 短剧集合
|
||
SeoInfo *SeoInfo `json:"seoInfo,omitempty"` // 页面SEO信息(分类SEO)
|
||
}
|
||
|
||
// HomeBannerData 首页banner信息
|
||
type HomeBannerData struct {
|
||
Id int64 `json:"id"` // ID
|
||
Name string `json:"name"` // 名称
|
||
Image string `json:"image"` // 图片,已拼接图片域名
|
||
VerticalImage string `json:"verticalImage"` // 竖版图片,已拼接图片域名
|
||
Url string `json:"url"` // URL
|
||
Rank int64 `json:"rank"` // 排序
|
||
Status bool `json:"status"` // 状态 true-启用 false-停用
|
||
}
|
||
|
||
// CommonData 首页通用数据
|
||
type CommonData struct {
|
||
Id int64 `json:"id"` // 短剧id
|
||
Status int32 `json:"status"` // 状态: 0下架 1上架
|
||
IsFeatured bool `json:"isFeatured"` // 是否爆剧(true-是,false-否)
|
||
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集合
|
||
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"` // 封面,已拼接图片域名
|
||
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相关信息
|
||
}
|
||
|
||
// PlayletVideoReq 短剧请求
|
||
type PlayletVideoReq struct {
|
||
// 普通分页参数,pageNum默认1,pageSize默认10、最大100
|
||
pubdef.Page
|
||
ThemeId int64 `form:"themeId" json:"themeId"` // 题材ID
|
||
ThemeSlug string `form:"themeSlug" json:"themeSlug"` // 题材slug,非空时优先按slug解析题材ID
|
||
SortOrder int64 `form:"sortOrder" json:"sortOrder"` // 排序 1-热度优先,按收藏量倒序 2-今日更新,按上架时间倒序
|
||
}
|
||
|
||
// PlayletVideoResp 短剧响应
|
||
type PlayletVideoResp struct {
|
||
// 总共数量
|
||
TotalCount int64 `json:"totalCount"`
|
||
// 每页数
|
||
PageSize int `json:"pageSize"`
|
||
// 页数
|
||
PageNum int `json:"pageNum"`
|
||
// 短剧集合
|
||
List []CommonData `json:"list"`
|
||
// 页面SEO信息:有 themeId 时返回题材 SEO,否则返回短剧列表页 SEO
|
||
SeoInfo *SeoInfo `json:"seoInfo,omitempty"`
|
||
}
|
||
|
||
// 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)
|
||
}
|
||
|
||
// PlayletOperateListReq 按运营类型分页查询短剧请求
|
||
type PlayletOperateListReq struct {
|
||
pubdef.Page
|
||
OperateType int32 `form:"operateType" json:"operateType"` // 运营类型 1-短剧 2-漫剧
|
||
FilterType int64 `form:"filterType" json:"filterType"` // 筛选类型 1-最近更新 2-当前热播 3-独家原创
|
||
}
|
||
|
||
// PlayletOperateListResp 按运营类型分页查询短剧响应
|
||
type PlayletOperateListResp struct {
|
||
TotalCount int64 `json:"totalCount"` // 总共数量
|
||
PageSize int `json:"pageSize"` // 每页数
|
||
PageNum int `json:"pageNum"` // 页数
|
||
OperateType int32 `json:"operateType"` // 运营类型 1-短剧 2-漫剧
|
||
FilterType int64 `json:"filterType"` // 筛选类型 1-最近更新 2-当前热播 3-独家原创
|
||
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)
|
||
}
|
||
|
||
// PlayletTagVideoReq 根据标签ID分页查询短剧请求
|
||
type PlayletTagVideoReq struct {
|
||
// 普通分页参数,pageNum默认1,pageSize默认10、最大100
|
||
pubdef.Page
|
||
TagId int64 `form:"tagId" json:"tagId"` // 标签ID
|
||
TagSlug string `form:"tagSlug" json:"tagSlug"` // 标签slug,非空时优先按slug解析标签ID
|
||
}
|
||
|
||
// 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"` // 页数
|
||
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部上架短剧
|
||
}
|
||
|
||
// 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
|
||
}
|
||
|
||
// 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"` // 收藏短剧集合
|
||
}
|
||
|
||
// 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 time.Time `json:"historyAt"` // 最近观看时间
|
||
}
|
||
|
||
// PlayletHistoryListResp 观看历史列表响应
|
||
type PlayletHistoryListResp struct {
|
||
TotalCount int64 `json:"totalCount"` // 总历史数量
|
||
PageSize int `json:"pageSize"` // 每页数
|
||
PageNum int `json:"pageNum"` // 页数
|
||
List []PlayletHistoryData `json:"list"` // 观看历史集合
|
||
}
|
||
|
||
// 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"`
|
||
// 相关推荐集合
|
||
RelatedRecommendData []*CommonData `json:"relatedRecommendData"`
|
||
// 短剧章节集合
|
||
PlayletChapterInfo []PlayletChapterData `json:"playletChapterInfo"`
|
||
// 页面SEO信息
|
||
SeoInfo *SeoInfo `json:"seoInfo,omitempty"`
|
||
}
|
||
|
||
// 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"` // 当前用户是否已解锁本集
|
||
}
|