2025-12-06 10:38:48 +08:00
|
|
|
|
package dto
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2025-12-09 16:10:45 +08:00
|
|
|
|
"cid/model/entity"
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
2026-02-24 16:24:47 +08:00
|
|
|
|
"gitea.com/red-future/common/beans"
|
2025-12-06 10:38:48 +08:00
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// CreateAdSourceReq 创建广告源请求
|
|
|
|
|
|
type CreateAdSourceReq struct {
|
2025-12-06 15:41:38 +08:00
|
|
|
|
g.Meta `path:"/create" method:"post" tags:"广告源管理" summary:"创建广告源" dc:"创建新的广告源配置"`
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
// 基本信息
|
|
|
|
|
|
Name string `json:"name" v:"required"` // 广告源名称
|
|
|
|
|
|
Code string `json:"code" v:"required"` // 广告源编码,唯一标识
|
|
|
|
|
|
Provider string `json:"provider" v:"required"` // 提供商:google、facebook、baidu、tencent、self等
|
|
|
|
|
|
Type string `json:"type" v:"required|in:self,third_party,exchange"` // 类型
|
|
|
|
|
|
Description string `json:"description"` // 描述
|
|
|
|
|
|
|
|
|
|
|
|
// 连接配置
|
|
|
|
|
|
APIEndpoint string `json:"apiEndpoint" v:"required"` // API端点
|
|
|
|
|
|
APIVersion string `json:"apiVersion"` // API版本
|
|
|
|
|
|
AuthType string `json:"authType" v:"required|in:api_key,oauth,basic"` // 认证类型
|
|
|
|
|
|
AuthConfig map[string]interface{} `json:"authConfig" v:"required"` // 认证配置
|
|
|
|
|
|
Headers map[string]string `json:"headers"` // 请求头配置
|
|
|
|
|
|
Timeout int `json:"timeout"` // 超时时间(毫秒)
|
|
|
|
|
|
RetryCount int `json:"retryCount"` // 重试次数
|
|
|
|
|
|
|
|
|
|
|
|
// 基础配置
|
|
|
|
|
|
SupportedFormats []string `json:"supportedFormats" v:"required"` // 支持的广告格式
|
|
|
|
|
|
SupportedSizes []string `json:"supportedSizes"` // 支持的尺寸
|
|
|
|
|
|
SupportedDevices []string `json:"supportedDevices"` // 支持的设备类型
|
|
|
|
|
|
SupportedOS []string `json:"supportedOS"` // 支持的操作系统
|
|
|
|
|
|
SupportedCountries []string `json:"supportedCountries"` // 支持的国家/地区
|
|
|
|
|
|
|
|
|
|
|
|
// 竞价配置
|
|
|
|
|
|
BiddingType string `json:"biddingType" v:"required|in:cpm,cpc,cpa,rtb"` // 竞价类型
|
|
|
|
|
|
MinBidAmount int64 `json:"minBidAmount"` // 最小出价(分)
|
|
|
|
|
|
MaxBidAmount int64 `json:"maxBidAmount"` // 最大出价(分)
|
|
|
|
|
|
BidIncrement int64 `json:"bidIncrement"` // 出价增量(分)
|
|
|
|
|
|
DefaultBidAmount int64 `json:"defaultBidAmount"` // 默认出价(分)
|
|
|
|
|
|
AutoOptimization bool `json:"autoOptimization"` // 是否自动优化
|
|
|
|
|
|
|
|
|
|
|
|
// 最大广告数
|
|
|
|
|
|
MaxAdsPerRequest int `json:"maxAdsPerRequest"` // 单次请求最大广告数量
|
|
|
|
|
|
|
|
|
|
|
|
// 其他配置
|
|
|
|
|
|
BrandSafety bool `json:"brandSafety"` // 品牌安全
|
|
|
|
|
|
Viewability bool `json:"viewability"` // 可见性支持
|
|
|
|
|
|
RealTimeBidding bool `json:"realTimeBidding"` // 实时竞价
|
|
|
|
|
|
HeaderBidding bool `json:"headerBidding"` // 标题竞价
|
|
|
|
|
|
|
|
|
|
|
|
// 财务设置
|
|
|
|
|
|
BillingModel string `json:"billingModel" v:"required|in:cpm,cpc,cpa,rev_share"` // 计费模式
|
|
|
|
|
|
PaymentTerms string `json:"paymentTerms" v:"in:net_30,net_60,net_90"` // 支付条款
|
|
|
|
|
|
RevShareRate float64 `json:"revShareRate" v:"between:0,1"` // 收入分成比例
|
|
|
|
|
|
MinPayment int64 `json:"minPayment"` // 最小支付金额(分)
|
|
|
|
|
|
Currency string `json:"currency"` // 货币单位
|
|
|
|
|
|
TaxInclusive bool `json:"taxInclusive"` // 是否含税
|
|
|
|
|
|
|
|
|
|
|
|
// 系统信息
|
|
|
|
|
|
Priority int `json:"priority"` // 优先级
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type CreateAdSourceRes struct {
|
|
|
|
|
|
Id string `json:"id"` // 广告源ID
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// GetAdSourceReq 获取广告源详情请求
|
|
|
|
|
|
type GetAdSourceReq struct {
|
2025-12-06 15:41:38 +08:00
|
|
|
|
g.Meta `path:"/getByID" method:"get" tags:"广告源管理" summary:"获取广告源详情" dc:"根据ID获取单个广告源详情"`
|
2025-12-06 10:38:48 +08:00
|
|
|
|
Id string `json:"id" v:"required"` // 广告源ID
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type GetAdSourceRes struct {
|
|
|
|
|
|
*entity.AdSource
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ListAdSourceReq 获取广告源列表请求
|
|
|
|
|
|
type ListAdSourceReq struct {
|
2025-12-06 15:41:38 +08:00
|
|
|
|
g.Meta `path:"/getList" method:"get" tags:"广告源管理" summary:"获取广告源列表" dc:"分页查询广告源列表,支持多条件筛选"`
|
2026-01-08 11:07:58 +08:00
|
|
|
|
*beans.Page
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
Name string `json:"name"` // 广告源名称模糊查询
|
|
|
|
|
|
Code string `json:"code"` // 广告源编码
|
|
|
|
|
|
Provider string `json:"provider"` // 提供商
|
|
|
|
|
|
Type string `json:"type"` // 类型
|
|
|
|
|
|
Status string `json:"status"` // 状态
|
|
|
|
|
|
Health string `json:"health"` // 健康状态
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type ListAdSourceRes struct {
|
|
|
|
|
|
List []*entity.AdSource `json:"list"`
|
|
|
|
|
|
Total int `json:"total"`
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// UpdateAdSourceReq 更新广告源请求
|
|
|
|
|
|
type UpdateAdSourceReq struct {
|
2025-12-06 15:41:38 +08:00
|
|
|
|
g.Meta `path:"/update" method:"put" tags:"广告源管理" summary:"更新广告源" dc:"更新广告源信息"`
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
Id string `json:"id" v:"required"` // 广告源ID
|
|
|
|
|
|
|
|
|
|
|
|
// 基本信息
|
|
|
|
|
|
Name string `json:"name"` // 广告源名称
|
|
|
|
|
|
Description string `json:"description"` // 描述
|
|
|
|
|
|
|
|
|
|
|
|
// 连接配置
|
|
|
|
|
|
APIEndpoint string `json:"apiEndpoint"` // API端点
|
|
|
|
|
|
APIVersion string `json:"apiVersion"` // API版本
|
|
|
|
|
|
AuthType string `json:"authType"` // 认证类型
|
|
|
|
|
|
AuthConfig map[string]interface{} `json:"authConfig"` // 认证配置
|
|
|
|
|
|
Headers map[string]string `json:"headers"` // 请求头配置
|
|
|
|
|
|
Timeout int `json:"timeout"` // 超时时间(毫秒)
|
|
|
|
|
|
RetryCount int `json:"retryCount"` // 重试次数
|
|
|
|
|
|
|
|
|
|
|
|
// 基础配置
|
|
|
|
|
|
SupportedFormats []string `json:"supportedFormats"` // 支持的广告格式
|
|
|
|
|
|
SupportedSizes []string `json:"supportedSizes"` // 支持的尺寸
|
|
|
|
|
|
SupportedDevices []string `json:"supportedDevices"` // 支持的设备类型
|
|
|
|
|
|
SupportedOS []string `json:"supportedOS"` // 支持的操作系统
|
|
|
|
|
|
SupportedCountries []string `json:"supportedCountries"` // 支持的国家/地区
|
|
|
|
|
|
|
|
|
|
|
|
// 竞价配置
|
|
|
|
|
|
BiddingType string `json:"biddingType"` // 竞价类型
|
|
|
|
|
|
MinBidAmount int64 `json:"minBidAmount"` // 最小出价(分)
|
|
|
|
|
|
MaxBidAmount int64 `json:"maxBidAmount"` // 最大出价(分)
|
|
|
|
|
|
BidIncrement int64 `json:"bidIncrement"` // 出价增量(分)
|
|
|
|
|
|
DefaultBidAmount int64 `json:"defaultBidAmount"` // 默认出价(分)
|
|
|
|
|
|
AutoOptimization bool `json:"autoOptimization"` // 是否自动优化
|
|
|
|
|
|
|
|
|
|
|
|
// 最大广告数
|
|
|
|
|
|
MaxAdsPerRequest int `json:"maxAdsPerRequest"` // 单次请求最大广告数量
|
|
|
|
|
|
|
|
|
|
|
|
// 其他配置
|
|
|
|
|
|
BrandSafety bool `json:"brandSafety"` // 品牌安全
|
|
|
|
|
|
Viewability bool `json:"viewability"` // 可见性支持
|
|
|
|
|
|
RealTimeBidding bool `json:"realTimeBidding"` // 实时竞价
|
|
|
|
|
|
HeaderBidding bool `json:"headerBidding"` // 标题竞价
|
|
|
|
|
|
|
|
|
|
|
|
// 财务设置
|
|
|
|
|
|
BillingModel string `json:"billingModel"` // 计费模式
|
|
|
|
|
|
PaymentTerms string `json:"paymentTerms"` // 支付条款
|
|
|
|
|
|
RevShareRate float64 `json:"revShareRate"` // 收入分成比例
|
|
|
|
|
|
MinPayment int64 `json:"minPayment"` // 最小支付金额(分)
|
|
|
|
|
|
Currency string `json:"currency"` // 货币单位
|
|
|
|
|
|
TaxInclusive bool `json:"taxInclusive"` // 是否含税
|
|
|
|
|
|
|
|
|
|
|
|
// 系统信息
|
|
|
|
|
|
Priority int `json:"priority"` // 优先级
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// UpdateAdSourceStatusReq 更新广告源状态请求
|
|
|
|
|
|
type UpdateAdSourceStatusReq struct {
|
2025-12-06 15:41:38 +08:00
|
|
|
|
// g.Meta `path:"/adsource" method:"patch" tags:"广告源管理" summary:"更新广告源状态" dc:"更新广告源状态"` // 暂时注释,缺少对应的controller方法
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
Id string `json:"id" v:"required"` // 广告源ID
|
|
|
|
|
|
Status string `json:"status" v:"required"` // 广告源状态:active、inactive、maintenance
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// DeleteAdSourceReq 删除广告源请求
|
|
|
|
|
|
type DeleteAdSourceReq struct {
|
2025-12-06 15:41:38 +08:00
|
|
|
|
g.Meta `path:"/delete" method:"delete" tags:"广告源管理" summary:"删除广告源" dc:"删除指定的广告源"`
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
Id string `json:"id" v:"required"` // 广告源ID
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// TestAdSourceReq 测试广告源连接请求
|
|
|
|
|
|
type TestAdSourceReq struct {
|
2025-12-06 15:41:38 +08:00
|
|
|
|
// g.Meta `path:"/adsource-test" method:"post" tags:"广告源管理" summary:"测试广告源连接" dc:"测试广告源的连接性和可用性"` // 暂时注释,缺少对应的controller方法
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
|
|
|
|
|
Id string `json:"id" v:"required"` // 广告源ID
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
type TestAdSourceRes struct {
|
2025-12-19 10:52:14 +08:00
|
|
|
|
Success bool `json:"success"` // 测试是否成功
|
|
|
|
|
|
ResponseTime int64 `json:"responseTime"` // 响应时间(毫秒)
|
|
|
|
|
|
ErrorMessage string `json:"errorMessage"` // 错误信息
|
|
|
|
|
|
SupportedFormats []string `json:"supportedFormats"` // 支持的广告格式
|
2025-12-06 10:38:48 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// DeleteAdSourceRes 删除广告源响应
|
|
|
|
|
|
type DeleteAdSourceRes struct {
|
|
|
|
|
|
Success bool `json:"success"` // 删除是否成功
|
|
|
|
|
|
}
|