90 lines
5.2 KiB
Go
90 lines
5.2 KiB
Go
package dto
|
|
|
|
import (
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
// CreateStrategyReq 创建策略请求
|
|
type CreateStrategyReq struct {
|
|
g.Meta `path:"/create" method:"post" tags:"策略管理" summary:"创建匹配策略" dc:"创建新的广告匹配策略"`
|
|
Name string `json:"name" v:"required|length:3,50"` // 策略名称
|
|
Description string `json:"description" v:"max:500"` // 描述
|
|
TenantLevel string `json:"tenant_level" v:"required|in:basic,standard,premium"` // 租户级别
|
|
MinConversion float64 `json:"min_conversion" v:"required|min:0|max:1"` // 最低转化率
|
|
MaxConversion float64 `json:"max_conversion" v:"required|min:0|max:1"` // 最高转化率
|
|
SourceWeights map[string]int `json:"source_weights" v:"required"` // 广告源权重
|
|
MaxAdsPerReq int `json:"max_ads_per_req" v:"required|min:1|max:50"` // 每次请求最大广告数
|
|
MaxReqPerHour int `json:"max_req_per_hour" v:"required|min:1"` // 每小时最大请求次数
|
|
Priority int `json:"priority" v:"required|min:0|max:100"` // 优先级
|
|
Status string `json:"status" v:"required|in:active,inactive"` // 状态
|
|
}
|
|
|
|
// UpdateStrategyReq 更新策略请求
|
|
type UpdateStrategyReq struct {
|
|
g.Meta `path:"/update" method:"put" tags:"策略管理" summary:"更新匹配策略" dc:"更新现有的广告匹配策略"`
|
|
Id int64 `json:"id" v:"required"` // 策略ID
|
|
Name string `json:"name" v:"required|length:3,50"` // 策略名称
|
|
Description string `json:"description" v:"max:500"` // 描述
|
|
TenantLevel string `json:"tenant_level" v:"required|in:basic,standard,premium"` // 租户级别
|
|
MinConversion float64 `json:"min_conversion" v:"required|min:0|max:1"` // 最低转化率
|
|
MaxConversion float64 `json:"max_conversion" v:"required|min:0|max:1"` // 最高转化率
|
|
SourceWeights map[string]int `json:"source_weights" v:"required"` // 广告源权重
|
|
MaxAdsPerReq int `json:"max_ads_per_req" v:"required|min:1|max:50"` // 每次请求最大广告数
|
|
MaxReqPerHour int `json:"max_req_per_hour" v:"required|min:1"` // 每小时最大请求次数
|
|
Priority int `json:"priority" v:"required|min:0|max:100"` // 优先级
|
|
Status string `json:"status" v:"required|in:active,inactive"` // 状态
|
|
}
|
|
|
|
// DeleteStrategyReq 删除策略请求
|
|
type DeleteStrategyReq struct {
|
|
g.Meta `path:"/delete" method:"delete" tags:"策略管理" summary:"删除匹配策略" dc:"删除指定的广告匹配策略"`
|
|
Id int64 `json:"id" v:"required"` // 策略ID
|
|
}
|
|
|
|
// GetStrategyReq 获取策略请求
|
|
type GetStrategyReq struct {
|
|
g.Meta `path:"/getByID" method:"get" tags:"策略管理" summary:"获取策略详情" dc:"获取指定策略的详细信息"`
|
|
Id int64 `json:"id" v:"required"` // 策略ID
|
|
}
|
|
|
|
// GetStrategyListReq 获取策略列表请求
|
|
type GetStrategyListReq struct {
|
|
g.Meta `path:"/getList" method:"get" tags:"策略管理" summary:"获取策略列表" dc:"分页获取策略列表"`
|
|
Page int `json:"page" v:"required|min:1"` // 页码
|
|
Size int `json:"size" v:"required|min:1|max:100"` // 每页数量
|
|
TenantLevel string `json:"tenant_level"` // 租户级别筛选
|
|
Status string `json:"status"` // 状态筛选
|
|
}
|
|
|
|
// StrategyRes 策略响应
|
|
type StrategyRes struct {
|
|
Id int64 `json:"id"` // ID
|
|
Name string `json:"name"` // 策略名称
|
|
Description string `json:"description"` // 描述
|
|
TenantLevel string `json:"tenant_level"` // 租户级别
|
|
MinConversion float64 `json:"min_conversion"` // 最低转化率
|
|
MaxConversion float64 `json:"max_conversion"` // 最高转化率
|
|
SourceWeights map[string]int `json:"source_weights"` // 广告源权重
|
|
MaxAdsPerReq int `json:"max_ads_per_req"` // 每次请求最大广告数
|
|
MaxReqPerHour int `json:"max_req_per_hour"` // 每小时最大请求次数
|
|
Priority int `json:"priority"` // 优先级
|
|
Status string `json:"status"` // 状态
|
|
CreatedAt string `json:"created_at"` // 创建时间
|
|
UpdatedAt string `json:"updated_at"` // 更新时间
|
|
CreatedBy int64 `json:"created_by"` // 创建人
|
|
UpdatedBy int64 `json:"updated_by"` // 更新人
|
|
}
|
|
|
|
// GetStrategyListRes 获取策略列表响应
|
|
type GetStrategyListRes struct {
|
|
List []*StrategyRes `json:"list"` // 策略列表
|
|
Total int64 `json:"total"` // 总数
|
|
Page int `json:"page"` // 当前页
|
|
Size int `json:"size"` // 每页数量
|
|
}
|
|
|
|
// DeleteStrategyRes 删除策略响应
|
|
type DeleteStrategyRes struct {
|
|
Success bool `json:"success"` // 是否成功
|
|
}
|