package dto import ( "cid/model/entity" "gitea.com/red-future/common/beans" "github.com/gogf/gf/v2/frame/g" ) // CreateAdSourceReq 创建广告源请求 type CreateAdSourceReq struct { g.Meta `path:"/create" method:"post" tags:"广告源管理" summary:"创建广告源" dc:"创建新的广告源配置"` // 基本信息 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 { g.Meta `path:"/getByID" method:"get" tags:"广告源管理" summary:"获取广告源详情" dc:"根据ID获取单个广告源详情"` Id string `json:"id" v:"required"` // 广告源ID } type GetAdSourceRes struct { *entity.AdSource } // ListAdSourceReq 获取广告源列表请求 type ListAdSourceReq struct { g.Meta `path:"/getList" method:"get" tags:"广告源管理" summary:"获取广告源列表" dc:"分页查询广告源列表,支持多条件筛选"` *beans.Page 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 { g.Meta `path:"/update" method:"put" tags:"广告源管理" summary:"更新广告源" dc:"更新广告源信息"` 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 { // g.Meta `path:"/adsource" method:"patch" tags:"广告源管理" summary:"更新广告源状态" dc:"更新广告源状态"` // 暂时注释,缺少对应的controller方法 Id string `json:"id" v:"required"` // 广告源ID Status string `json:"status" v:"required"` // 广告源状态:active、inactive、maintenance } // DeleteAdSourceReq 删除广告源请求 type DeleteAdSourceReq struct { g.Meta `path:"/delete" method:"delete" tags:"广告源管理" summary:"删除广告源" dc:"删除指定的广告源"` Id string `json:"id" v:"required"` // 广告源ID } // TestAdSourceReq 测试广告源连接请求 type TestAdSourceReq struct { // g.Meta `path:"/adsource-test" method:"post" tags:"广告源管理" summary:"测试广告源连接" dc:"测试广告源的连接性和可用性"` // 暂时注释,缺少对应的controller方法 Id string `json:"id" v:"required"` // 广告源ID } type TestAdSourceRes struct { Success bool `json:"success"` // 测试是否成功 ResponseTime int64 `json:"responseTime"` // 响应时间(毫秒) ErrorMessage string `json:"errorMessage"` // 错误信息 SupportedFormats []string `json:"supportedFormats"` // 支持的广告格式 } // DeleteAdSourceRes 删除广告源响应 type DeleteAdSourceRes struct { Success bool `json:"success"` // 删除是否成功 }