content_agent_schema.sql 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. -- Content Agent V1 / V1.1 schema.
  2. -- Target database: `content-deconstruction-supply`.
  3. -- This file is safe to run repeatedly because every table uses IF NOT EXISTS.
  4. SET NAMES utf8mb4;
  5. USE `content-deconstruction-supply`;
  6. CREATE TABLE IF NOT EXISTS content_agent_runs (
  7. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  8. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  9. run_id VARCHAR(80) NOT NULL,
  10. demand_content_id BIGINT UNSIGNED NULL,
  11. run_label VARCHAR(160) NULL,
  12. platform VARCHAR(32) NOT NULL DEFAULT 'douyin',
  13. platform_mode VARCHAR(32) NOT NULL,
  14. strategy_version VARCHAR(160) NULL,
  15. status VARCHAR(32) NOT NULL DEFAULT 'created',
  16. current_step VARCHAR(80) NULL,
  17. validation_status VARCHAR(32) NULL,
  18. source_ref JSON NULL,
  19. error_code VARCHAR(120) NULL,
  20. error_message TEXT NULL,
  21. error_detail JSON NULL,
  22. started_at DATETIME(3) NULL,
  23. completed_at DATETIME(3) NULL,
  24. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  25. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  26. PRIMARY KEY (id),
  27. UNIQUE KEY uk_content_agent_runs_run (run_id),
  28. KEY idx_content_agent_runs_schema_created_at (schema_version, created_at),
  29. KEY idx_content_agent_runs_demand_content_id (demand_content_id),
  30. KEY idx_content_agent_runs_status_created_at (status, created_at)
  31. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  32. CREATE TABLE IF NOT EXISTS content_agent_source_contexts (
  33. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  34. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  35. run_id VARCHAR(80) NOT NULL,
  36. demand_content_id BIGINT UNSIGNED NULL,
  37. pattern_source_system VARCHAR(80) NULL,
  38. source_kind VARCHAR(80) NULL,
  39. source_post_id VARCHAR(120) NULL,
  40. pattern_execution_id BIGINT NULL,
  41. mining_config_id BIGINT NULL,
  42. evidence_pack JSON NOT NULL,
  43. source_context JSON NOT NULL,
  44. raw_demand_content JSON NULL,
  45. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  46. PRIMARY KEY (id),
  47. UNIQUE KEY uk_content_agent_source_contexts_run (run_id),
  48. KEY idx_content_agent_source_contexts_demand_content_id (demand_content_id),
  49. KEY idx_content_agent_source_contexts_pattern (pattern_source_system, pattern_execution_id)
  50. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  51. CREATE TABLE IF NOT EXISTS content_agent_pattern_seed_packs (
  52. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  53. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  54. run_id VARCHAR(80) NOT NULL,
  55. policy_run_id VARCHAR(80) NOT NULL,
  56. source_post_id VARCHAR(120) NULL,
  57. pattern_execution_id BIGINT NULL,
  58. itemset_ids JSON NULL,
  59. seed_terms JSON NULL,
  60. pattern_seed_pack JSON NOT NULL,
  61. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  62. PRIMARY KEY (id),
  63. UNIQUE KEY uk_ca_pattern_seed_run_policy (run_id, policy_run_id),
  64. KEY idx_content_agent_pattern_seed_packs_pattern (pattern_execution_id)
  65. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  66. CREATE TABLE IF NOT EXISTS content_agent_queries (
  67. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  68. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  69. run_id VARCHAR(80) NOT NULL,
  70. policy_run_id VARCHAR(80) NOT NULL,
  71. search_query_id VARCHAR(80) NOT NULL,
  72. search_query VARCHAR(512) NOT NULL,
  73. search_query_generation_method VARCHAR(80) NULL,
  74. discovery_start_source VARCHAR(80) NULL,
  75. previous_discovery_step VARCHAR(80) NULL,
  76. search_query_effect_status VARCHAR(32) NULL,
  77. pattern_seed_ref JSON NULL,
  78. raw_payload JSON NOT NULL,
  79. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  80. PRIMARY KEY (id),
  81. UNIQUE KEY uk_ca_queries_run_policy_query (run_id, policy_run_id, search_query_id),
  82. KEY idx_content_agent_queries_effect_status (search_query_effect_status),
  83. KEY idx_content_agent_queries_text (search_query(191))
  84. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  85. CREATE TABLE IF NOT EXISTS content_agent_discovered_content_items (
  86. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  87. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  88. run_id VARCHAR(80) NOT NULL,
  89. policy_run_id VARCHAR(80) NOT NULL,
  90. content_discovery_id VARCHAR(80) NOT NULL,
  91. search_query_id VARCHAR(80) NOT NULL,
  92. platform VARCHAR(32) NOT NULL,
  93. platform_content_id VARCHAR(120) NOT NULL,
  94. platform_content_format VARCHAR(40) NULL,
  95. platform_content_url TEXT NULL,
  96. description TEXT NULL,
  97. platform_author_id VARCHAR(256) NULL,
  98. author_display_name VARCHAR(256) NULL,
  99. discovery_start_source VARCHAR(80) NULL,
  100. previous_discovery_step VARCHAR(80) NULL,
  101. statistics JSON NULL,
  102. tags JSON NULL,
  103. text_extra JSON NULL,
  104. source_evidence JSON NULL,
  105. pattern_match_result JSON NULL,
  106. platform_raw_payload JSON NULL,
  107. raw_payload JSON NOT NULL,
  108. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  109. PRIMARY KEY (id),
  110. UNIQUE KEY uk_ca_items_run_policy_discovery (run_id, policy_run_id, content_discovery_id),
  111. UNIQUE KEY uk_ca_items_run_policy_content (run_id, policy_run_id, platform, platform_content_id),
  112. KEY idx_ca_items_run_policy_query (run_id, policy_run_id, search_query_id),
  113. KEY idx_content_agent_content_items_author (platform_author_id(191))
  114. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  115. CREATE TABLE IF NOT EXISTS content_agent_content_media_records (
  116. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  117. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  118. run_id VARCHAR(80) NOT NULL,
  119. policy_run_id VARCHAR(80) NOT NULL,
  120. platform VARCHAR(32) NOT NULL,
  121. platform_content_id VARCHAR(120) NOT NULL,
  122. content_media_status VARCHAR(64) NOT NULL,
  123. content_metadata_source VARCHAR(128) NULL,
  124. play_url TEXT NULL,
  125. local_path TEXT NULL,
  126. oss_url TEXT NULL,
  127. raw_payload JSON NOT NULL,
  128. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  129. PRIMARY KEY (id),
  130. UNIQUE KEY uk_ca_media_run_policy_content (run_id, policy_run_id, platform, platform_content_id),
  131. KEY idx_content_agent_media_records_status (content_media_status)
  132. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  133. CREATE TABLE IF NOT EXISTS content_agent_rule_decisions (
  134. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  135. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  136. run_id VARCHAR(80) NOT NULL,
  137. policy_run_id VARCHAR(80) NOT NULL,
  138. decision_id VARCHAR(80) NOT NULL,
  139. policy_bundle_id VARCHAR(160) NULL,
  140. rule_pack_id VARCHAR(160) NULL,
  141. rule_pack_version VARCHAR(160) NULL,
  142. strategy_version VARCHAR(160) NULL,
  143. decision_target_type VARCHAR(64) NOT NULL,
  144. decision_target_id VARCHAR(160) NOT NULL,
  145. decision_action VARCHAR(64) NOT NULL,
  146. decision_reason_code VARCHAR(160) NULL,
  147. search_query_effect_status VARCHAR(32) NULL,
  148. score DECIMAL(12,4) NULL,
  149. triggered_blocking_rules JSON NULL,
  150. scorecard JSON NULL,
  151. source_evidence JSON NULL,
  152. decision_replay_data JSON NULL,
  153. raw_payload JSON NOT NULL,
  154. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  155. PRIMARY KEY (id),
  156. UNIQUE KEY uk_ca_rule_run_policy_decision (run_id, policy_run_id, decision_id),
  157. UNIQUE KEY uk_ca_rule_run_policy_target (run_id, policy_run_id, decision_target_type, decision_target_id),
  158. KEY idx_content_agent_rule_decisions_action (decision_action),
  159. KEY idx_content_agent_rule_decisions_reason (decision_reason_code)
  160. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  161. CREATE TABLE IF NOT EXISTS content_agent_source_path_records (
  162. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  163. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  164. run_id VARCHAR(80) NOT NULL,
  165. policy_run_id VARCHAR(80) NOT NULL,
  166. source_path_record_id VARCHAR(80) NOT NULL,
  167. source_path_type VARCHAR(80) NOT NULL,
  168. from_node_type VARCHAR(80) NOT NULL,
  169. from_node_id VARCHAR(160) NOT NULL,
  170. to_node_type VARCHAR(80) NOT NULL,
  171. to_node_id VARCHAR(160) NOT NULL,
  172. decision_id VARCHAR(80) NULL,
  173. rule_pack_id VARCHAR(160) NULL,
  174. discovery_start_source VARCHAR(80) NULL,
  175. previous_discovery_step VARCHAR(80) NULL,
  176. origin_path_id VARCHAR(240) NULL,
  177. source_evidence_ref VARCHAR(240) NULL,
  178. raw_payload JSON NOT NULL,
  179. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  180. PRIMARY KEY (id),
  181. UNIQUE KEY uk_ca_paths_run_policy_path (run_id, policy_run_id, source_path_record_id),
  182. KEY idx_ca_paths_from (run_id, policy_run_id, from_node_type, from_node_id),
  183. KEY idx_ca_paths_to (run_id, policy_run_id, to_node_type, to_node_id),
  184. KEY idx_ca_paths_decision (run_id, policy_run_id, decision_id),
  185. KEY idx_content_agent_source_paths_type (source_path_type)
  186. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  187. CREATE TABLE IF NOT EXISTS content_agent_search_clues (
  188. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  189. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  190. run_id VARCHAR(80) NOT NULL,
  191. policy_run_id VARCHAR(80) NOT NULL,
  192. clue_id VARCHAR(80) NOT NULL,
  193. search_query_id VARCHAR(80) NOT NULL,
  194. search_query VARCHAR(512) NOT NULL,
  195. discovery_start_source VARCHAR(80) NULL,
  196. previous_discovery_step VARCHAR(80) NULL,
  197. result_count INT UNSIGNED NOT NULL DEFAULT 0,
  198. pooled_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  199. review_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  200. pending_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  201. rejected_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  202. search_query_effect_status VARCHAR(32) NULL,
  203. walk_next_step VARCHAR(80) NULL,
  204. raw_payload JSON NOT NULL,
  205. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  206. PRIMARY KEY (id),
  207. UNIQUE KEY uk_ca_clues_run_policy_clue (run_id, policy_run_id, clue_id),
  208. UNIQUE KEY uk_ca_clues_run_policy_query (run_id, policy_run_id, search_query_id),
  209. KEY idx_content_agent_search_clues_effect (search_query_effect_status)
  210. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  211. CREATE TABLE IF NOT EXISTS content_agent_walk_actions (
  212. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  213. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  214. run_id VARCHAR(80) NOT NULL,
  215. policy_run_id VARCHAR(80) NOT NULL,
  216. walk_action_id VARCHAR(120) NOT NULL,
  217. edge_id VARCHAR(120) NOT NULL,
  218. edge_type VARCHAR(80) NULL,
  219. from_node_type VARCHAR(80) NULL,
  220. from_node_id VARCHAR(191) NULL,
  221. to_node_type VARCHAR(80) NULL,
  222. to_node_id VARCHAR(191) NULL,
  223. walk_action VARCHAR(120) NOT NULL,
  224. walk_status VARCHAR(32) NOT NULL,
  225. budget_tier VARCHAR(32) NULL,
  226. depth INT NULL,
  227. page_cursor VARCHAR(191) NULL,
  228. next_cursor VARCHAR(191) NULL,
  229. decision_id VARCHAR(120) NULL,
  230. rule_pack_id VARCHAR(160) NULL,
  231. rule_pack_version VARCHAR(80) NULL,
  232. reason_code VARCHAR(160) NULL,
  233. source_path_record_id VARCHAR(120) NULL,
  234. raw_payload JSON NOT NULL,
  235. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  236. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  237. PRIMARY KEY (id),
  238. UNIQUE KEY uk_ca_walk_actions_run_policy_action (run_id, policy_run_id, walk_action_id),
  239. KEY idx_ca_walk_actions_edge_status (edge_id, walk_status),
  240. KEY idx_ca_walk_actions_status_created_at (walk_status, created_at),
  241. KEY idx_ca_walk_actions_decision (decision_id)
  242. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  243. CREATE TABLE IF NOT EXISTS content_agent_run_events (
  244. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  245. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  246. run_id VARCHAR(80) NOT NULL,
  247. policy_run_id VARCHAR(80) NOT NULL,
  248. event_id VARCHAR(80) NOT NULL,
  249. event_type VARCHAR(120) NOT NULL,
  250. status VARCHAR(32) NOT NULL,
  251. input_ref VARCHAR(240) NULL,
  252. output_ref VARCHAR(240) NULL,
  253. error_code VARCHAR(120) NULL,
  254. message TEXT NULL,
  255. raw_payload JSON NOT NULL,
  256. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  257. PRIMARY KEY (id),
  258. UNIQUE KEY uk_ca_events_run_policy_event (run_id, policy_run_id, event_id),
  259. KEY idx_content_agent_run_events_type_status (event_type, status),
  260. KEY idx_content_agent_run_events_created_at (created_at)
  261. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  262. CREATE TABLE IF NOT EXISTS content_agent_final_outputs (
  263. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  264. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  265. run_id VARCHAR(80) NOT NULL,
  266. policy_run_id VARCHAR(80) NOT NULL,
  267. output_version VARCHAR(80) NOT NULL DEFAULT 'v1',
  268. summary JSON NULL,
  269. final_output JSON NOT NULL,
  270. validation_status VARCHAR(32) NULL,
  271. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  272. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  273. PRIMARY KEY (id),
  274. UNIQUE KEY uk_ca_outputs_run_policy_version (run_id, policy_run_id, output_version),
  275. KEY idx_content_agent_final_outputs_validation (validation_status)
  276. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  277. CREATE TABLE IF NOT EXISTS content_agent_publish_jobs (
  278. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  279. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  280. run_id VARCHAR(80) NOT NULL,
  281. policy_run_id VARCHAR(80) NOT NULL,
  282. publish_job_id VARCHAR(80) NOT NULL,
  283. platform_content_id VARCHAR(120) NULL,
  284. job_status VARCHAR(32) NOT NULL DEFAULT 'created',
  285. trigger_mode VARCHAR(64) NULL,
  286. crawler_plan_id VARCHAR(120) NULL,
  287. produce_plan_id VARCHAR(120) NULL,
  288. publish_plan_id VARCHAR(120) NULL,
  289. request_payload JSON NULL,
  290. response_payload JSON NULL,
  291. error_code VARCHAR(120) NULL,
  292. error_message TEXT NULL,
  293. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  294. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  295. PRIMARY KEY (id),
  296. UNIQUE KEY uk_ca_publish_run_policy_job (run_id, policy_run_id, publish_job_id),
  297. KEY idx_content_agent_publish_jobs_status (job_status),
  298. KEY idx_content_agent_publish_jobs_content (platform_content_id)
  299. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  300. CREATE TABLE IF NOT EXISTS content_agent_author_assets (
  301. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  302. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  303. author_asset_id VARCHAR(80) NOT NULL,
  304. platform VARCHAR(32) NOT NULL DEFAULT 'douyin',
  305. platform_author_id VARCHAR(256) NOT NULL,
  306. author_display_name VARCHAR(256) NULL,
  307. author_profile_url TEXT NULL,
  308. asset_status VARCHAR(32) NOT NULL DEFAULT 'candidate',
  309. source_type VARCHAR(64) NOT NULL,
  310. validation_status VARCHAR(64) NOT NULL DEFAULT 'unverified',
  311. eligible_as_source TINYINT(1) NOT NULL DEFAULT 0,
  312. elderly_ratio DECIMAL(8,4) NULL,
  313. elderly_tgi DECIMAL(12,4) NULL,
  314. content_tags JSON NULL,
  315. source_run_id VARCHAR(80) NULL,
  316. source_policy_run_id VARCHAR(80) NULL,
  317. last_profile_fetch_at DATETIME(3) NULL,
  318. last_works_fetch_at DATETIME(3) NULL,
  319. last_validated_at DATETIME(3) NULL,
  320. profile_snapshot JSON NULL,
  321. evidence_refs JSON NULL,
  322. raw_payload JSON NULL,
  323. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  324. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  325. PRIMARY KEY (id),
  326. UNIQUE KEY uk_ca_author_assets_asset (author_asset_id),
  327. UNIQUE KEY uk_ca_author_assets_platform_author (platform, platform_author_id)
  328. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  329. CREATE TABLE IF NOT EXISTS content_agent_author_asset_roles (
  330. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  331. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  332. author_asset_id VARCHAR(80) NOT NULL,
  333. role VARCHAR(64) NOT NULL,
  334. role_status VARCHAR(32) NOT NULL DEFAULT 'active',
  335. role_reason_code VARCHAR(160) NULL,
  336. assigned_by VARCHAR(32) NOT NULL DEFAULT 'system',
  337. source_run_id VARCHAR(80) NULL,
  338. raw_payload JSON NULL,
  339. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  340. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  341. PRIMARY KEY (id),
  342. UNIQUE KEY uk_ca_author_asset_roles_asset_role (author_asset_id, role)
  343. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  344. CREATE TABLE IF NOT EXISTS content_agent_pattern_recall_evidence (
  345. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  346. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  347. run_id VARCHAR(80) NOT NULL,
  348. policy_run_id VARCHAR(80) NOT NULL,
  349. recall_evidence_id VARCHAR(80) NOT NULL,
  350. content_discovery_id VARCHAR(80) NULL,
  351. platform_content_id VARCHAR(120) NOT NULL,
  352. recall_status VARCHAR(32) NULL,
  353. evidence_summary JSON NULL,
  354. raw_payload JSON NULL,
  355. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  356. PRIMARY KEY (id),
  357. UNIQUE KEY uk_ca_recall_run_policy_evidence (run_id, policy_run_id, recall_evidence_id),
  358. KEY idx_ca_recall_content (run_id, policy_run_id, platform_content_id),
  359. KEY idx_content_agent_pattern_recall_status (recall_status)
  360. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  361. CREATE TABLE IF NOT EXISTS content_agent_strategy_reviews (
  362. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  363. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  364. run_id VARCHAR(80) NOT NULL,
  365. policy_run_id VARCHAR(80) NOT NULL,
  366. review_id VARCHAR(80) NOT NULL,
  367. review_status VARCHAR(32) NOT NULL DEFAULT 'generated',
  368. summary JSON NULL,
  369. effective_search_queries JSON NULL,
  370. weak_search_queries JSON NULL,
  371. top_reject_reasons JSON NULL,
  372. productive_paths JSON NULL,
  373. suggestions JSON NULL,
  374. raw_payload JSON NOT NULL,
  375. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  376. PRIMARY KEY (id),
  377. UNIQUE KEY uk_ca_reviews_run_policy_review (run_id, policy_run_id, review_id),
  378. KEY idx_content_agent_strategy_reviews_status (review_status)
  379. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  380. CREATE TABLE IF NOT EXISTS content_agent_performance_feedback (
  381. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  382. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  383. run_id VARCHAR(80) NOT NULL,
  384. policy_run_id VARCHAR(80) NOT NULL,
  385. feedback_id VARCHAR(80) NOT NULL,
  386. platform VARCHAR(40) NOT NULL DEFAULT 'douyin',
  387. platform_content_id VARCHAR(120) NOT NULL,
  388. content_asset_id VARCHAR(120) NULL,
  389. feedback_source VARCHAR(80) NOT NULL,
  390. feedback_status VARCHAR(32) NOT NULL DEFAULT 'available',
  391. metric_window_start DATETIME(3) NULL,
  392. metric_window_end DATETIME(3) NULL,
  393. completion_rate DECIMAL(10,6) NULL,
  394. share_rate DECIMAL(10,6) NULL,
  395. average_watch_seconds DECIMAL(12,3) NULL,
  396. total_watch_seconds DECIMAL(18,3) NULL,
  397. impression_count BIGINT NULL,
  398. play_count BIGINT NULL,
  399. like_count BIGINT NULL,
  400. comment_count BIGINT NULL,
  401. share_count BIGINT NULL,
  402. collect_count BIGINT NULL,
  403. raw_payload JSON NULL,
  404. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  405. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  406. PRIMARY KEY (id),
  407. UNIQUE KEY uk_ca_feedback_run_policy_feedback (run_id, policy_run_id, feedback_id),
  408. KEY idx_ca_feedback_content (run_id, policy_run_id, platform_content_id),
  409. KEY idx_ca_feedback_source_status (feedback_source, feedback_status)
  410. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  411. CREATE TABLE IF NOT EXISTS content_agent_search_clue_assets (
  412. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  413. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  414. search_clue_asset_id VARCHAR(120) NOT NULL,
  415. platform VARCHAR(40) NOT NULL DEFAULT 'douyin',
  416. clue_type VARCHAR(80) NOT NULL,
  417. normalized_clue_text VARCHAR(500) NOT NULL,
  418. display_clue_text VARCHAR(500) NOT NULL,
  419. promotion_status VARCHAR(32) NOT NULL DEFAULT 'promoted',
  420. reusable_priority INT NOT NULL DEFAULT 0,
  421. can_seed_next_run TINYINT(1) NOT NULL DEFAULT 1,
  422. first_seen_run_id VARCHAR(80) NOT NULL,
  423. first_seen_policy_run_id VARCHAR(80) NOT NULL,
  424. last_validated_at DATETIME(3) NULL,
  425. summary_metrics JSON NULL,
  426. raw_payload JSON NULL,
  427. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  428. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  429. PRIMARY KEY (id),
  430. UNIQUE KEY uk_ca_search_clue_assets_asset (search_clue_asset_id),
  431. UNIQUE KEY uk_ca_search_clue_assets_identity (platform, clue_type, normalized_clue_text),
  432. KEY idx_ca_search_clue_assets_status (promotion_status, can_seed_next_run),
  433. KEY idx_ca_search_clue_assets_last_validated (last_validated_at)
  434. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  435. CREATE TABLE IF NOT EXISTS content_agent_search_clue_asset_evidence (
  436. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  437. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  438. evidence_id VARCHAR(120) NOT NULL,
  439. search_clue_asset_id VARCHAR(120) NOT NULL,
  440. run_id VARCHAR(80) NOT NULL,
  441. policy_run_id VARCHAR(80) NOT NULL,
  442. clue_id VARCHAR(80) NOT NULL,
  443. search_query_id VARCHAR(80) NULL,
  444. pooled_content_count INT NOT NULL DEFAULT 0,
  445. review_content_count INT NOT NULL DEFAULT 0,
  446. failed_content_count INT NOT NULL DEFAULT 0,
  447. source_path_record_ids JSON NULL,
  448. decision_ids JSON NULL,
  449. performance_feedback_refs JSON NULL,
  450. raw_payload JSON NULL,
  451. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  452. PRIMARY KEY (id),
  453. UNIQUE KEY uk_ca_search_clue_evidence_id (evidence_id),
  454. UNIQUE KEY uk_ca_search_clue_evidence_run_clue (run_id, policy_run_id, clue_id),
  455. KEY idx_ca_search_clue_evidence_asset (search_clue_asset_id),
  456. KEY idx_ca_search_clue_evidence_run_policy (run_id, policy_run_id)
  457. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  458. CREATE TABLE IF NOT EXISTS content_agent_policy_runs (
  459. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  460. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  461. run_id VARCHAR(80) NOT NULL,
  462. policy_run_id VARCHAR(80) NOT NULL,
  463. experiment_name VARCHAR(160) NULL,
  464. run_role VARCHAR(80) NULL,
  465. policy_bundle_id VARCHAR(160) NULL,
  466. rule_pack_id VARCHAR(160) NULL,
  467. strategy_id VARCHAR(160) NULL,
  468. strategy_version VARCHAR(160) NULL,
  469. rule_pack_version VARCHAR(160) NULL,
  470. walk_strategy_version VARCHAR(160) NULL,
  471. policy_bundle_hash VARCHAR(128) NULL,
  472. strategy_source_ref JSON NULL,
  473. rule_pack_source_ref JSON NULL,
  474. evidence_bundle_schema_version VARCHAR(80) NULL,
  475. runtime_record_schema_version VARCHAR(80) NULL,
  476. status VARCHAR(32) NOT NULL DEFAULT 'recorded',
  477. metrics JSON NULL,
  478. decision_summary JSON NULL,
  479. raw_payload JSON NULL,
  480. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  481. PRIMARY KEY (id),
  482. UNIQUE KEY uk_content_agent_policy_runs_run_policy_run (run_id, policy_run_id),
  483. KEY idx_content_agent_policy_runs_experiment (experiment_name, run_role, status, created_at),
  484. KEY idx_content_agent_policy_runs_policy (strategy_version, rule_pack_id, rule_pack_version),
  485. KEY idx_content_agent_policy_runs_schema_created_at (schema_version, created_at)
  486. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;