schema.sql 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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. last_roi_scaled_at DATETIME DEFAULT NULL,
  22. paused_by_strategy BOOLEAN NOT NULL DEFAULT FALSE,
  23. pause_reason VARCHAR(32) DEFAULT NULL,
  24. operator_pause_mode VARCHAR(32) DEFAULT NULL,
  25. operator_resume_at DATETIME DEFAULT NULL,
  26. operator_command_id VARCHAR(64) DEFAULT NULL,
  27. operator_paused_from_status VARCHAR(50) DEFAULT NULL,
  28. operator_paused_at DATETIME DEFAULT NULL,
  29. last_action VARCHAR(32) DEFAULT NULL,
  30. last_action_at DATETIME DEFAULT NULL,
  31. last_seen_at DATETIME DEFAULT NULL,
  32. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  33. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  34. PRIMARY KEY (account_id, adgroup_id),
  35. KEY idx_strategy_pause (paused_by_strategy),
  36. KEY idx_operator_pause (operator_pause_mode, operator_resume_at),
  37. KEY idx_boosted_date (boosted_date),
  38. KEY idx_last_seen (last_seen_at)
  39. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时CPM调控广告基准与状态';
  40. CREATE TABLE IF NOT EXISTS roi_metric_run (
  41. run_id VARCHAR(64) NOT NULL PRIMARY KEY,
  42. run_key VARCHAR(128) NOT NULL,
  43. metric_version VARCHAR(64) NOT NULL,
  44. policy_version VARCHAR(64) NOT NULL,
  45. start_date DATE NOT NULL,
  46. end_date DATE NOT NULL,
  47. config_json LONGTEXT NOT NULL,
  48. thresholds_json LONGTEXT DEFAULT NULL,
  49. status VARCHAR(32) NOT NULL,
  50. entity_count INT NOT NULL DEFAULT 0,
  51. candidate_count INT NOT NULL DEFAULT 0,
  52. actionable_count INT NOT NULL DEFAULT 0,
  53. sheet_token VARCHAR(128) DEFAULT NULL,
  54. sheet_url TEXT DEFAULT NULL,
  55. message_id VARCHAR(128) DEFAULT NULL,
  56. expires_at DATETIME DEFAULT NULL,
  57. approved_by VARCHAR(128) DEFAULT NULL,
  58. approved_at DATETIME DEFAULT NULL,
  59. rejected_by VARCHAR(128) DEFAULT NULL,
  60. rejected_at DATETIME DEFAULT NULL,
  61. executed_at DATETIME DEFAULT NULL,
  62. error_message TEXT DEFAULT NULL,
  63. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  64. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  65. UNIQUE KEY uk_roi_run_key (run_key),
  66. KEY idx_roi_run_status_expiry (status, expires_at),
  67. KEY idx_roi_run_end_date (end_date)
  68. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='版本化ROI计算与整批审批运行';
  69. CREATE TABLE IF NOT EXISTS roi_entity_snapshot (
  70. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  71. run_id VARCHAR(64) NOT NULL,
  72. entity_hash CHAR(64) NOT NULL,
  73. entity_type VARCHAR(32) NOT NULL,
  74. channel VARCHAR(128) DEFAULT NULL,
  75. account_id BIGINT DEFAULT NULL,
  76. account_name VARCHAR(255) DEFAULT NULL,
  77. adgroup_id BIGINT DEFAULT NULL,
  78. adgroup_name VARCHAR(255) DEFAULT NULL,
  79. dynamic_creative_id BIGINT DEFAULT NULL,
  80. audience_name VARCHAR(255) DEFAULT NULL,
  81. partner_name VARCHAR(255) DEFAULT NULL,
  82. official_account_name VARCHAR(255) DEFAULT NULL,
  83. ad_age INT DEFAULT NULL,
  84. avg_first_uv DECIMAL(18,4) DEFAULT NULL,
  85. first_uv DECIMAL(18,4) DEFAULT NULL,
  86. t0_fission_count DECIMAL(18,4) DEFAULT NULL,
  87. t0_fission_rate DECIMAL(18,8) DEFAULT NULL,
  88. cost DECIMAL(20,4) DEFAULT NULL,
  89. efficiency_revenue DECIMAL(20,4) DEFAULT NULL,
  90. fission_revenue DECIMAL(20,4) DEFAULT NULL,
  91. total_revenue DECIMAL(20,4) DEFAULT NULL,
  92. roi DECIMAL(18,8) DEFAULT NULL,
  93. stop_threshold DECIMAL(18,8) DEFAULT NULL,
  94. scale_threshold DECIMAL(18,8) DEFAULT NULL,
  95. recommended_action VARCHAR(64) DEFAULT NULL,
  96. action_reason TEXT DEFAULT NULL,
  97. execution_mode VARCHAR(32) NOT NULL,
  98. ineligible_reason TEXT DEFAULT NULL,
  99. daily_metrics_json LONGTEXT NOT NULL,
  100. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  101. UNIQUE KEY uk_roi_entity (run_id, entity_hash),
  102. KEY idx_roi_entity_action (run_id, recommended_action),
  103. KEY idx_roi_entity_ad (account_id, adgroup_id),
  104. KEY idx_roi_entity_creative (account_id, dynamic_creative_id)
  105. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI实体指标快照';
  106. CREATE TABLE IF NOT EXISTS roi_action_item (
  107. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  108. run_id VARCHAR(64) NOT NULL,
  109. idempotency_key VARCHAR(160) NOT NULL,
  110. action_type VARCHAR(32) NOT NULL,
  111. account_id BIGINT NOT NULL,
  112. adgroup_id BIGINT NOT NULL,
  113. dynamic_creative_id BIGINT DEFAULT NULL,
  114. bid_field VARCHAR(32) DEFAULT NULL,
  115. initial_base_bid_fen INT DEFAULT NULL,
  116. base_bid_fen INT DEFAULT NULL,
  117. before_bid_fen INT DEFAULT NULL,
  118. target_bid_fen INT DEFAULT NULL,
  119. before_status VARCHAR(50) DEFAULT NULL,
  120. target_status VARCHAR(50) DEFAULT NULL,
  121. readback_status VARCHAR(50) DEFAULT NULL,
  122. execution_status VARCHAR(32) NOT NULL DEFAULT 'PENDING',
  123. skip_reason TEXT DEFAULT NULL,
  124. error_message TEXT DEFAULT NULL,
  125. pre_state_json LONGTEXT DEFAULT NULL,
  126. readback_json LONGTEXT DEFAULT NULL,
  127. executed_at DATETIME DEFAULT NULL,
  128. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  129. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  130. UNIQUE KEY uk_roi_action_idempotency (idempotency_key),
  131. KEY idx_roi_action_run_status (run_id, execution_status),
  132. KEY idx_roi_action_ad (account_id, adgroup_id),
  133. KEY idx_roi_action_creative (account_id, dynamic_creative_id)
  134. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI审批后腾讯动作与审计';
  135. CREATE TABLE IF NOT EXISTS realtime_control_action_log (
  136. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  137. run_id VARCHAR(36) NOT NULL,
  138. control_date DATE NOT NULL,
  139. observed_partition VARCHAR(20) DEFAULT NULL,
  140. observed_cpm DECIMAL(12, 4) DEFAULT NULL,
  141. decision VARCHAR(32) NOT NULL,
  142. account_id BIGINT NOT NULL,
  143. adgroup_id BIGINT NOT NULL,
  144. adgroup_name VARCHAR(255) DEFAULT NULL,
  145. bid_field VARCHAR(32) DEFAULT NULL,
  146. base_bid_fen INT DEFAULT NULL,
  147. before_bid_fen INT DEFAULT NULL,
  148. target_bid_fen INT DEFAULT NULL,
  149. before_status VARCHAR(50) DEFAULT NULL,
  150. target_status VARCHAR(50) DEFAULT NULL,
  151. apply_mode BOOLEAN NOT NULL DEFAULT FALSE,
  152. execution_status VARCHAR(32) NOT NULL,
  153. error_message TEXT DEFAULT NULL,
  154. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  155. KEY idx_run_id (run_id),
  156. KEY idx_control_date (control_date),
  157. KEY idx_adgroup (account_id, adgroup_id),
  158. KEY idx_execution_status (execution_status)
  159. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='实时CPM调控动作审计';
  160. CREATE TABLE IF NOT EXISTS operator_command (
  161. command_id VARCHAR(64) NOT NULL PRIMARY KEY,
  162. source_message_id VARCHAR(128) NOT NULL,
  163. chat_id VARCHAR(128) NOT NULL,
  164. sender_open_id VARCHAR(128) NOT NULL,
  165. sender_name VARCHAR(255) DEFAULT NULL,
  166. action VARCHAR(32) NOT NULL,
  167. scope_type VARCHAR(32) NOT NULL,
  168. target_account_ids TEXT NOT NULL,
  169. status VARCHAR(32) NOT NULL,
  170. preview_account_count INT NOT NULL DEFAULT 0,
  171. preview_ad_count INT NOT NULL DEFAULT 0,
  172. expires_at DATETIME DEFAULT NULL,
  173. confirmed_at DATETIME DEFAULT NULL,
  174. executed_at DATETIME DEFAULT NULL,
  175. error_message TEXT DEFAULT NULL,
  176. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  177. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  178. UNIQUE KEY uk_operator_source_message (source_message_id),
  179. KEY idx_operator_status_expiry (status, expires_at),
  180. KEY idx_operator_sender (sender_open_id, created_at)
  181. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='飞书运营控制命令';
  182. CREATE TABLE IF NOT EXISTS operator_command_item (
  183. id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  184. command_id VARCHAR(64) NOT NULL,
  185. account_id BIGINT NOT NULL,
  186. audience_name VARCHAR(200) DEFAULT NULL,
  187. adgroup_id BIGINT DEFAULT NULL,
  188. adgroup_name VARCHAR(255) DEFAULT NULL,
  189. before_status VARCHAR(50) DEFAULT NULL,
  190. target_status VARCHAR(50) DEFAULT NULL,
  191. readback_status VARCHAR(50) DEFAULT NULL,
  192. execution_status VARCHAR(32) NOT NULL,
  193. error_message TEXT DEFAULT NULL,
  194. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  195. KEY idx_operator_item_command (command_id),
  196. KEY idx_operator_item_ad (account_id, adgroup_id),
  197. KEY idx_operator_item_status (execution_status)
  198. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='飞书运营控制命令广告明细';