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"` // 虚拟热度最大值 }