content_agent_schema.sql 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509
  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. content_audience_profile JSON NULL,
  107. platform_raw_payload JSON NULL,
  108. raw_payload JSON NOT NULL,
  109. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  110. PRIMARY KEY (id),
  111. UNIQUE KEY uk_ca_items_run_policy_discovery (run_id, policy_run_id, content_discovery_id),
  112. UNIQUE KEY uk_ca_items_run_policy_content (run_id, policy_run_id, platform, platform_content_id),
  113. KEY idx_ca_items_run_policy_query (run_id, policy_run_id, search_query_id),
  114. KEY idx_content_agent_content_items_author (platform_author_id(191))
  115. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  116. CREATE TABLE IF NOT EXISTS content_agent_content_media_records (
  117. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  118. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  119. run_id VARCHAR(80) NOT NULL,
  120. policy_run_id VARCHAR(80) NOT NULL,
  121. platform VARCHAR(32) NOT NULL,
  122. platform_content_id VARCHAR(120) NOT NULL,
  123. content_media_status VARCHAR(64) NOT NULL,
  124. content_metadata_source VARCHAR(128) NULL,
  125. play_url TEXT NULL,
  126. local_path TEXT NULL,
  127. oss_url TEXT NULL,
  128. raw_payload JSON NOT NULL,
  129. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  130. PRIMARY KEY (id),
  131. UNIQUE KEY uk_ca_media_run_policy_content (run_id, policy_run_id, platform, platform_content_id),
  132. KEY idx_content_agent_media_records_status (content_media_status)
  133. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  134. CREATE TABLE IF NOT EXISTS content_agent_rule_decisions (
  135. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  136. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  137. run_id VARCHAR(80) NOT NULL,
  138. policy_run_id VARCHAR(80) NOT NULL,
  139. decision_id VARCHAR(80) NOT NULL,
  140. policy_bundle_id VARCHAR(160) NULL,
  141. rule_pack_id VARCHAR(160) NULL,
  142. rule_pack_version VARCHAR(160) NULL,
  143. strategy_version VARCHAR(160) NULL,
  144. decision_target_type VARCHAR(64) NOT NULL,
  145. decision_target_id VARCHAR(160) NOT NULL,
  146. decision_action VARCHAR(64) NOT NULL,
  147. decision_reason_code VARCHAR(160) NULL,
  148. search_query_effect_status VARCHAR(32) NULL,
  149. score DECIMAL(12,4) NULL,
  150. triggered_blocking_rules JSON NULL,
  151. scorecard JSON NULL,
  152. source_evidence JSON NULL,
  153. decision_replay_data JSON NULL,
  154. raw_payload JSON NOT NULL,
  155. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  156. PRIMARY KEY (id),
  157. UNIQUE KEY uk_ca_rule_run_policy_decision (run_id, policy_run_id, decision_id),
  158. UNIQUE KEY uk_ca_rule_run_policy_target (run_id, policy_run_id, decision_target_type, decision_target_id),
  159. KEY idx_content_agent_rule_decisions_action (decision_action),
  160. KEY idx_content_agent_rule_decisions_reason (decision_reason_code)
  161. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  162. CREATE TABLE IF NOT EXISTS content_agent_source_path_records (
  163. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  164. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  165. run_id VARCHAR(80) NOT NULL,
  166. policy_run_id VARCHAR(80) NOT NULL,
  167. source_path_record_id VARCHAR(80) NOT NULL,
  168. source_path_type VARCHAR(80) NOT NULL,
  169. from_node_type VARCHAR(80) NOT NULL,
  170. from_node_id VARCHAR(160) NOT NULL,
  171. to_node_type VARCHAR(80) NOT NULL,
  172. to_node_id VARCHAR(160) NOT NULL,
  173. decision_id VARCHAR(80) NULL,
  174. rule_pack_id VARCHAR(160) NULL,
  175. discovery_start_source VARCHAR(80) NULL,
  176. previous_discovery_step VARCHAR(80) NULL,
  177. origin_path_id VARCHAR(240) NULL,
  178. source_evidence_ref VARCHAR(240) NULL,
  179. raw_payload JSON NOT NULL,
  180. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  181. PRIMARY KEY (id),
  182. UNIQUE KEY uk_ca_paths_run_policy_path (run_id, policy_run_id, source_path_record_id),
  183. KEY idx_ca_paths_from (run_id, policy_run_id, from_node_type, from_node_id),
  184. KEY idx_ca_paths_to (run_id, policy_run_id, to_node_type, to_node_id),
  185. KEY idx_ca_paths_decision (run_id, policy_run_id, decision_id),
  186. KEY idx_content_agent_source_paths_type (source_path_type)
  187. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  188. CREATE TABLE IF NOT EXISTS content_agent_search_clues (
  189. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  190. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  191. run_id VARCHAR(80) NOT NULL,
  192. policy_run_id VARCHAR(80) NOT NULL,
  193. clue_id VARCHAR(80) NOT NULL,
  194. search_query_id VARCHAR(80) NOT NULL,
  195. search_query VARCHAR(512) NOT NULL,
  196. discovery_start_source VARCHAR(80) NULL,
  197. previous_discovery_step VARCHAR(80) NULL,
  198. result_count INT UNSIGNED NOT NULL DEFAULT 0,
  199. pooled_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  200. review_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  201. pending_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  202. rejected_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  203. search_query_effect_status VARCHAR(32) NULL,
  204. walk_next_step VARCHAR(80) NULL,
  205. raw_payload JSON NOT NULL,
  206. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  207. PRIMARY KEY (id),
  208. UNIQUE KEY uk_ca_clues_run_policy_clue (run_id, policy_run_id, clue_id),
  209. UNIQUE KEY uk_ca_clues_run_policy_query (run_id, policy_run_id, search_query_id),
  210. KEY idx_content_agent_search_clues_effect (search_query_effect_status)
  211. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  212. CREATE TABLE IF NOT EXISTS content_agent_walk_actions (
  213. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  214. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  215. run_id VARCHAR(80) NOT NULL,
  216. policy_run_id VARCHAR(80) NOT NULL,
  217. walk_action_id VARCHAR(120) NOT NULL,
  218. edge_id VARCHAR(120) NOT NULL,
  219. edge_type VARCHAR(80) NULL,
  220. from_node_type VARCHAR(80) NULL,
  221. from_node_id VARCHAR(191) NULL,
  222. to_node_type VARCHAR(80) NULL,
  223. to_node_id VARCHAR(191) NULL,
  224. walk_action VARCHAR(120) NOT NULL,
  225. walk_status VARCHAR(32) NOT NULL,
  226. budget_tier VARCHAR(32) NULL,
  227. depth INT NULL,
  228. page_cursor VARCHAR(191) NULL,
  229. next_cursor VARCHAR(191) NULL,
  230. decision_id VARCHAR(120) NULL,
  231. rule_pack_id VARCHAR(160) NULL,
  232. rule_pack_version VARCHAR(80) NULL,
  233. reason_code VARCHAR(160) NULL,
  234. source_path_record_id VARCHAR(120) NULL,
  235. raw_payload JSON NOT NULL,
  236. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  237. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  238. PRIMARY KEY (id),
  239. UNIQUE KEY uk_ca_walk_actions_run_policy_action (run_id, policy_run_id, walk_action_id),
  240. KEY idx_ca_walk_actions_edge_status (edge_id, walk_status),
  241. KEY idx_ca_walk_actions_status_created_at (walk_status, created_at),
  242. KEY idx_ca_walk_actions_decision (decision_id)
  243. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  244. CREATE TABLE IF NOT EXISTS content_agent_run_events (
  245. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  246. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  247. run_id VARCHAR(80) NOT NULL,
  248. policy_run_id VARCHAR(80) NOT NULL,
  249. event_id VARCHAR(80) NOT NULL,
  250. event_type VARCHAR(120) NOT NULL,
  251. status VARCHAR(32) NOT NULL,
  252. input_ref VARCHAR(240) NULL,
  253. output_ref VARCHAR(240) NULL,
  254. error_code VARCHAR(120) NULL,
  255. message TEXT NULL,
  256. raw_payload JSON NOT NULL,
  257. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  258. PRIMARY KEY (id),
  259. UNIQUE KEY uk_ca_events_run_policy_event (run_id, policy_run_id, event_id),
  260. KEY idx_content_agent_run_events_type_status (event_type, status),
  261. KEY idx_content_agent_run_events_created_at (created_at)
  262. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  263. CREATE TABLE IF NOT EXISTS content_agent_final_outputs (
  264. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  265. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  266. run_id VARCHAR(80) NOT NULL,
  267. policy_run_id VARCHAR(80) NOT NULL,
  268. output_version VARCHAR(80) NOT NULL DEFAULT 'v1',
  269. summary JSON NULL,
  270. final_output JSON NOT NULL,
  271. validation_status VARCHAR(32) NULL,
  272. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  273. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  274. PRIMARY KEY (id),
  275. UNIQUE KEY uk_ca_outputs_run_policy_version (run_id, policy_run_id, output_version),
  276. KEY idx_content_agent_final_outputs_validation (validation_status)
  277. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  278. CREATE TABLE IF NOT EXISTS content_agent_publish_jobs (
  279. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  280. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  281. run_id VARCHAR(80) NOT NULL,
  282. policy_run_id VARCHAR(80) NOT NULL,
  283. publish_job_id VARCHAR(80) NOT NULL,
  284. platform_content_id VARCHAR(120) NULL,
  285. job_status VARCHAR(32) NOT NULL DEFAULT 'created',
  286. trigger_mode VARCHAR(64) NULL,
  287. crawler_plan_id VARCHAR(120) NULL,
  288. produce_plan_id VARCHAR(120) NULL,
  289. publish_plan_id VARCHAR(120) NULL,
  290. request_payload JSON NULL,
  291. response_payload JSON NULL,
  292. error_code VARCHAR(120) NULL,
  293. error_message TEXT NULL,
  294. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  295. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  296. PRIMARY KEY (id),
  297. UNIQUE KEY uk_ca_publish_run_policy_job (run_id, policy_run_id, publish_job_id),
  298. KEY idx_content_agent_publish_jobs_status (job_status),
  299. KEY idx_content_agent_publish_jobs_content (platform_content_id)
  300. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  301. CREATE TABLE IF NOT EXISTS content_agent_author_assets (
  302. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  303. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  304. author_asset_id VARCHAR(80) NOT NULL,
  305. platform VARCHAR(32) NOT NULL DEFAULT 'douyin',
  306. platform_author_id VARCHAR(256) NOT NULL,
  307. author_display_name VARCHAR(256) NULL,
  308. author_profile_url TEXT NULL,
  309. asset_status VARCHAR(32) NOT NULL DEFAULT 'candidate',
  310. source_type VARCHAR(64) NOT NULL,
  311. validation_status VARCHAR(64) NOT NULL DEFAULT 'unverified',
  312. eligible_as_source TINYINT(1) NOT NULL DEFAULT 0,
  313. elderly_ratio DECIMAL(8,4) NULL,
  314. elderly_tgi DECIMAL(12,4) NULL,
  315. content_tags JSON NULL,
  316. source_run_id VARCHAR(80) NULL,
  317. source_policy_run_id VARCHAR(80) NULL,
  318. last_profile_fetch_at DATETIME(3) NULL,
  319. last_works_fetch_at DATETIME(3) NULL,
  320. last_validated_at DATETIME(3) NULL,
  321. profile_snapshot JSON NULL,
  322. evidence_refs JSON NULL,
  323. raw_payload JSON NULL,
  324. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  325. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  326. PRIMARY KEY (id),
  327. UNIQUE KEY uk_ca_author_assets_asset (author_asset_id),
  328. UNIQUE KEY uk_ca_author_assets_platform_author (platform, platform_author_id)
  329. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  330. CREATE TABLE IF NOT EXISTS content_agent_author_asset_roles (
  331. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  332. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  333. author_asset_id VARCHAR(80) NOT NULL,
  334. role VARCHAR(64) NOT NULL,
  335. role_status VARCHAR(32) NOT NULL DEFAULT 'active',
  336. role_reason_code VARCHAR(160) NULL,
  337. assigned_by VARCHAR(32) NOT NULL DEFAULT 'system',
  338. source_run_id VARCHAR(80) NULL,
  339. raw_payload JSON NULL,
  340. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  341. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  342. PRIMARY KEY (id),
  343. UNIQUE KEY uk_ca_author_asset_roles_asset_role (author_asset_id, role)
  344. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  345. CREATE TABLE IF NOT EXISTS content_agent_pattern_recall_evidence (
  346. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  347. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  348. run_id VARCHAR(80) NOT NULL,
  349. policy_run_id VARCHAR(80) NOT NULL,
  350. recall_evidence_id VARCHAR(80) NOT NULL,
  351. content_discovery_id VARCHAR(80) NULL,
  352. platform_content_id VARCHAR(120) NOT NULL,
  353. recall_status VARCHAR(32) NULL,
  354. evidence_summary JSON NULL,
  355. raw_payload JSON NULL,
  356. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  357. PRIMARY KEY (id),
  358. UNIQUE KEY uk_ca_recall_run_policy_evidence (run_id, policy_run_id, recall_evidence_id),
  359. KEY idx_ca_recall_content (run_id, policy_run_id, platform_content_id),
  360. KEY idx_content_agent_pattern_recall_status (recall_status)
  361. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  362. CREATE TABLE IF NOT EXISTS content_agent_strategy_reviews (
  363. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  364. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  365. run_id VARCHAR(80) NOT NULL,
  366. policy_run_id VARCHAR(80) NOT NULL,
  367. review_id VARCHAR(80) NOT NULL,
  368. review_status VARCHAR(32) NOT NULL DEFAULT 'generated',
  369. summary JSON NULL,
  370. effective_search_queries JSON NULL,
  371. weak_search_queries JSON NULL,
  372. top_reject_reasons JSON NULL,
  373. productive_paths JSON NULL,
  374. suggestions JSON NULL,
  375. raw_payload JSON NOT NULL,
  376. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  377. PRIMARY KEY (id),
  378. UNIQUE KEY uk_ca_reviews_run_policy_review (run_id, policy_run_id, review_id),
  379. KEY idx_content_agent_strategy_reviews_status (review_status)
  380. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  381. CREATE TABLE IF NOT EXISTS content_agent_performance_feedback (
  382. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  383. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  384. run_id VARCHAR(80) NOT NULL,
  385. policy_run_id VARCHAR(80) NOT NULL,
  386. feedback_id VARCHAR(80) NOT NULL,
  387. platform VARCHAR(40) NOT NULL DEFAULT 'douyin',
  388. platform_content_id VARCHAR(120) NOT NULL,
  389. content_asset_id VARCHAR(120) NULL,
  390. feedback_source VARCHAR(80) NOT NULL,
  391. feedback_status VARCHAR(32) NOT NULL DEFAULT 'available',
  392. metric_window_start DATETIME(3) NULL,
  393. metric_window_end DATETIME(3) NULL,
  394. completion_rate DECIMAL(10,6) NULL,
  395. share_rate DECIMAL(10,6) NULL,
  396. average_watch_seconds DECIMAL(12,3) NULL,
  397. total_watch_seconds DECIMAL(18,3) NULL,
  398. impression_count BIGINT NULL,
  399. play_count BIGINT NULL,
  400. like_count BIGINT NULL,
  401. comment_count BIGINT NULL,
  402. share_count BIGINT NULL,
  403. collect_count BIGINT NULL,
  404. raw_payload JSON NULL,
  405. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  406. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  407. PRIMARY KEY (id),
  408. UNIQUE KEY uk_ca_feedback_run_policy_feedback (run_id, policy_run_id, feedback_id),
  409. KEY idx_ca_feedback_content (run_id, policy_run_id, platform_content_id),
  410. KEY idx_ca_feedback_source_status (feedback_source, feedback_status)
  411. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  412. CREATE TABLE IF NOT EXISTS content_agent_search_clue_assets (
  413. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  414. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  415. search_clue_asset_id VARCHAR(120) NOT NULL,
  416. platform VARCHAR(40) NOT NULL DEFAULT 'douyin',
  417. clue_type VARCHAR(80) NOT NULL,
  418. normalized_clue_text VARCHAR(500) NOT NULL,
  419. display_clue_text VARCHAR(500) NOT NULL,
  420. promotion_status VARCHAR(32) NOT NULL DEFAULT 'promoted',
  421. reusable_priority INT NOT NULL DEFAULT 0,
  422. can_seed_next_run TINYINT(1) NOT NULL DEFAULT 1,
  423. first_seen_run_id VARCHAR(80) NOT NULL,
  424. first_seen_policy_run_id VARCHAR(80) NOT NULL,
  425. last_validated_at DATETIME(3) NULL,
  426. summary_metrics JSON NULL,
  427. raw_payload JSON NULL,
  428. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  429. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  430. PRIMARY KEY (id),
  431. UNIQUE KEY uk_ca_search_clue_assets_asset (search_clue_asset_id),
  432. UNIQUE KEY uk_ca_search_clue_assets_identity (platform, clue_type, normalized_clue_text),
  433. KEY idx_ca_search_clue_assets_status (promotion_status, can_seed_next_run),
  434. KEY idx_ca_search_clue_assets_last_validated (last_validated_at)
  435. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  436. CREATE TABLE IF NOT EXISTS content_agent_search_clue_asset_evidence (
  437. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  438. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  439. evidence_id VARCHAR(120) NOT NULL,
  440. search_clue_asset_id VARCHAR(120) NOT NULL,
  441. run_id VARCHAR(80) NOT NULL,
  442. policy_run_id VARCHAR(80) NOT NULL,
  443. clue_id VARCHAR(80) NOT NULL,
  444. search_query_id VARCHAR(80) NULL,
  445. pooled_content_count INT NOT NULL DEFAULT 0,
  446. review_content_count INT NOT NULL DEFAULT 0,
  447. failed_content_count INT NOT NULL DEFAULT 0,
  448. source_path_record_ids JSON NULL,
  449. decision_ids JSON NULL,
  450. performance_feedback_refs JSON NULL,
  451. raw_payload JSON NULL,
  452. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  453. PRIMARY KEY (id),
  454. UNIQUE KEY uk_ca_search_clue_evidence_id (evidence_id),
  455. UNIQUE KEY uk_ca_search_clue_evidence_run_clue (run_id, policy_run_id, clue_id),
  456. KEY idx_ca_search_clue_evidence_asset (search_clue_asset_id),
  457. KEY idx_ca_search_clue_evidence_run_policy (run_id, policy_run_id)
  458. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  459. CREATE TABLE IF NOT EXISTS content_agent_policy_runs (
  460. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  461. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  462. run_id VARCHAR(80) NOT NULL,
  463. policy_run_id VARCHAR(80) NOT NULL,
  464. experiment_name VARCHAR(160) NULL,
  465. run_role VARCHAR(80) NULL,
  466. policy_bundle_id VARCHAR(160) NULL,
  467. rule_pack_id VARCHAR(160) NULL,
  468. strategy_id VARCHAR(160) NULL,
  469. strategy_version VARCHAR(160) NULL,
  470. rule_pack_version VARCHAR(160) NULL,
  471. walk_strategy_version VARCHAR(160) NULL,
  472. policy_bundle_hash VARCHAR(128) NULL,
  473. strategy_source_ref JSON NULL,
  474. rule_pack_source_ref JSON NULL,
  475. evidence_bundle_schema_version VARCHAR(80) NULL,
  476. runtime_record_schema_version VARCHAR(80) NULL,
  477. status VARCHAR(32) NOT NULL DEFAULT 'recorded',
  478. metrics JSON NULL,
  479. decision_summary JSON NULL,
  480. raw_payload JSON NULL,
  481. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  482. PRIMARY KEY (id),
  483. UNIQUE KEY uk_content_agent_policy_runs_run_policy_run (run_id, policy_run_id),
  484. KEY idx_content_agent_policy_runs_experiment (experiment_name, run_role, status, created_at),
  485. KEY idx_content_agent_policy_runs_policy (strategy_version, rule_pack_id, rule_pack_version),
  486. KEY idx_content_agent_policy_runs_schema_created_at (schema_version, created_at)
  487. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;