Files
web_hgdjc_server/app/api/proto/playlet.go
T
2026-11-07 10:46:18 +08:00

663 lines
32 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 (
"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"` // 当前用户是否已解锁本集
}