Files
2026-11-07 10:47:32 +08:00

709 lines
38 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"
)
// PlayletResourceListReq web端短剧媒资列表请求
type PlayletResourceListReq struct {
Title *string `form:"title" json:"title"` // 标题
Tag *string `form:"tag" json:"tag"` // 标签
MediaType *int `form:"media_type" json:"media_type"` // 媒体类型 1-动漫 2-漫画 4-漫画短剧 5-短剧 6-普通短剧
SyncType *int `form:"sync_type" json:"sync_type"` // 同步类型 1-全量同步 2-增量同步
IsAdd *bool `form:"isAdd" json:"isAdd,omitempty"` // 是否已加入后台数据:true只查已加入,false只查未加入,不传查全部
PageNumber int `form:"pageNumber" json:"pageNumber"` // 页码
PageSize int `form:"pageSize" json:"pageSize"` // 个数
}
// PlayletResourceJHListReq web端嘉华短剧媒资列表请求
type PlayletResourceJHListReq struct {
Title *string `form:"title"` // 标题
Tag *string `form:"tag"` // 标签
SyncType *int `form:"sync_type"` // 同步类型 1-全量同步 2-增量同步
IsAdd *bool `form:"isAdd" json:"isAdd,omitempty"` // 是否已入库:true只查已入库,false只查未入库,不传查全部
PageNumber int `form:"pageNumber"` // 页码
PageSize int `form:"pageSize"` // 个数
}
// PlayletResourceMediaActor web端短剧媒资演员
type PlayletResourceMediaActor struct {
Name string `json:"name"` // 名称
Avatar string `json:"avatar"` // 头像
Gender int `json:"gender"` // 性别
}
// PlayletResourceListItem web端短剧媒资列表项
type PlayletResourceListItem struct {
ID uint `json:"id"`
VloggerId uint `json:"vlogger_id"`
Title string `json:"title"` // 标题
SaleCoin uint `json:"sale_coin"` // 整部售价
HorizontalCover string `json:"horizontal_cover"` // 横版封面
VerticalCover string `json:"vertical_cover"` // 竖版封面
Summary string `json:"summary"` // 简介
TotalEpisode uint `json:"total_episode"` // 总集数
UpdateStatus int `json:"update_status"` // 更新状态 1-连载中 2-已完结
MediaType int `json:"media_type"` // 媒体类型
Anchor string `json:"anchor"` // 作者
TagsText string `json:"tags_text"` // 标签文字
DataVersion int8 `json:"data_version"` // 数据版本
TerminalCdo string `json:"terminal_cdo"` // 上传者
CreateTime int64 `json:"create_time"` // 创建时间
UpdateTime int64 `json:"update_time"` // 修改时间
IsAdd bool `json:"isAdd"` // 是否已加入后台数据
}
// PlayletResourceJHListItem web端嘉华短剧媒资列表项
type PlayletResourceJHListItem struct {
ID uint `json:"id"`
VloggerId uint `json:"vlogger_id"`
Title string `json:"title"` // 标题
SaleCoin uint `json:"sale_coin"` // 整部售价
HorizontalCover string `json:"horizontal_cover"` // 横版封面
VerticalCover string `json:"vertical_cover"` // 竖版封面
HorizontalCoverAlt string `json:"horizontalCover"` // 兼容驼峰
VerticalCoverAlt string `json:"verticalCover"` // 兼容驼峰
Summary string `json:"summary"` // 简介
TotalEpisode uint `json:"total_episode"` // 总集数
UpdateStatus int `json:"update_status"` // 更新状态
MediaType int `json:"media_type"` // 媒体类型
Anchor string `json:"anchor"` // 作者
Actors []PlayletResourceMediaActor `json:"actors"` // 演员集合
TagsText string `json:"tags_text"` // 标签文字
DataVersion int8 `json:"data_version"` // 数据版本
TerminalCdo string `json:"terminal_cdo"` // 上传者
CreateTime int64 `json:"create_time"` // 创建时间
UpdateTime int64 `json:"update_time"` // 更新时间
IsAdd bool `json:"isAdd"` // 是否已入库
}
// PlayletResourceListResp web端短剧媒资列表响应
type PlayletResourceListResp struct {
List []*PlayletResourceListItem `json:"list"`
Total uint `json:"total"`
}
// PlayletResourceJHListResp web端嘉华短剧媒资列表响应
type PlayletResourceJHListResp struct {
List []*PlayletResourceJHListItem `json:"list"`
Total uint `json:"total"`
}
// PlayletResourceUseReq web端短剧媒资入库请求
type PlayletResourceUseReq struct {
Ids []uint `json:"ids"` // 媒资中心资源ID集合-多个用逗号隔开,请求示例[28830,28829,28828,28827,28826,28825]
}
// PlayletResourceChapterListReq web端短剧媒资剧集列表请求
type PlayletResourceChapterListReq struct {
Id uint `form:"id" json:"id" binding:"required"` // 媒资中心资源ID
}
// PlayletResourceChapterItem web端短剧媒资剧集项
type PlayletResourceChapterItem struct {
Id uint `json:"id"` // 媒资内容ID
EpisodeNumber int `json:"episodeNumber"` // 第几集
Title string `json:"title"` // 章节名
Cover string `json:"cover"` // 封面
VideoUrl string `json:"videoUrl"` // 播放地址
Height uint `json:"height"` // 高
Width uint `json:"width"` // 宽
MediaSize uint `json:"mediaSize"` // 资源大小
PlayTime uint `json:"playTime"` // 播放时长(秒)
SaleCoin uint `json:"saleCoin"` // 单集售价
HashId string `json:"hashId"` // 资源hash
CreateTime int64 `json:"createTime"` // 创建时间
UpdateTime int64 `json:"updateTime"` // 更新时间
}
// PlayletResourceChapterListResp web端短剧媒资剧集列表响应
type PlayletResourceChapterListResp struct {
MediaId uint `json:"mediaId"` // 媒资中心资源ID
Title string `json:"title"` // 短剧标题
List []*PlayletResourceChapterItem `json:"list"` // 剧集列表
Total int `json:"total"` // 剧集数量
}
// PlayletResourceUseSuccess web端短剧媒资入库成功项
type PlayletResourceUseSuccess struct {
MediaId uint `json:"mediaId"`
PlayletId int64 `json:"playletId"`
}
// PlayletResourceUseFailed web端短剧媒资入库失败项
type PlayletResourceUseFailed struct {
MediaId uint `json:"mediaId"`
Reason string `json:"reason"`
}
// PlayletResourceUseResp web端短剧媒资入库响应
type PlayletResourceUseResp struct {
Success []*PlayletResourceUseSuccess `json:"success"`
Failed []*PlayletResourceUseFailed `json:"failed"`
}
// PlayletListSortType web端短剧列表排序类型,均为降序
type PlayletListSortType int
const (
PlayletListSortCreatedAt PlayletListSortType = 0 // 创建时间(默认)
PlayletListSortRecommendRank PlayletListSortType = 1 // 推荐排序
PlayletListSortUpdatedAt PlayletListSortType = 2 // 修改时间
PlayletListSortCountLike PlayletListSortType = 3 // 点赞数
PlayletListSortCountBrowse PlayletListSortType = 4 // 浏览数
PlayletListSortCountCollect PlayletListSortType = 5 // 收藏数
PlayletListSortOnlineAt PlayletListSortType = 6 // 上架时间
)
// PlayletListReq web端短剧分页列表请求
type PlayletListReq struct {
pubdef.Page
Id *int64 `form:"id" json:"id"`
ThemeId *int64 `form:"themeId" json:"themeId"` // 题材id
CategoryId *int64 `form:"categoryId" json:"categoryId"` // 分类ID
TagId *int64 `form:"tagId" json:"tagId"` // 标签ID
ContentType *playletmod.ContentType `form:"contentType" json:"contentType"` // 0短剧 1普通短剧/影集 2漫画短剧 3动漫 4漫画
OperateType *playletmod.OperateType `form:"operateType" json:"operateType"` // 运营类型 1-短剧 2-漫剧
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"` // 是否原创(推荐)
ShowOnBanner *bool `form:"showOnBanner" json:"showOnBanner"`
Title string `form:"title" json:"title"`
Slug string `form:"slug" json:"slug"` // slug,精确匹配
OperatorName string `form:"operatorName" json:"operatorName"` // 最后操作人名称
MediaSource *string `form:"mediaSource" json:"mediaSource"` // 媒资来源:不传查全部;空字符串查普通媒资;hg 查黄果媒资
SortType PlayletListSortType `form:"sortType" json:"sortType"` // 排序:0创建时间(默认) 1推荐排序(按分类查询时为该分类排序) 2修改时间 3点赞数 4浏览数 5收藏数 6上架时间,均为降序
}
// PlayletListResp web端短剧列表项
type PlayletListResp struct {
Id int64 `json:"id"`
MediaSource string `json:"mediaSource"` // 媒资来源,空为普通媒资,hg 为黄果媒资
Status playletmod.Status `json:"status"`
IsFeatured bool `json:"isFeatured"` // 是否爆剧(true-是,false-否)
IsOriginal bool `json:"isOriginal"` // 是否原创
ShowOriginal bool `json:"showOriginal"` // 页面是否展示原创标识
MediaBusiness string `json:"mediaBusiness"` // 媒资业务来源,按媒资标题前缀记录,如 CGDJ;空表示未标记
IsRecommend bool `json:"isRecommend"`
ShowOnBanner bool `json:"showOnBanner"`
Banner string `json:"banner"`
MobileBanner string `json:"mobileBanner"` // 移动端banner图
ReviewAt time.Time `json:"reviewAt"`
OnlineAt time.Time `json:"onlineAt"`
ThemeIds []int64 `json:"themeIds"`
ThemeNames []string `json:"themeNames"`
CategoryIds []int64 `json:"categoryIds"` // 分类ID集合
CategoryBinds []PlayletCategoryBind `json:"categoryBinds"` // 分类绑定及排序
CategoryRank int64 `json:"categoryRank"` // 当前筛选分类下的排序
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"` // 横版封面
CompressedHorizontalCover string `json:"compressedHorizontalCover"` // 压缩横版封面
Preview string `json:"preview"`
TagIds []int64 `json:"tagIds"`
TagNames []string `json:"tagNames"`
ContentType playletmod.ContentType `json:"contentType"`
OperateType playletmod.OperateType `json:"operateType"` // 运营类型 1-短剧 2-漫剧
PayType playletmod.PayType `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP
SingleCoins int64 `json:"singleCoins"` // 单集金币(支付方式为1-金币时候生效)
TotalEpisode int64 `json:"totalEpisode"`
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"`
HeatValue int64 `json:"heatValue"`
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"`
CompressedCover string `json:"compressedCover"`
}
// PlayletListPageResp web端短剧分页列表响应
type PlayletListPageResp struct {
response.BasePageResp
}
// PlayletCategoryBind 短剧绑定的分类及该分类下的排序
type PlayletCategoryBind struct {
Id int64 `json:"id"` // 分类ID
Rank int64 `json:"rank"` // 该分类下的排序,越大越靠前
}
// PlayletAddReq web端新增短剧请求
type PlayletAddReq struct {
ThemeIds []int64 `json:"themeIds"`
CategoryIds []int64 `json:"categoryIds"` // 分类ID集合,可为空;不传或空数组表示清空
CategoryBinds []PlayletCategoryBind `json:"categoryBinds"` // 分类绑定及排序,优先于categoryIds
Title string `json:"title" binding:"required"`
PlayName string `json:"playName"` // 剧名
Slug string `json:"slug"` // slug,不传则按 SEO 关键词或标题自动生成
Desc string `json:"desc"`
Anchor string `json:"anchor"`
Cover string `json:"cover"`
HorizontalCover string `json:"horizontalCover"` // 横版封面
Preview string `json:"preview"`
TagIds []int64 `json:"tagIds"`
ContentType playletmod.ContentType `json:"contentType"`
OperateType playletmod.OperateType `json:"operateType"` // 运营类型 1-短剧 2-漫剧,不传默认短剧
PayType playletmod.PayType `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP
SingleCoins int64 `json:"singleCoins"` // 单集金币(支付方式为1-金币时候生效)
TotalEpisode int64 `json:"totalEpisode"`
TopRank int64 `json:"topRank"`
RecommendRank int64 `json:"recommendRank"`
Status playletmod.Status `json:"status"`
IsFeatured bool `json:"isFeatured"` // 是否爆剧(true-是,false-否)
ShowOriginal bool `json:"showOriginal"` // 页面是否展示原创标识
IsRecommend bool `json:"isRecommend"`
ShowOnBanner bool `json:"showOnBanner"`
Banner string `json:"banner"`
MobileBanner string `json:"mobileBanner"` // 移动端banner图
SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
OnlineAt *time.Time `json:"onlineAt"` // 上架时间,上架时不传则按当前时间
}
// PlayletAddResp web端新增短剧响应
type PlayletAddResp struct {
Id int64 `json:"id"`
}
// PlayletUpdateReq web端更新短剧请求
type PlayletUpdateReq struct {
Id int64 `json:"id" binding:"required"`
Status *playletmod.Status `json:"status"`
IsFeatured *bool `json:"isFeatured"` // 是否爆剧(true-是,false-否)
ShowOriginal *bool `json:"showOriginal"` // 页面是否展示原创标识,不传保持原值
ShowOnBanner *bool `json:"showOnBanner"`
Banner *string `json:"banner"`
MobileBanner *string `json:"mobileBanner"` // 移动端banner图,传空字符串可清空
ThemeIds *[]int64 `json:"themeIds"`
CategoryIds *[]int64 `json:"categoryIds"` // 分类ID集合,可为空;未传categoryBinds时使用
CategoryBinds *[]PlayletCategoryBind `json:"categoryBinds"` // 分类绑定及排序,优先于categoryIds
Title *string `json:"title"`
PlayName *string `json:"playName"` // 剧名
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"`
ContentType *playletmod.ContentType `json:"contentType"`
OperateType *playletmod.OperateType `json:"operateType"` // 运营类型 1-短剧 2-漫剧
PayType *playletmod.PayType `json:"payType"` // 支付方式 0-免费 1-金币 2-VIP
SingleCoins *int64 `json:"singleCoins"` // 单集金币(支付方式为1-金币时候生效)
TotalEpisode *int64 `json:"totalEpisode"`
TopRank *int64 `json:"topRank"`
RecommendRank *int64 `json:"recommendRank"`
IsRecommend *bool `json:"isRecommend"`
SeoInfo *pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
OnlineAt *time.Time `json:"onlineAt"` // 上架时间,新上架时不传则按当前时间
}
// PlayletDelReq web端单/批量删除短剧请求
type PlayletDelReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条删除,传多个表示批量删除
}
// 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个表示单条,传多个表示批量;会重置其下全部剧集水印
}
// PlayletStatusSetReq web端单/批量设置短剧上下架请求
type PlayletStatusSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
Status playletmod.Status `json:"status"` // 上架状态 0-下架 1-上架
OnlineAt *time.Time `json:"onlineAt"` // 上架时间;传入则使用该时间,未传且从未设置过则用当前时间
}
// PlayletOnlineAtFillResp 回填已上架但上架时间为空的短剧
type PlayletOnlineAtFillResp struct {
UpdatedCount int64 `json:"updatedCount"` // 本次回填数量
}
// 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-否)
}
// PlayletOperateTypeSetReq web端单/批量设置短剧运营类型请求
type PlayletOperateTypeSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
OperateType playletmod.OperateType `json:"operateType"` // 运营类型 1-短剧 2-漫剧
}
// PlayletBannerSetReq web端单/批量设置短剧是否显示在首页banner请求
type PlayletBannerSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
ShowOnBanner bool `json:"showOnBanner"` // 是否显示在首页banner(true-显示,false-不显示)
}
// PlayletThemeSetReq web端单/批量设置短剧题材请求
type PlayletThemeSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
ThemeIds []int64 `json:"themeIds"` // 题材ID集合,可设置多个题材
}
// PlayletTagSetReq web端单/批量设置短剧标签请求
type PlayletTagSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
TagIds *[]int64 `json:"tagIds"` // 标签ID集合,可设置多个标签,传空数组表示清空标签,不传表示参数错误
}
// PlayletCategorySetReq web端单/批量设置短剧分类请求
type PlayletCategorySetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
CategoryIds *[]int64 `json:"categoryIds"` // 分类ID集合,未传categoryBinds时使用,传空数组表示清空分类
CategoryBinds *[]PlayletCategoryBind `json:"categoryBinds"` // 分类绑定及排序,优先于categoryIds,传空数组表示清空分类
}
// PlayletVirtualLikeSetReq web端单/批量设置短剧虚拟点赞数请求
type PlayletVirtualLikeSetReq struct {
Ids []int64 `json:"ids"` // 短剧ID集合,传1个表示单条设置,传多个表示批量设置
MinVirtualCountLike int64 `json:"minVirtualCountLike"` // 虚拟点赞数最小值,必须大于等于0
MaxVirtualCountLike int64 `json:"maxVirtualCountLike"` // 虚拟点赞数最大值,必须大于等于最小值
}
// PlayletThemeListReq web端题材分页列表请求
type PlayletThemeListReq struct {
pubdef.Page
Id *int64 `form:"id" json:"id"`
Name string `form:"name" json:"name"`
Slug string `form:"slug" json:"slug"` // slug,精确匹配
Status *bool `form:"status" json:"status"`
IsRecommend *bool `form:"isRecommend" json:"isRecommend"` // 是否推荐
}
// PlayletThemeListResp web端题材列表项
type PlayletThemeListResp struct {
Id int64 `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"` // slug
Icon string `json:"icon"`
Status bool `json:"status"`
IsRecommend bool `json:"isRecommend"` // 是否推荐
Rank int64 `json:"rank"`
SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
// PlayletThemeListPageResp web端题材分页列表响应
type PlayletThemeListPageResp struct {
response.BasePageResp
}
// PlayletThemeAddReq web端新增题材请求
type PlayletThemeAddReq struct {
Name string `json:"name" binding:"required"`
Slug string `json:"slug"` // slug,不传则按 SEO 关键词或名称自动生成
Icon string `json:"icon"`
Status bool `json:"status"`
IsRecommend bool `json:"isRecommend"` // 是否推荐
Rank int64 `json:"rank"`
SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
}
// PlayletThemeAddResp web端新增题材响应
type PlayletThemeAddResp struct {
Id int64 `json:"id"`
}
// PlayletThemeUpdateReq web端更新题材请求
type PlayletThemeUpdateReq struct {
Id int64 `json:"id" binding:"required"`
Name *string `json:"name"`
Slug *string `json:"slug"` // slug,历史数据为空时更新会自动生成
Icon *string `json:"icon"`
Status *bool `json:"status"`
IsRecommend *bool `json:"isRecommend"` // 是否推荐
Rank *int64 `json:"rank"`
SeoInfo *pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
}
// PlayletThemeDelReq web端删除题材请求
type PlayletThemeDelReq struct {
Id int64 `json:"id" binding:"required"`
}
// PlayletThemeRecommendSetReq web端单/批量设置题材是否推荐请求
type PlayletThemeRecommendSetReq struct {
Ids []int64 `json:"ids"` // 题材ID集合,传1个表示单条设置,传多个表示批量设置
IsRecommend bool `json:"isRecommend"` // 是否推荐(true-推荐,false-取消推荐)
}
// PlayletTagListReq web端标签分页列表请求
type PlayletTagListReq struct {
pubdef.Page
Id *int64 `form:"id" json:"id"`
Name string `form:"name" json:"name"`
Slug string `form:"slug" json:"slug"` // slug,精确匹配
Status *bool `form:"status" json:"status"`
}
// PlayletTagListResp web端标签列表项
type PlayletTagListResp struct {
Id int64 `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"` // slug
Status bool `json:"status"`
Rank int64 `json:"rank"`
SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
// PlayletTagListPageResp web端标签分页列表响应
type PlayletTagListPageResp struct {
response.BasePageResp
}
// PlayletTagAddReq web端新增标签请求
type PlayletTagAddReq struct {
Name string `json:"name" binding:"required"`
Slug string `json:"slug"` // slug,不传则按 SEO 关键词或名称自动生成
Status bool `json:"status"`
Rank int64 `json:"rank"`
SeoInfo pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
}
// PlayletTagAddResp web端新增标签响应
type PlayletTagAddResp struct {
Id int64 `json:"id"`
}
// PlayletTagUpdateReq web端更新标签请求
type PlayletTagUpdateReq struct {
Id int64 `json:"id" binding:"required"`
Name *string `json:"name"`
Slug *string `json:"slug"` // slug,历史数据为空时更新会自动生成
Status *bool `json:"status"`
Rank *int64 `json:"rank"`
SeoInfo *pubdef.SeoValue `json:"seoInfo"` // Seo相关信息
}
// PlayletTagDelReq web端删除标签请求
type PlayletTagDelReq struct {
Id int64 `json:"id" binding:"required"`
}
// PlayletChapterListReq web端章节分页列表请求
type PlayletChapterListReq struct {
pubdef.Page
PlayletId *int64 `form:"playletId" json:"playletId"`
Id *int64 `form:"id" json:"id"`
Status *playletchaptermod.Status `form:"status" json:"status"` // 上架状态 0-下架 1-上架
WatermarkStatus *playletchaptermod.WatermarkStatus `form:"watermarkStatus" json:"watermarkStatus"`
}
// PlayletChapterListResp web端章节列表项
type PlayletChapterListResp struct {
Id int64 `json:"id"`
PlayletId int64 `json:"playletId"`
MediaContentId uint `json:"mediaContentId"`
CurrentEpisode int64 `json:"currentEpisode"`
Title string `json:"title"`
Md5 string `json:"md5"`
Hash string `json:"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"`
Status playletchaptermod.Status `json:"status"` // 上架状态 0-下架 1-上架
PayType playletchaptermod.PayType `json:"payType"`
SingleCoins int64 `json:"singleCoins"`
WatermarkStatus playletchaptermod.WatermarkStatus `json:"watermarkStatus"`
MediaSourceId string `json:"mediaSourceId"`
MediaTaskId string `json:"mediaTaskId"`
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"`
CurrentEpisode int64 `json:"currentEpisode" binding:"required"`
Title string `json:"title"`
Md5 string `json:"md5"`
Hash string `json:"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"`
SingleCoins int64 `json:"singleCoins"`
MediaSourceId string `json:"mediaSourceId"`
Status *playletchaptermod.Status `json:"status"` // 上架状态,不传按媒资来源默认
}
// PlayletChapterAddResp web端新增章节响应
type PlayletChapterAddResp struct {
Id int64 `json:"id"`
}
// PlayletChapterUpdateReq web端更新章节请求
type PlayletChapterUpdateReq struct {
Id int64 `json:"id" binding:"required"`
CurrentEpisode *int64 `json:"currentEpisode"`
Title *string `json:"title"`
Md5 *string `json:"md5"`
Hash *string `json:"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"`
SingleCoins *int64 `json:"singleCoins"`
Status *playletchaptermod.Status `json:"status"` // 上架状态 0-下架 1-上架
}
// PlayletChapterStatusFillResp 回填历史剧集上架状态响应
type PlayletChapterStatusFillResp struct {
UpdatedCount int64 `json:"updatedCount"` // 本次回填数量
}
// PlayletChapterStatusSetReq web端单/批量设置章节上架状态请求
type PlayletChapterStatusSetReq struct {
Ids []int64 `json:"ids"` // 章节ID集合,传1个表示单条设置,传多个表示批量设置
Status playletchaptermod.Status `json:"status"` // 上架状态 0-下架 1-上架
}
// 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)
}
// 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"` // 同步结果集合
}
// PlayletSlugSyncReq web端同步历史空 slug 请求
type PlayletSlugSyncReq struct {
MaxSize int64 `json:"maxSize"` // 本次最多处理的空 slug 记录数,默认500,最大2000
}
// PlayletSlugSyncResp web端同步历史空 slug 响应
type PlayletSlugSyncResp struct {
ThemeUpdated int64 `json:"themeUpdated"` // 本次补齐的题材数
TagUpdated int64 `json:"tagUpdated"` // 本次补齐的标签数
PlayletUpdated int64 `json:"playletUpdated"` // 本次补齐的短剧数
HomeConfigUpdated int64 `json:"homeConfigUpdated"` // 本次补齐的首页配置数
HasMore bool `json:"hasMore"` // 是否还有未处理的历史数据
}
// PlayletSalesSortType 销售数据排序,均为降序
type PlayletSalesSortType int
const (
PlayletSalesSortUnlock PlayletSalesSortType = 0 // 金币解锁次数
PlayletSalesSortLike PlayletSalesSortType = 1 // 点赞数
PlayletSalesSortCollect PlayletSalesSortType = 2 // 收藏数
)
// PlayletSalesReq 短剧销售数据列表请求。起止时间均为北京时间,都不传时默认昨天。
type PlayletSalesReq struct {
Id *int64 `form:"id" json:"id"` // 短剧ID
Title string `form:"title" json:"title"` // 标题模糊匹配
StartTime string `form:"startTime" json:"startTime"` // 开始时间:2006-01-02 / 2006-01-02 15:04:05 / RFC3339
EndTime string `form:"endTime" json:"endTime"` // 结束时间:2006-01-02 / 2006-01-02 15:04:05 / RFC3339
SortType PlayletSalesSortType `form:"sortType" json:"sortType"` // 排序:0金币解锁次数 1点赞数 2收藏数
}
// PlayletSalesItem 短剧销售数据列表项,指标均为所选时间段内数据。
type PlayletSalesItem struct {
Id int64 `json:"id"`
Title string `json:"title"`
PlayName string `json:"playName"`
Cover string `json:"cover"`
Slug string `json:"slug"`
Status playletmod.Status `json:"status"`
UnlockCount int64 `json:"unlockCount"` // 金币解锁次数
UnlockCoins int64 `json:"unlockCoins"` // 金币解锁消耗
LikeCount int64 `json:"likeCount"` // 期间新增且当前仍在的短剧点赞数
CollectCount int64 `json:"collectCount"` // 期间新增且当前仍在的短剧收藏数
}
// PlayletSalesResp 短剧销售数据列表响应,最多返回 50 条。
type PlayletSalesResp struct {
StartTime string `json:"startTime"` // 实际统计开始时间(北京时间)
EndTime string `json:"endTime"` // 实际统计结束时间(北京时间)
List []*PlayletSalesItem `json:"list"`
}