package delivery import ( "github.com/gogf/gf/v2/os/gtime" "gitea.redpowerfuture.com/red-future/common/beans" ) // Campaign 广告计划实体(计划树第一层,外投/自有DSP共用,预算在计划层) type Campaign struct { beans.SQLBaseDO `orm:",inherit"` // 业务字段 AdAccountID int64 `orm:"ad_account_id" json:"adAccountId" description:"本地广告账户ID"` Name string `orm:"name" json:"name" description:"计划名称"` Channel string `orm:"channel" json:"channel" description:"投放通道 external外投/self_dsp自有"` Platform string `orm:"platform" json:"platform" description:"广告平台 douyin/xiaohongshu/kuaishou"` PlatformCampaignID string `orm:"platform_campaign_id" json:"platformCampaignId" description:"平台侧计划ID"` Status string `orm:"status" json:"status" description:"本地状态 draft/active/paused/ended/rejected"` PlatformStatus string `orm:"platform_status" json:"platformStatus" description:"平台侧状态快照"` SyncStatus string `orm:"sync_status" json:"syncStatus" description:"同步状态 none/pending/synced/failed"` BudgetMode string `orm:"budget_mode" json:"budgetMode" description:"预算方式 free不限/daily日预算"` DailyBudget *int64 `orm:"daily_budget" json:"dailyBudget" description:"日预算(分),budget_mode=daily时必填,否则NULL"` TotalBudget *int64 `orm:"total_budget" json:"totalBudget" description:"总预算(分),NULL=不限"` OptimizeGoal string `orm:"optimize_goal" json:"optimizeGoal" description:"优化目标 conversion/click/exposure"` StartTime *gtime.Time `orm:"start_time" json:"startTime" description:"投放开始时间"` EndTime *gtime.Time `orm:"end_time" json:"endTime" description:"投放结束时间"` Extra string `orm:"extra" json:"extra" description:"平台特有扩展(JSON)"` } // CampaignCol 广告计划表字段定义 type CampaignCol struct { beans.SQLBaseCol AdAccountID string Name string Channel string Platform string PlatformCampaignID string Status string PlatformStatus string SyncStatus string BudgetMode string DailyBudget string TotalBudget string OptimizeGoal string StartTime string EndTime string Extra string } // CampaignCols 广告计划表字段常量 var CampaignCols = CampaignCol{ SQLBaseCol: beans.DefSQLBaseCol, AdAccountID: "ad_account_id", Name: "name", Channel: "channel", Platform: "platform", PlatformCampaignID: "platform_campaign_id", Status: "status", PlatformStatus: "platform_status", SyncStatus: "sync_status", BudgetMode: "budget_mode", DailyBudget: "daily_budget", TotalBudget: "total_budget", OptimizeGoal: "optimize_goal", StartTime: "start_time", EndTime: "end_time", Extra: "extra", }