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

115 lines
5.0 KiB
Go

package proto
import (
"time"
"videoweb/pub/common/response"
"videoweb/pub/pubdef"
)
// PlayletHomeConfigListReq web端首页配置分页列表请求
type PlayletHomeConfigListReq struct {
pubdef.Page
Id *int64 `form:"id" json:"id"`
Slug string `form:"slug" json:"slug"` // 页面路径标识
Title string `form:"title" json:"title"`
Desc string `form:"desc" json:"desc"`
Label string `form:"label" json:"label"`
Style string `form:"style" json:"style"`
ModuleType *int64 `form:"moduleType" json:"moduleType"`
DataType *int64 `form:"dataType" json:"dataType"` // 1全部上架短剧 2全部上架视频
RecommendType *int64 `form:"recommendType" json:"recommendType"`
CategoryId *int64 `form:"categoryId" json:"categoryId"`
Enabled *bool `form:"enabled" json:"enabled"`
}
// PlayletHomeConfigListResp web端首页配置列表项
type PlayletHomeConfigListResp struct {
Id int64 `json:"id"`
Slug string `json:"slug"` // 页面路径标识
Title string `json:"title"`
Desc string `json:"desc"`
Label string `json:"label"`
Style string `json:"style"`
CardBackgroundImage string `json:"cardBackgroundImage"`
ModuleType int64 `json:"moduleType"`
DataType int64 `json:"dataType"` // 1全部上架短剧 2全部上架视频
RecommendType int64 `json:"recommendType"`
CategoryId int64 `json:"categoryId"`
TopicIds []int64 `json:"topicIds"` // 专题ID集合 短剧为题材ID 视频为分类ID
Rank int64 `json:"rank"`
Enabled bool `json:"enabled"`
Limit int64 `json:"limit"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
type PlayletHomeConfigListPageResp struct {
response.BasePageResp
}
// PlayletHomeTopicOptionsReq 首页专题下拉选项分页请求
type PlayletHomeTopicOptionsReq struct {
pubdef.Page
DataType int64 `form:"dataType" json:"dataType" binding:"required"` // 1短剧题材 2视频分类
ConfigId int64 `form:"configId" json:"configId"` // 编辑时传当前首页配置ID,用于回显已选项
}
// PlayletHomeTopicOption 首页专题下拉选项
type PlayletHomeTopicOption struct {
Id int64 `json:"id"` // 题材或视频分类ID
Name string `json:"name"` // 题材或视频分类名称
Status bool `json:"status"` // 上架状态,已选项下架时仍可回显
}
// PlayletHomeTopicOptionsResp 首页专题下拉选项分页响应
type PlayletHomeTopicOptionsResp struct {
List []*PlayletHomeTopicOption `json:"list"` // 当前页可选项
SelectedList []*PlayletHomeTopicOption `json:"selectedList"` // 当前配置已选项,独立于分页
TotalCount int64 `json:"totalCount"` // 可选项总数
PageNum int64 `json:"pageNum"` // 当前页码
PageSize int64 `json:"pageSize"` // 每页数量
}
type PlayletHomeConfigAddReq struct {
Title string `json:"title" binding:"required"`
Slug string `json:"slug"` // 页面路径标识 不传则按标题自动生成
Desc string `json:"desc"`
Label string `json:"label"`
Style string `json:"style" binding:"required"`
CardBackgroundImage string `json:"cardBackgroundImage"`
ModuleType int64 `json:"moduleType"`
DataType int64 `json:"dataType"` // 1全部上架短剧 2全部上架视频
RecommendType int64 `json:"recommendType" binding:"required"`
CategoryId int64 `json:"categoryId"`
TopicIds []int64 `json:"topicIds"` // 专题ID集合 短剧为题材ID 视频为分类ID
Rank int64 `json:"rank"`
Enabled bool `json:"enabled"`
Limit int64 `json:"limit"`
}
type PlayletHomeConfigAddResp struct {
Id int64 `json:"id"`
}
type PlayletHomeConfigUpdateReq struct {
Id int64 `json:"id" binding:"required"`
Slug *string `json:"slug"` // 不传保持原值 历史空值自动生成
Title *string `json:"title"`
Desc *string `json:"desc"`
Label *string `json:"label"`
Style *string `json:"style"`
CardBackgroundImage *string `json:"cardBackgroundImage"`
ModuleType *int64 `json:"moduleType"`
DataType *int64 `json:"dataType"` // 1全部上架短剧 2全部上架视频
RecommendType *int64 `json:"recommendType"`
CategoryId *int64 `json:"categoryId"`
TopicIds *[]int64 `json:"topicIds"` // 不传保持原值 传空数组清空专题
Rank *int64 `json:"rank"`
Enabled *bool `json:"enabled"`
Limit *int64 `json:"limit"`
}
type PlayletHomeConfigDelReq struct {
Ids []int64 `json:"ids" binding:"required"`
}