69 lines
3.1 KiB
Go
69 lines
3.1 KiB
Go
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",
|
||
}
|