schema.sql 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. CREATE TABLE IF NOT EXISTS realtime_control_daily_state (
  2. control_date DATE NOT NULL PRIMARY KEY,
  3. morning_recovery_done BOOLEAN NOT NULL DEFAULT FALSE,
  4. cutoff_done BOOLEAN NOT NULL DEFAULT FALSE,
  5. last_observed_partition VARCHAR(20) DEFAULT NULL,
  6. last_observed_cpm DECIMAL(12, 4) DEFAULT NULL,
  7. last_decision VARCHAR(32) DEFAULT NULL,
  8. last_inventory_refresh_at DATETIME DEFAULT NULL,
  9. last_evaluated_at DATETIME DEFAULT NULL,
  10. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  11. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时CPM调控每日状态';
  13. CREATE TABLE IF NOT EXISTS realtime_control_ad_state (
  14. account_id BIGINT NOT NULL,
  15. adgroup_id BIGINT NOT NULL,
  16. adgroup_name VARCHAR(255) DEFAULT NULL,
  17. bid_field VARCHAR(32) NOT NULL,
  18. base_bid_fen INT NOT NULL,
  19. initial_base_bid_fen INT DEFAULT NULL,
  20. boosted_date DATE DEFAULT NULL,
  21. bid_hold BOOLEAN NOT NULL DEFAULT FALSE,
  22. bid_hold_reason VARCHAR(255) DEFAULT NULL,
  23. last_roi_scaled_at DATETIME DEFAULT NULL,
  24. paused_by_strategy BOOLEAN NOT NULL DEFAULT FALSE,
  25. pause_reason VARCHAR(32) DEFAULT NULL,
  26. operator_pause_mode VARCHAR(32) DEFAULT NULL,
  27. operator_resume_at DATETIME DEFAULT NULL,
  28. operator_command_id VARCHAR(64) DEFAULT NULL,
  29. operator_paused_from_status VARCHAR(50) DEFAULT NULL,
  30. operator_paused_at DATETIME DEFAULT NULL,
  31. last_action VARCHAR(32) DEFAULT NULL,
  32. last_action_at DATETIME DEFAULT NULL,
  33. last_seen_at DATETIME DEFAULT NULL,
  34. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  35. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  36. PRIMARY KEY (account_id, adgroup_id),
  37. KEY idx_strategy_pause (paused_by_strategy),
  38. KEY idx_operator_pause (operator_pause_mode, operator_resume_at),
  39. KEY idx_boosted_date (boosted_date),
  40. KEY idx_last_seen (last_seen_at)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时CPM调控广告基准与状态';
  42. CREATE TABLE IF NOT EXISTS realtime_control_account_scope (
  43. account_id BIGINT NOT NULL PRIMARY KEY,
  44. control_mode VARCHAR(32) NOT NULL,
  45. audience_name VARCHAR(255) DEFAULT NULL,
  46. bid_scene VARCHAR(64) DEFAULT NULL,
  47. enabled BOOLEAN NOT NULL DEFAULT TRUE,
  48. source VARCHAR(64) DEFAULT NULL,
  49. note VARCHAR(512) DEFAULT NULL,
  50. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  51. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  52. KEY idx_realtime_scope_enabled_mode (enabled, control_mode)
  53. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时CPM调控显式账户范围';
  54. CREATE TABLE IF NOT EXISTS roi_metric_run (
  55. run_id VARCHAR(64) NOT NULL PRIMARY KEY,
  56. run_key VARCHAR(128) NOT NULL,
  57. metric_version VARCHAR(64) NOT NULL,
  58. policy_version VARCHAR(64) NOT NULL,
  59. fission_parameter_version VARCHAR(64) DEFAULT NULL,
  60. fission_cohort_date DATE DEFAULT NULL,
  61. start_date DATE NOT NULL,
  62. end_date DATE NOT NULL,
  63. config_json LONGTEXT NOT NULL,
  64. thresholds_json LONGTEXT DEFAULT NULL,
  65. status VARCHAR(32) NOT NULL,
  66. entity_count INT NOT NULL DEFAULT 0,
  67. candidate_count INT NOT NULL DEFAULT 0,
  68. actionable_count INT NOT NULL DEFAULT 0,
  69. sheet_token VARCHAR(128) DEFAULT NULL,
  70. sheet_url TEXT DEFAULT NULL,
  71. message_id VARCHAR(128) DEFAULT NULL,
  72. expires_at DATETIME DEFAULT NULL,
  73. approved_by VARCHAR(128) DEFAULT NULL,
  74. approved_at DATETIME DEFAULT NULL,
  75. rejected_by VARCHAR(128) DEFAULT NULL,
  76. rejected_at DATETIME DEFAULT NULL,
  77. executed_at DATETIME DEFAULT NULL,
  78. error_message TEXT DEFAULT NULL,
  79. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  80. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  81. UNIQUE KEY uk_roi_run_key (run_key),
  82. KEY idx_roi_run_status_expiry (status, expires_at),
  83. KEY idx_roi_run_end_date (end_date)
  84. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='版本化ROI计算与逐行审批运行';
  85. CREATE TABLE IF NOT EXISTS roi_fission_parameter_release (
  86. version VARCHAR(64) NOT NULL PRIMARY KEY,
  87. cohort_date DATE NOT NULL,
  88. observation_end_date DATE NOT NULL,
  89. horizon_days INT NOT NULL,
  90. run_suffix VARCHAR(32) NOT NULL,
  91. content_sha256 CHAR(64) NOT NULL,
  92. metadata_json LONGTEXT NOT NULL,
  93. published_by VARCHAR(128) DEFAULT NULL,
  94. published_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  95. UNIQUE KEY uk_roi_fission_parameter_content (content_sha256)
  96. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI传播裂变系数发布版本';
  97. CREATE TABLE IF NOT EXISTS roi_fission_parameter_value (
  98. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  99. version VARCHAR(64) NOT NULL,
  100. entity_type VARCHAR(32) NOT NULL,
  101. match_level VARCHAR(64) NOT NULL,
  102. key_primary VARCHAR(255) NOT NULL DEFAULT '',
  103. key_secondary VARCHAR(255) NOT NULL DEFAULT '',
  104. multiplier DOUBLE NOT NULL,
  105. multiplier_vs_first DOUBLE DEFAULT NULL,
  106. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  107. UNIQUE KEY uk_roi_fission_parameter_value
  108. (version, entity_type, match_level, key_primary, key_secondary),
  109. KEY idx_roi_fission_parameter_version (version)
  110. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI传播裂变系数匹配明细';
  111. CREATE TABLE IF NOT EXISTS roi_entity_snapshot (
  112. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  113. run_id VARCHAR(64) NOT NULL,
  114. entity_hash CHAR(64) NOT NULL,
  115. entity_type VARCHAR(32) NOT NULL,
  116. channel VARCHAR(128) DEFAULT NULL,
  117. account_id BIGINT DEFAULT NULL,
  118. account_name VARCHAR(255) DEFAULT NULL,
  119. adgroup_id BIGINT DEFAULT NULL,
  120. adgroup_name VARCHAR(255) DEFAULT NULL,
  121. dynamic_creative_id BIGINT DEFAULT NULL,
  122. audience_name VARCHAR(255) DEFAULT NULL,
  123. conversion_goal VARCHAR(255) DEFAULT NULL,
  124. partner_name VARCHAR(255) DEFAULT NULL,
  125. official_account_name VARCHAR(255) DEFAULT NULL,
  126. fission_parameter_version VARCHAR(64) DEFAULT NULL,
  127. fission_cohort_date VARCHAR(8) DEFAULT NULL,
  128. fission_multiplier_vs_t0 DECIMAL(18,8) DEFAULT NULL,
  129. fission_multiplier_vs_first DECIMAL(18,8) DEFAULT NULL,
  130. fission_match_level VARCHAR(64) DEFAULT NULL,
  131. fission_source VARCHAR(512) DEFAULT NULL,
  132. ad_age INT DEFAULT NULL,
  133. avg_first_uv DECIMAL(18,4) DEFAULT NULL,
  134. first_uv DECIMAL(18,4) DEFAULT NULL,
  135. t0_fission_count DECIMAL(18,4) DEFAULT NULL,
  136. t0_fission_rate DECIMAL(18,8) DEFAULT NULL,
  137. cost DECIMAL(20,4) DEFAULT NULL,
  138. efficiency_revenue DECIMAL(20,4) DEFAULT NULL,
  139. fission_revenue DECIMAL(20,4) DEFAULT NULL,
  140. actual_total_revenue DECIMAL(20,4) DEFAULT NULL,
  141. actual_roi DECIMAL(18,8) DEFAULT NULL,
  142. predicted_tail_revenue DECIMAL(20,4) DEFAULT NULL,
  143. predicted_fission_revenue DECIMAL(20,4) DEFAULT NULL,
  144. total_revenue DECIMAL(20,4) DEFAULT NULL,
  145. roi DECIMAL(18,8) DEFAULT NULL,
  146. stop_threshold DECIMAL(18,8) DEFAULT NULL,
  147. scale_threshold DECIMAL(18,8) DEFAULT NULL,
  148. recommended_action VARCHAR(64) DEFAULT NULL,
  149. action_reason TEXT DEFAULT NULL,
  150. execution_mode VARCHAR(32) NOT NULL,
  151. ineligible_reason TEXT DEFAULT NULL,
  152. daily_metrics_json LONGTEXT NOT NULL,
  153. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  154. UNIQUE KEY uk_roi_entity (run_id, entity_hash),
  155. KEY idx_roi_entity_action (run_id, recommended_action),
  156. KEY idx_roi_entity_ad (account_id, adgroup_id),
  157. KEY idx_roi_entity_creative (account_id, dynamic_creative_id)
  158. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI实体指标快照';
  159. CREATE TABLE IF NOT EXISTS roi_action_item (
  160. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  161. run_id VARCHAR(64) NOT NULL,
  162. idempotency_key VARCHAR(160) NOT NULL,
  163. action_type VARCHAR(32) NOT NULL,
  164. account_id BIGINT NOT NULL,
  165. adgroup_id BIGINT NOT NULL,
  166. dynamic_creative_id BIGINT DEFAULT NULL,
  167. bid_field VARCHAR(32) DEFAULT NULL,
  168. initial_base_bid_fen INT DEFAULT NULL,
  169. base_bid_fen INT DEFAULT NULL,
  170. before_bid_fen INT DEFAULT NULL,
  171. target_bid_fen INT DEFAULT NULL,
  172. before_status VARCHAR(50) DEFAULT NULL,
  173. target_status VARCHAR(50) DEFAULT NULL,
  174. readback_status VARCHAR(50) DEFAULT NULL,
  175. approval_status VARCHAR(32) NOT NULL DEFAULT 'PENDING',
  176. approval_source VARCHAR(32) DEFAULT NULL,
  177. approved_at DATETIME DEFAULT NULL,
  178. rejected_at DATETIME DEFAULT NULL,
  179. sheet_row_number INT DEFAULT NULL,
  180. execution_status VARCHAR(32) NOT NULL DEFAULT 'PENDING',
  181. skip_reason TEXT DEFAULT NULL,
  182. error_message TEXT DEFAULT NULL,
  183. pre_state_json LONGTEXT DEFAULT NULL,
  184. readback_json LONGTEXT DEFAULT NULL,
  185. executed_at DATETIME DEFAULT NULL,
  186. result_notified_at DATETIME DEFAULT NULL,
  187. notification_error TEXT DEFAULT NULL,
  188. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  189. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  190. UNIQUE KEY uk_roi_action_idempotency (idempotency_key),
  191. KEY idx_roi_action_run_status (run_id, execution_status),
  192. KEY idx_roi_action_approval (run_id, approval_status),
  193. KEY idx_roi_action_ad (account_id, adgroup_id),
  194. KEY idx_roi_action_creative (account_id, dynamic_creative_id)
  195. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI审批后腾讯动作与审计';
  196. CREATE TABLE IF NOT EXISTS roi_agency_delivery (
  197. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  198. run_id VARCHAR(64) NOT NULL,
  199. agency_name VARCHAR(255) NOT NULL,
  200. agency_report_version VARCHAR(64) NOT NULL,
  201. file_path TEXT NOT NULL,
  202. file_sha256 CHAR(64) NOT NULL,
  203. creative_rows INT NOT NULL DEFAULT 0,
  204. ad_rows INT NOT NULL DEFAULT 0,
  205. route_fingerprint CHAR(64) DEFAULT NULL,
  206. sheet_token VARCHAR(128) DEFAULT NULL,
  207. sheet_url TEXT DEFAULT NULL,
  208. status VARCHAR(32) NOT NULL DEFAULT 'PENDING',
  209. attempt_count INT NOT NULL DEFAULT 0,
  210. response_code VARCHAR(64) DEFAULT NULL,
  211. error_message TEXT DEFAULT NULL,
  212. sent_at DATETIME DEFAULT NULL,
  213. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  214. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  215. UNIQUE KEY uk_roi_agency_delivery
  216. (run_id, agency_name, agency_report_version),
  217. KEY idx_roi_agency_delivery_status (run_id, status)
  218. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI代理表上传与机器人通知审计';
  219. CREATE TABLE IF NOT EXISTS creative_rejection_cleanup_item (
  220. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  221. account_id BIGINT NOT NULL,
  222. account_name VARCHAR(255) DEFAULT NULL,
  223. agency_name VARCHAR(255) DEFAULT NULL,
  224. adgroup_id BIGINT NOT NULL,
  225. adgroup_name VARCHAR(255) DEFAULT NULL,
  226. dynamic_creative_id BIGINT NOT NULL,
  227. dynamic_creative_name VARCHAR(255) DEFAULT NULL,
  228. check_date DATE NOT NULL,
  229. cleanup_action VARCHAR(32) DEFAULT NULL,
  230. target_component_ids_json LONGTEXT DEFAULT NULL,
  231. target_element_ids_json LONGTEXT DEFAULT NULL,
  232. recent_cost_fen BIGINT DEFAULT NULL,
  233. cost_start_date DATE DEFAULT NULL,
  234. cost_end_date DATE DEFAULT NULL,
  235. action_reason TEXT DEFAULT NULL,
  236. reject_reason TEXT NOT NULL,
  237. review_result_json LONGTEXT DEFAULT NULL,
  238. pre_state_json LONGTEXT DEFAULT NULL,
  239. readback_json LONGTEXT DEFAULT NULL,
  240. cleanup_status VARCHAR(32) NOT NULL DEFAULT 'DISCOVERED',
  241. error_message TEXT DEFAULT NULL,
  242. deleted_at DATETIME DEFAULT NULL,
  243. agency_notified_at DATETIME DEFAULT NULL,
  244. operator_notified_at DATETIME DEFAULT NULL,
  245. notified_at DATETIME DEFAULT NULL,
  246. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  247. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  248. UNIQUE KEY uk_creative_rejection_cleanup
  249. (account_id, dynamic_creative_id, check_date),
  250. KEY idx_creative_rejection_status (cleanup_status, notified_at),
  251. KEY idx_creative_rejection_agency (agency_name, notified_at)
  252. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='拒审创意清理及部分投放创意报警审计';
  253. CREATE TABLE IF NOT EXISTS creative_rejection_delivery (
  254. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  255. run_id VARCHAR(64) NOT NULL,
  256. agency_name VARCHAR(255) NOT NULL,
  257. agency_report_version VARCHAR(64) NOT NULL,
  258. file_path TEXT NOT NULL,
  259. file_sha256 CHAR(64) NOT NULL,
  260. creative_rows INT NOT NULL DEFAULT 0,
  261. ad_rows INT NOT NULL DEFAULT 0,
  262. route_fingerprint CHAR(64) DEFAULT NULL,
  263. sheet_token VARCHAR(128) DEFAULT NULL,
  264. sheet_url TEXT DEFAULT NULL,
  265. status VARCHAR(32) NOT NULL DEFAULT 'PENDING',
  266. attempt_count INT NOT NULL DEFAULT 0,
  267. response_code VARCHAR(64) DEFAULT NULL,
  268. error_message TEXT DEFAULT NULL,
  269. sent_at DATETIME DEFAULT NULL,
  270. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  271. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  272. UNIQUE KEY uk_creative_rejection_delivery
  273. (run_id, agency_name, agency_report_version),
  274. KEY idx_creative_rejection_delivery_status (run_id, status)
  275. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审核异常创意清理及人工报警通知审计';
  276. CREATE TABLE IF NOT EXISTS realtime_control_action_log (
  277. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  278. run_id VARCHAR(36) NOT NULL,
  279. control_date DATE NOT NULL,
  280. observed_partition VARCHAR(20) DEFAULT NULL,
  281. observed_cpm DECIMAL(12, 4) DEFAULT NULL,
  282. decision VARCHAR(32) NOT NULL,
  283. account_id BIGINT NOT NULL,
  284. adgroup_id BIGINT NOT NULL,
  285. adgroup_name VARCHAR(255) DEFAULT NULL,
  286. bid_field VARCHAR(32) DEFAULT NULL,
  287. base_bid_fen INT DEFAULT NULL,
  288. before_bid_fen INT DEFAULT NULL,
  289. target_bid_fen INT DEFAULT NULL,
  290. before_status VARCHAR(50) DEFAULT NULL,
  291. target_status VARCHAR(50) DEFAULT NULL,
  292. apply_mode BOOLEAN NOT NULL DEFAULT FALSE,
  293. execution_status VARCHAR(32) NOT NULL,
  294. error_message TEXT DEFAULT NULL,
  295. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  296. KEY idx_run_id (run_id),
  297. KEY idx_control_date (control_date),
  298. KEY idx_adgroup (account_id, adgroup_id),
  299. KEY idx_execution_status (execution_status)
  300. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时CPM调控动作审计';
  301. CREATE TABLE IF NOT EXISTS operator_command (
  302. command_id VARCHAR(64) NOT NULL PRIMARY KEY,
  303. source_message_id VARCHAR(128) NOT NULL,
  304. chat_id VARCHAR(128) NOT NULL,
  305. sender_open_id VARCHAR(128) NOT NULL,
  306. sender_name VARCHAR(255) DEFAULT NULL,
  307. raw_text MEDIUMTEXT DEFAULT NULL,
  308. parse_source VARCHAR(32) NOT NULL DEFAULT 'deterministic',
  309. intent_json MEDIUMTEXT DEFAULT NULL,
  310. action VARCHAR(32) NOT NULL,
  311. scope_type VARCHAR(32) NOT NULL,
  312. target_account_ids TEXT NOT NULL,
  313. status VARCHAR(32) NOT NULL,
  314. preview_account_count INT NOT NULL DEFAULT 0,
  315. preview_ad_count INT NOT NULL DEFAULT 0,
  316. preview_cost_fen BIGINT NOT NULL DEFAULT 0,
  317. preview_impressions BIGINT NOT NULL DEFAULT 0,
  318. preview_clicks BIGINT NOT NULL DEFAULT 0,
  319. preview_conversions BIGINT NOT NULL DEFAULT 0,
  320. previewed_at DATETIME DEFAULT NULL,
  321. resume_at DATETIME DEFAULT NULL,
  322. expires_at DATETIME DEFAULT NULL,
  323. confirmed_at DATETIME DEFAULT NULL,
  324. executed_at DATETIME DEFAULT NULL,
  325. error_message TEXT DEFAULT NULL,
  326. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  327. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  328. UNIQUE KEY uk_operator_source_message (source_message_id),
  329. KEY idx_operator_status_expiry (status, expires_at),
  330. KEY idx_operator_sender (sender_open_id, created_at)
  331. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='飞书运营控制命令';
  332. CREATE TABLE IF NOT EXISTS operator_command_item (
  333. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  334. command_id VARCHAR(64) NOT NULL,
  335. account_id BIGINT NOT NULL,
  336. audience_name VARCHAR(200) DEFAULT NULL,
  337. adgroup_id BIGINT DEFAULT NULL,
  338. adgroup_name VARCHAR(255) DEFAULT NULL,
  339. before_status VARCHAR(50) DEFAULT NULL,
  340. target_status VARCHAR(50) DEFAULT NULL,
  341. preview_cost_fen BIGINT NOT NULL DEFAULT 0,
  342. preview_impressions BIGINT NOT NULL DEFAULT 0,
  343. preview_clicks BIGINT NOT NULL DEFAULT 0,
  344. preview_conversions BIGINT NOT NULL DEFAULT 0,
  345. previewed_at DATETIME DEFAULT NULL,
  346. readback_status VARCHAR(50) DEFAULT NULL,
  347. execution_status VARCHAR(32) NOT NULL,
  348. error_message TEXT DEFAULT NULL,
  349. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  350. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  351. KEY idx_operator_item_command (command_id),
  352. KEY idx_operator_item_ad (account_id, adgroup_id),
  353. KEY idx_operator_item_status (execution_status)
  354. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='飞书运营控制命令广告明细';
  355. CREATE TABLE IF NOT EXISTS operator_command_draft (
  356. draft_id VARCHAR(64) NOT NULL PRIMARY KEY,
  357. chat_id VARCHAR(128) NOT NULL,
  358. sender_open_id VARCHAR(128) NOT NULL,
  359. raw_text MEDIUMTEXT DEFAULT NULL,
  360. action VARCHAR(32) DEFAULT NULL,
  361. scope_type VARCHAR(32) NOT NULL DEFAULT 'MISSING',
  362. account_ids TEXT NOT NULL,
  363. missing_fields TEXT NOT NULL,
  364. source_message_ids TEXT NOT NULL,
  365. status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE',
  366. expires_at DATETIME NOT NULL,
  367. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  368. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  369. UNIQUE KEY uk_operator_draft_conversation (chat_id, sender_open_id),
  370. KEY idx_operator_draft_status_expiry (status, expires_at)
  371. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='飞书运营命令多轮草稿';
  372. CREATE TABLE IF NOT EXISTS revenue_forecast_observation (
  373. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  374. source_partition VARCHAR(8) NOT NULL,
  375. source_version VARCHAR(64) NOT NULL,
  376. report_time DATETIME NOT NULL,
  377. today_revenue DECIMAL(20, 4) NOT NULL,
  378. overall_cpm DECIMAL(18, 6) DEFAULT NULL,
  379. impressions BIGINT DEFAULT NULL,
  380. dau BIGINT DEFAULT NULL,
  381. fill_rate DECIMAL(12, 6) DEFAULT NULL,
  382. revenue_change_pct DECIMAL(12, 6) DEFAULT NULL,
  383. cpm_change_pct DECIMAL(12, 6) DEFAULT NULL,
  384. exposure_change_pct DECIMAL(12, 6) DEFAULT NULL,
  385. dau_change_pct DECIMAL(12, 6) DEFAULT NULL,
  386. fill_rate_change_pct DECIMAL(12, 6) DEFAULT NULL,
  387. source_modified_at DATETIME DEFAULT NULL,
  388. lag_seconds INT NOT NULL,
  389. quality_status VARCHAR(32) NOT NULL,
  390. quality_message VARCHAR(255) DEFAULT NULL,
  391. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  392. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  393. UNIQUE KEY uk_revenue_observation_version_time (report_time, source_version),
  394. KEY idx_revenue_observation_quality (quality_status, report_time)
  395. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时业务收入原始快照';
  396. CREATE TABLE IF NOT EXISTS revenue_forecast_result (
  397. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  398. report_time DATETIME NOT NULL,
  399. forecast_version VARCHAR(64) NOT NULL,
  400. forecast_method VARCHAR(64) NOT NULL,
  401. parameter_version VARCHAR(64) NOT NULL,
  402. current_cumulative_revenue DECIMAL(20, 4) NOT NULL,
  403. speed_latest_weight DECIMAL(12, 8) NOT NULL,
  404. latest_interval_revenue DECIMAL(20, 4) NOT NULL,
  405. previous_interval_revenue DECIMAL(20, 4) NOT NULL,
  406. weighted_speed DECIMAL(20, 4) NOT NULL,
  407. remaining_multiplier_p10 DECIMAL(20, 8) NOT NULL,
  408. remaining_multiplier_p50 DECIMAL(20, 8) NOT NULL,
  409. remaining_multiplier_p90 DECIMAL(20, 8) NOT NULL,
  410. parameter_sample_count INT NOT NULL,
  411. forecast_revenue DECIMAL(20, 4) NOT NULL,
  412. forecast_lower DECIMAL(20, 4) NOT NULL,
  413. forecast_upper DECIMAL(20, 4) NOT NULL,
  414. target_cost_ratio DECIMAL(12, 6) NOT NULL,
  415. target_daily_cost DECIMAL(20, 4) NOT NULL,
  416. cost_reserve_date DATE DEFAULT NULL,
  417. channel_costs_json TEXT DEFAULT NULL,
  418. non_miniapp_reserved_cost DECIMAL(20, 4) NOT NULL DEFAULT 0,
  419. miniapp_target_daily_cost DECIMAL(20, 4) NOT NULL DEFAULT 0,
  420. forecast_status VARCHAR(32) NOT NULL,
  421. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  422. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  423. UNIQUE KEY uk_revenue_forecast_result (report_time, forecast_version),
  424. KEY idx_revenue_forecast_version (forecast_version, report_time)
  425. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时业务收入预测结果';
  426. CREATE TABLE IF NOT EXISTS revenue_forecast_speed_sample (
  427. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  428. data_date DATE NOT NULL,
  429. time_slot TIME NOT NULL,
  430. parameter_version VARCHAR(64) NOT NULL,
  431. cumulative_revenue DECIMAL(20, 4) NOT NULL,
  432. final_revenue DECIMAL(20, 4) NOT NULL,
  433. latest_interval_revenue DECIMAL(20, 4) NOT NULL,
  434. previous_interval_revenue DECIMAL(20, 4) NOT NULL,
  435. latest_weight DECIMAL(12, 8) NOT NULL,
  436. weighted_speed DECIMAL(20, 4) NOT NULL,
  437. remaining_revenue DECIMAL(20, 4) NOT NULL,
  438. remaining_multiplier DECIMAL(20, 8) NOT NULL,
  439. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  440. UNIQUE KEY uk_revenue_speed_sample
  441. (parameter_version, data_date, time_slot),
  442. KEY idx_revenue_speed_sample_date (data_date, time_slot)
  443. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收入速度模型历史日样本';
  444. CREATE TABLE IF NOT EXISTS revenue_forecast_speed_parameter (
  445. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  446. parameter_version VARCHAR(64) NOT NULL,
  447. time_slot TIME NOT NULL,
  448. training_start DATE NOT NULL,
  449. training_end DATE NOT NULL,
  450. sample_count INT NOT NULL,
  451. latest_weight DECIMAL(12, 8) NOT NULL,
  452. multiplier_p10 DECIMAL(20, 8) NOT NULL,
  453. multiplier_p50 DECIMAL(20, 8) NOT NULL,
  454. multiplier_p90 DECIMAL(20, 8) NOT NULL,
  455. multiplier_mad DECIMAL(20, 8) NOT NULL,
  456. published_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  457. UNIQUE KEY uk_revenue_speed_parameter
  458. (parameter_version, time_slot),
  459. KEY idx_revenue_speed_parameter_training
  460. (training_start, training_end)
  461. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='已发布收入速度模型参数';