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"` // 是否成功 }