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

167 lines
10 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 srv_videoinfo
import (
"time"
"videoweb/pub/models/videoinformationmod"
"videoweb/pub/pubdef"
)
type VideoInfoReq struct {
Id *int64 `json:"id"` //
ActressIds *[]int64 `json:"actressIds" bson:"actressIds"` // 女优ID
Title *string `json:"title"` // 标题
Bango *string `json:"bango"` // 番号,
CreatorId *int64 `json:"creatorId"` // 作者Id
Status *pubdef.InformationStatus `json:"status"` // 帖子上架状态
Tag *int64 `json:"tag" ` // 标签
IsHot *bool `json:"isHot"` // 是否热门
IsRecommend *bool `json:"isRecommend"` // 是否推荐 true-推荐 false-不推荐
MediaType *videoinformationmod.MediaType `json:"mediaType"` // 资源类型
CreatorName *string `json:"creatorName"` // 作者名称
Keyworld *string `json:"keyworld"` // 关键字
CategoryId *int64 `json:"categoryId"` // 分类ID
VideoTaskId *string `json:"videoTaskId"` // 视频任务id
IsTop *bool `json:"isTop" bson:"isTop"` // 是否置顶
VideoFileId *string `json:"videoFileId"` // 切片id(切片列表的ID)
Sort int64 `json:"sort"` // 排序方式 0=创建时间 1=上架时间 2=更新时间 3=排序值 4=播放次数。按分类查询且排序方式为排序值时,使用该分类的 categoryRanks 排序
pubdef.Page
StartTime *string `json:"startTime"` // 创建时间-开始
EndTime *string `json:"endTime"` // 创建时间-截止
OptionAccount *string `json:"optionAccount"` // 最后操作人
}
type VideoInfoResp struct {
Total int64 `json:"total"`
List videoinformationmod.VideoInformationList `json:"list"`
}
type AddVideoReq struct {
FileIds []string `json:"fileId"` // 资源id
}
type SyncMediaFileReq struct {
FileIds []string `json:"fileId"` // 媒资库影片 ID
SourceVersion string `json:"sourceVersion,omitempty"` // v1 / v2
FirstTagMap map[string]string `json:"firstTagMap,omitempty"` // 覆盖一级标签
MinVideoSeconds int32 `json:"minVideoSeconds,omitempty"` // 最短时长,0 表示不限制
VideoList []SyncMediaFileItem `json:"videoList,omitempty"` // 媒资库搜索结果,优先使用
}
type SyncMediaFileItem struct {
Id string `json:"id"`
Title string `json:"title"`
FieldNameFs string `json:"fieldNameFs"`
FirstTag string `json:"firstTag"`
SecondTags []string `json:"secondTags"`
VideoTime int32 `json:"videoTime"`
CoverImg string `json:"coverImg"`
Publish string `json:"publish"`
Bango string `json:"bango"`
TaskID string `json:"taskId"`
Keyworld []string `json:"keyworld"`
Width int64 `json:"width"`
Height int64 `json:"height"`
}
type SyncMediaFileResp struct {
Synced int `json:"synced"`
Failed int `json:"failed"`
}
type VideoInfoUpdate struct {
Title *string `json:"title,omitempty" bson:"title,omitempty"` // 帖子标题
Slug *string `json:"slug,omitempty" bson:"slug,omitempty"` // slug
ActressIds *[]int64 `json:"actressIds" bson:"actressIds,omitempty"` // 女优ID
AddedTime *time.Time `json:"addedTime,omitempty" bson:"addedTime,omitempty"`
CreatorId *int64 `json:"creatorId,omitempty" bson:"creatorId,omitempty"` // 作者Id
Keyworld *[]string `bson:"keyworld,omitempty" json:"keyworld,omitempty"` //
MediaType *videoinformationmod.MediaType `json:"mediaType,omitempty" bson:"mediaType,omitempty"` // 资源类型
FirstTag *string `bson:"firstTag,omitempty" json:"firstTag,omitempty"` // 一级标签
SecondTags *[]string `bson:"secondTags,omitempty" json:"secondTags,omitempty"` // 二级标签标签
CoverImg *string `bson:"coverImg,omitempty" json:"coverImg,omitempty"` // 封面
UnencryptedImage *string `bson:"unencryptedImage,omitempty" json:"unencryptedImage"` // 不加密封面
Desc *string `bson:"desc,omitempty" json:"desc,omitempty"` // 详细描述
Remark *string `bson:"remark,omitempty" json:"remark,omitempty"` // 备注
Nodes *[]videoinformationmod.Node `json:"nodes,omitempty" bson:"nodes,omitempty"` // 节点
Status *pubdef.InformationStatus `json:"status,omitempty" bson:"status,omitempty"` // 帖子上架状态
Sort *int64 `json:"sort,omitempty" bson:"sort,omitempty"` // 排序
CategoryId *int64 `json:"categoryId" bson:"categoryId,omitempty"` // 分类ID
CategoryRanks *[]videoinformationmod.VideoCategoryRank `json:"categoryRanks" bson:"categoryRanks,omitempty"` // 各分类下的排序,传空数组表示清空
Cover *string `json:"cover,omitempty" bson:"cover,omitempty"` // 视频封面
Height *int64 `json:"height,omitempty" bson:"height,omitempty"` // 分辨率高(视频才会存在)
Width *int64 `json:"width,omitempty" bson:"width,omitempty"` // 分辨率宽(视频才会存在)
VideoTime *int32 `bson:"videoTime,omitempty" json:"videoTime,omitempty"` // 影片长度
Tags *[]int64 `json:"tags,omitempty" bson:"tags,omitempty"` // 标签
IsHot *bool `json:"isHot,omitempty" bson:"isHot,omitempty"` // 是否热门
IsRecommend *bool `json:"isRecommend,omitempty" bson:"isRecommend,omitempty"` // 是否推荐 true-推荐 false-不推荐
UpdatedAt *time.Time `json:"updatedAt,omitempty" bson:"updatedAt,omitempty"` // 更新时间
CreatorName *string `bson:"creatorName,omitempty"` // 作者名
IsTop *bool `json:"isTop,omitempty" bson:"isTop,omitempty"` // 是否置顶
Video *videoinformationmod.VideoInfo `bson:"video,omitempty"` // 视频
IsReIndexNow *bool `json:"isReIndexNow" bson:"isReIndexNow"` // 是否重新提交索引
IndexNow *int64 `bson:"indexNow,omitempty"`
IssuedAt *time.Time `json:"issuedAt" bson:"issuedAt"` // 发行时间
IssuedBrand *string `json:"issuedBrand" bson:"issuedBrand"` // 发行商
Bango *string `bson:"bango,omitempty" json:"bango"` // 番号,唯一
SecondUpdatedAt *time.Time `json:"secondUpdatedAt,omitempty" bson:"secondUpdatedAt,omitempty"` // 二次修改时间
}
type VideoInfoUpdateReq struct {
Id int64 `json:"id" binding:"required"`
Param VideoInfoUpdate `json:"param" bson:"param"` // appId,唯一id
}
type VideoInfoDelReq struct {
Id int64 `json:"id" binding:"required"`
}
type AddVideoCollectionReq struct {
Title string `json:"title,omitempty" bson:"title,omitempty"` // 帖子标题
Keyworld []string `bson:"keyworld,omitempty" json:"keyworld,omitempty"` // 关键字
FirstTag string `bson:"firstTag,omitempty" json:"firstTag,omitempty"` // 一级标签
SecondTags []string `bson:"secondTags,omitempty" json:"secondTags,omitempty"` // 二级标签标签
CoverImg string `bson:"coverImg,omitempty" json:"coverImg,omitempty"` // 封面
Desc string `bson:"desc,omitempty" json:"desc,omitempty"` // 详细描述
Remark string `bson:"remark,omitempty" json:"remark,omitempty"` // 备注
Tags []int64 `json:"tags,omitempty" bson:"tags,omitempty"` // 标签
}
type VideoAddTagsReq struct {
VideoIds []int64 `json:"videoIds" binding:"required"` // 视频ID集合
Tags []int64 `json:"tags" binding:"required"` // 统一标签ID集合
}
type VideoSetTagsReq struct {
Ids []int64 `json:"ids" binding:"required"` // 视频ID集合,传1个表示单条设置,传多个表示批量设置
TagIds *[]int64 `json:"tagIds"` // 标签ID集合,可设置多个标签,传空数组表示清空标签,不传表示参数错误
}
type SetFakeLikesReq struct {
Ids []int64 `json:"ids"` // 视频ID集合,支持单个或批量
LikesMin int64 `json:"likesMin"` // 假点赞数随机最小值,包含该值
LikesMax int64 `json:"likesMax"` // 假点赞数随机最大值,包含该值
}
type SetFakeWatchTimesReq struct {
Ids []int64 `json:"ids"` // 视频ID集合,支持单个或批量
WatchTimesMin int64 `json:"watchTimesMin"` // 假观看次数随机最小值,包含该值
WatchTimesMax int64 `json:"watchTimesMax"` // 假观看次数随机最大值,包含该值
}
// SetVideoHeatReq 单/批量设置视频热度
type SetVideoHeatReq struct {
Ids []int64 `json:"ids"` // 视频ID集合
HeatMin int64 `json:"heatMin"` // 热度最小值
HeatMax int64 `json:"heatMax"` // 热度最大值
}
type SetRecommendReq struct {
Ids []int64 `json:"ids"` // 视频ID集合,传1个表示单条设置,传多个表示批量设置
IsRecommend bool `json:"isRecommend"` // 是否推荐 true-推荐 false-不推荐
}
type SetFakeCountResp struct {
MatchedCount int64 `json:"matchedCount"` // 匹配到的视频数量
ModifiedCount int64 `json:"modifiedCount"` // 实际修改的视频数量
}