Files
2026-10-26 16:28:14 +08:00

356 lines
25 KiB
Go
Raw Permalink 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/common/response"
"videoweb/pub/models/playletchaptermod"
"videoweb/pub/models/playletmod"
"videoweb/pub/pubdef"
)
// PlayletListReq web端短剧分页列表请求
type PlayletListReq struct {
pubdef.Page
Id *int64 `form:"id" json:"id"` // 短剧ID
CategoryId *int64 `form:"categoryId" json:"categoryId"` // 分类ID
TagId *int64 `form:"tagId" json:"tagId"` // 标签ID
ThemeId *int64 `form:"themeId" json:"themeId"` // 题材ID
ContentType *playletmod.ContentType `form:"contentType" json:"contentType"` // 内容类型,0-短剧、1-普通短剧/影集、2-漫画短剧、3-动漫、4-漫画
PayType *playletmod.PayType `form:"payType" json:"payType"` // 支付方式,0-免费、1-金币、2-VIP
Status *playletmod.Status `form:"status" json:"status"` // 上架状态,0-下架、1-上架
IsFeatured *bool `form:"isFeatured" json:"isFeatured"` // 是否爆剧,true-是、false-否
IsOriginal *bool `form:"isOriginal" json:"isOriginal"` // 是否原创:true只查原创,false只查非原创,不传查全部
ShowOriginal *bool `form:"showOriginal" json:"showOriginal"` // 页面是否展示原创标识 不传查全部
IsRecommend *bool `form:"isRecommend" json:"isRecommend"` // 是否推荐,true-推荐、false-不推荐
ShowOnBanner *bool `form:"showOnBanner" json:"showOnBanner"` // 是否显示在首页banner,true-显示、false-不显示
Title string `form:"title" json:"title"` // 短剧标题,支持模糊查询
OperatorName string `form:"operatorName" json:"operatorName"` // 最后操作人名称,支持模糊查询
}
// PlayletListResp web端短剧列表项
type PlayletListResp struct {
Id int64 `json:"id"` // 短剧ID
Status playletmod.Status `json:"status"` // 上架状态,0-下架、1-上架
IsFeatured bool `json:"isFeatured"` // 是否爆剧,true-是、false-否
IsOriginal bool `json:"isOriginal"` // 是否原创:后台新增为true,媒资导入为false
ShowOriginal bool `json:"showOriginal"` // 页面是否展示原创标识
MediaBusiness string `json:"mediaBusiness"` // 媒资业务来源,按媒资标题前缀记录,如 CGDJ;空表示未标记
IsRecommend bool `json:"isRecommend"` // 是否推荐,true-推荐、false-不推荐
ShowOnBanner bool `json:"showOnBanner"` // 是否显示在首页banner,true-显示、false-不显示
Banner string `json:"banner"` // banner图
ReviewAt time.Time `json:"reviewAt"` // 审核时间
OnlineAt time.Time `json:"onlineAt"` // 上架时间
Title string `json:"title"` // 标题
Slug string `json:"slug"` // slug
Desc string `json:"desc"` // 简介
Anchor string `json:"anchor"` // 作者/演员
Cover string `json:"cover"` // 封面原图
CompressedCover string `json:"compressedCover"` // 压缩封面
Preview string `json:"preview"` // 预告
CategoryIds []int64 `json:"categoryIds"` // 分类ID集合
CategoryBinds []PlayletCategoryBind `json:"categoryBinds"` // 各分类下的排序
CategoryRank int64 `json:"categoryRank"` // 当前筛选分类下的排序
CategoryNames []string `json:"categoryNames"` // 分类名称集合
ThemeIds []int64 `json:"themeIds"` // 题材ID集合
ThemeNames []string `json:"themeNames"` // 题材名称集合
TagIds []int64 `json:"tagIds"` // 标签ID集合
TagNames []string `json:"tagNames"` // 标签名称集合
OldTags []string `json:"oldTags"` // 媒资库原标签名称
ContentType playletmod.ContentType `json:"contentType"` // 内容类型,0-短剧、1-普通短剧/影集、2-漫画短剧、3-动漫、4-漫画
PayType playletmod.PayType `json:"payType"` // 支付方式,0-免费、1-金币、2-VIP
SingleCoins int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时生效
TotalEpisode int64 `json:"totalEpisode"` // 总集数
FreeEpisodeCount int64 `json:"freeEpisodeCount"` // 官网开放集数 1至1000表示开放第1集到第N集 -1表示开放全集 历史未配置按2集返回
UpdateStatus int `json:"updateStatus"` // 连载状态,1-连载中、2-已完结
TopRank int64 `json:"topRank"` // 置顶排序
RecommendRank int64 `json:"recommendRank"` // 推荐排序
CountComment int64 `json:"countComment"` // 评论数
CountBuy int64 `json:"countBuy"` // 购买数
CountBrowse int64 `json:"countBrowse"` // 浏览数
VirtualCountBrowse int64 `json:"virtualCountBrowse"` // 后台虚拟观看数
DisplayCountBrowse int64 `json:"displayCountBrowse"` // 展示观看数
HeatValue int64 `json:"heatValue"` // 热度值
VirtualHeatValue int64 `json:"virtualHeatValue"` // 后台虚拟热度值
DisplayHeatValue int64 `json:"displayHeatValue"` // 展示热度值
CountCollect int64 `json:"countCollect"` // 收藏数
CountLike int64 `json:"countLike"` // 真实点赞数
VirtualCountLike int64 `json:"virtualCountLike"` // 虚拟点赞数
DisplayCountLike int64 `json:"displayCountLike"` // 展示点赞数=真实点赞数+虚拟点赞数
CountDisLike int64 `json:"countDisLike"` // 不喜欢数
SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
OperatorId int64 `json:"operatorId"` // 最后操作人ID
OperatorName string `json:"operatorName"` // 最后操作人名称
CreatedAt time.Time `json:"createdAt"` // 创建时间
UpdatedAt time.Time `json:"updatedAt"` // 更新时间
}
// PlayletListPageResp web端短剧分页列表响应
type PlayletListPageResp struct {
response.BasePageResp
}
// PlayletCategoryBind 短剧在指定分类下的排序
type PlayletCategoryBind struct {
Id int64 `json:"id"` // 分类ID
Rank int64 `json:"rank"` // 排序值,越大越靠前,不填为0
}
// PlayletDelReq 删除短剧请求
type PlayletDelReq struct {
Ids []int64 `json:"ids" binding:"required"` // 短剧ID集合
}
// PlayletAddReq web端新增短剧请求
type PlayletAddReq struct {
CategoryIds []int64 `json:"categoryIds"` // 分类ID集合
CategoryBinds []PlayletCategoryBind `json:"categoryBinds"` // 各分类下的排序,优先于categoryIds
ThemeIds []int64 `json:"themeIds"` // 题材ID集合
Title string `json:"title" binding:"required"` // 标题
Slug string `json:"slug"` // slug,不传则按 SEO 关键词或标题自动生成
Desc string `json:"desc"` // 简介
Anchor string `json:"anchor"` // 作者/演员
Cover string `json:"cover"` // 封面原图
Preview string `json:"preview"` // 预告
TagIds []int64 `json:"tagIds"` // 标签ID集合
ContentType playletmod.ContentType `json:"contentType"` // 内容类型,0-短剧、1-普通短剧/影集、2-漫画短剧、3-动漫、4-漫画
PayType playletmod.PayType `json:"payType"` // 支付方式,0-免费、1-金币、2-VIP
SingleCoins int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时生效
TotalEpisode int64 `json:"totalEpisode"` // 总集数
FreeEpisodeCount *int64 `json:"freeEpisodeCount"` // 官网开放集数 不传默认2集 1至1000表示开放第1集到第N集 -1表示开放全集 0无效
TopRank int64 `json:"topRank"` // 置顶排序
RecommendRank int64 `json:"recommendRank"` // 推荐排序
Status playletmod.Status `json:"status"` // 上架状态,0-下架、1-上架
IsFeatured bool `json:"isFeatured"` // 是否爆剧,true-是、false-否
ShowOriginal bool `json:"showOriginal"` // 页面是否展示原创标识
IsRecommend bool `json:"isRecommend"` // 是否推荐,true-推荐、false-不推荐
ShowOnBanner bool `json:"showOnBanner"` // 是否显示在首页banner
Banner string `json:"banner"` // banner图
SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
}
// PlayletAddResp web端新增短剧响应
type PlayletAddResp struct {
Id int64 `json:"id"` // 短剧ID
}
// PlayletUpdateReq web端更新短剧请求
type PlayletUpdateReq struct {
Id int64 `json:"id" binding:"required"` // 短剧ID
Status *playletmod.Status `json:"status"` // 上架状态,0-下架、1-上架
IsFeatured *bool `json:"isFeatured"` // 是否爆剧,true-是、false-否
ShowOriginal *bool `json:"showOriginal"` // 页面是否展示原创标识 不传保持原值
IsRecommend *bool `json:"isRecommend"` // 是否推荐,true-推荐、false-不推荐
ShowOnBanner *bool `json:"showOnBanner"` // 是否显示在首页banner
Banner *string `json:"banner"` // banner图
CategoryIds *[]int64 `json:"categoryIds"` // 分类ID集合,传空数组表示清空分类
CategoryBinds *[]PlayletCategoryBind `json:"categoryBinds"` // 各分类下的排序,优先于categoryIds
ThemeIds *[]int64 `json:"themeIds"` // 题材ID集合
Title *string `json:"title"` // 标题
Slug *string `json:"slug"` // slug,历史数据为空时更新会自动生成
Desc *string `json:"desc"` // 简介
Anchor *string `json:"anchor"` // 作者/演员
Cover *string `json:"cover"` // 封面原图
Preview *string `json:"preview"` // 预告
TagIds *[]int64 `json:"tagIds"` // 标签ID集合,传空数组表示清空标签
ContentType *playletmod.ContentType `json:"contentType"` // 内容类型,0-短剧、1-普通短剧/影集、2-漫画短剧、3-动漫、4-漫画
PayType *playletmod.PayType `json:"payType"` // 支付方式,0-免费、1-金币、2-VIP
SingleCoins *int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时生效
TotalEpisode *int64 `json:"totalEpisode"` // 总集数
FreeEpisodeCount *int64 `json:"freeEpisodeCount"` // 官网可播放范围 不传则不修改 传1至1000时仅开放第1集至指定集数 传-1开放全部剧集 传0报参数错误
TopRank *int64 `json:"topRank"` // 置顶排序
RecommendRank *int64 `json:"recommendRank"` // 推荐排序
SeoInfo *pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
}
// PlayletPayTypeSetReq web端单/批量设置短剧默认支付方式请求
type PlayletPayTypeSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
PayType playletmod.PayType `json:"payType"` // 支付方式,0-免费、1-金币、2-VIP
SingleCoins *int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时必填且需大于0
}
// PlayletWatermarkResetReq web端按短剧ID批量重置剧集水印请求
type PlayletWatermarkResetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条,传多个表示批量
}
// PlayletChapterListReq web端短剧剧集分页列表请求
type PlayletChapterListReq struct {
pubdef.Page
PlayletId *int64 `form:"playletId" json:"playletId"` // 短剧ID
Id *int64 `form:"id" json:"id"` // 剧集ID
WatermarkStatus *playletchaptermod.WatermarkStatus `form:"watermarkStatus" json:"watermarkStatus"` // 水印状态 0-未处理 1-已登记 2-处理中 3-已完成 4-处理失败
}
// PlayletChapterListResp web端短剧剧集列表项
type PlayletChapterListResp struct {
Id int64 `json:"id"` // 剧集ID
PlayletId int64 `json:"playletId"` // 短剧ID
MediaContentId uint `json:"mediaContentId"` // 媒资中心剧集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"` // 原片视频地址
WatermarkVideoUrl string `json:"watermarkVideoUrl"` // 加水印后的视频地址
MediaSize int64 `json:"mediaSize"` // 资源大小
MediaTime int64 `json:"mediaTime"` // 影片长度,单位秒
CountComment int64 `json:"countComment"` // 评论数
CountBuy int64 `json:"countBuy"` // 购买数
CountBrowse int64 `json:"countBrowse"` // 浏览数
CountCollect int64 `json:"countCollect"` // 收藏数
CountLike int64 `json:"countLike"` // 点赞数
CountDisLike int64 `json:"countDisLike"` // 不喜欢数
PayType playletchaptermod.PayType `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP
SingleCoins int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时生效
WatermarkStatus playletchaptermod.WatermarkStatus `json:"watermarkStatus"` // 水印状态 0-未处理 1-已登记 2-处理中 3-已完成 4-处理失败
MediaSourceId string `json:"mediaSourceId"` // media切片服原片ID
MediaTaskId string `json:"mediaTaskId"` // media切片服水印任务ID
CreatedAt time.Time `json:"createdAt"` // 创建时间
UpdatedAt time.Time `json:"updatedAt"` // 更新时间
}
// PlayletChapterListPageResp web端短剧剧集分页列表响应
type PlayletChapterListPageResp struct {
response.BasePageResp
}
// PlayletChapterAddReq web端新增短剧剧集请求
type PlayletChapterAddReq struct {
PlayletId int64 `json:"playletId" binding:"required"` // 短剧ID
CurrentEpisode int64 `json:"currentEpisode" binding:"required"` // 第几集
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 playletchaptermod.PayType `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP
SingleCoins int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时生效
MediaSourceId string `json:"mediaSourceId"` // media切片服原片ID,上传正片已创建原片时直接沿用
}
// PlayletChapterAddResp web端新增短剧剧集响应
type PlayletChapterAddResp struct {
Id int64 `json:"id"` // 剧集ID
}
// PlayletChapterUpdateReq web端编辑短剧剧集请求
type PlayletChapterUpdateReq struct {
Id int64 `json:"id" binding:"required"` // 剧集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 *playletchaptermod.PayType `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP
SingleCoins *int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时生效
}
// PlayletChapterDelReq web端单/批量删除短剧剧集请求
type PlayletChapterDelReq struct {
Ids []int64 `json:"ids"` // 剧集ID集合,传1个表示单条删除,传多个表示批量删除
}
// PlayletChapterSyncReq web端手动同步短剧剧集请求
type PlayletChapterSyncReq struct {
PlayletIds []int64 `json:"playletIds" binding:"required"` // 短剧ID集合,传1个表示单条同步,传多个表示批量同步
}
// PlayletChapterSyncResult web端手动同步短剧剧集结果项
type PlayletChapterSyncResult struct {
PlayletId int64 `json:"playletId"` // 短剧ID
NewChapterCount int `json:"newChapterCount"` // 本次新增剧集数量
Success bool `json:"success"` // 是否同步成功
Reason string `json:"reason"` // 失败原因
}
// PlayletChapterSyncResp web端手动同步短剧剧集响应
type PlayletChapterSyncResp struct {
Total int `json:"total"` // 同步总数
SuccessCount int `json:"successCount"` // 成功数量
FailedCount int `json:"failedCount"` // 失败数量
List []*PlayletChapterSyncResult `json:"list"` // 同步结果集合
}
// PlayletChapterPayTypeSetReq web端单/批量设置短剧剧集支付方式请求
type PlayletChapterPayTypeSetReq struct {
Ids []int64 `json:"ids"` // 剧集ID集合,传1个表示单条设置,传多个表示批量设置
PayType playletchaptermod.PayType `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP
SingleCoins *int64 `json:"singleCoins"` // 单集金币,支付方式为1-金币时必填且需大于0
}
// PlayletStatusSetReq web端单/批量设置短剧上下架请求
type PlayletStatusSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
Status playletmod.Status `json:"status"` // 上架状态,0-下架、1-上架
}
// PlayletRecommendSetReq web端单/批量设置短剧推荐请求
type PlayletRecommendSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
IsRecommend bool `json:"isRecommend"` // 是否推荐,true-推荐、false-不推荐
}
// PlayletFeaturedSetReq web端单/批量设置短剧是否爆剧请求
type PlayletFeaturedSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
IsFeatured bool `json:"isFeatured"` // 是否爆剧,true-是、false-否
}
// PlayletBannerSetReq web端单/批量设置短剧是否显示在首页banner请求
type PlayletBannerSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
ShowOnBanner bool `json:"showOnBanner"` // 是否显示在首页banner,true-显示、false-不显示
}
// PlayletCategorySetReq web端单/批量设置短剧分类请求
type PlayletCategorySetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
CategoryIds *[]int64 `json:"categoryIds"` // 分类ID集合,可设置多个分类,传空数组表示清空分类,不传表示参数错误
}
// PlayletTagSetReq web端单/批量设置短剧标签请求
type PlayletTagSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
TagIds *[]int64 `json:"tagIds"` // 标签ID集合,可设置多个标签,传空数组表示清空标签,不传表示参数错误
}
// PlayletThemeSetReq web端单/批量设置短剧题材请求
type PlayletThemeSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
ThemeIds []int64 `json:"themeIds"` // 题材ID集合,可设置多个题材
}
// PlayletVirtualLikeSetReq web端单/批量设置短剧虚拟点赞数请求
type PlayletVirtualLikeSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
MinVirtualCountLike int64 `json:"minVirtualCountLike"` // 虚拟点赞数最小值,必须大于等于0
MaxVirtualCountLike int64 `json:"maxVirtualCountLike"` // 虚拟点赞数最大值,必须大于等于最小值
}
// PlayletVirtualBrowseSetReq web端单/批量设置短剧虚拟观看数请求
type PlayletVirtualBrowseSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合
MinVirtualCountBrowse int64 `json:"minVirtualCountBrowse"` // 虚拟观看数最小值
MaxVirtualCountBrowse int64 `json:"maxVirtualCountBrowse"` // 虚拟观看数最大值
}
// PlayletVirtualHeatSetReq web端单/批量设置短剧虚拟热度请求
type PlayletVirtualHeatSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合
MinVirtualHeatValue int64 `json:"minVirtualHeatValue"` // 虚拟热度最小值
MaxVirtualHeatValue int64 `json:"maxVirtualHeatValue"` // 虚拟热度最大值
}