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只查非原创,不传查全部 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"` // 是否原创 MediaBusiness string `json:"mediaBusiness"` // 媒资业务来源,按媒资标题前缀记录,如 CGDJ;空表示未标记 IsRecommend bool `json:"isRecommend"` ShowOnBanner bool `json:"showOnBanner"` Banner string `json:"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"` 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"` 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-否) IsRecommend bool `json:"isRecommend"` ShowOnBanner bool `json:"showOnBanner"` Banner string `json:"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-否) ShowOnBanner *bool `json:"showOnBanner"` Banner *string `json:"banner"` ThemeIds *[]int64 `json:"themeIds"` CategoryIds *[]int64 `json:"categoryIds"` // 分类ID集合,可为空;未传categoryBinds时使用 CategoryBinds *[]PlayletCategoryBind `json:"categoryBinds"` // 分类绑定及排序,优先于categoryIds Title *string `json:"title"` 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"` 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"` }