content_agent_schema.sql 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  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. age_50_plus_level VARCHAR(64) NULL,
  151. triggered_blocking_rules JSON NULL,
  152. scorecard JSON NULL,
  153. source_evidence JSON NULL,
  154. decision_replay_data JSON NULL,
  155. raw_payload JSON NOT NULL,
  156. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  157. PRIMARY KEY (id),
  158. UNIQUE KEY uk_ca_rule_run_policy_decision (run_id, policy_run_id, decision_id),
  159. UNIQUE KEY uk_ca_rule_run_policy_target (run_id, policy_run_id, decision_target_type, decision_target_id),
  160. KEY idx_content_agent_rule_decisions_action (decision_action),
  161. KEY idx_content_agent_rule_decisions_reason (decision_reason_code)
  162. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  163. CREATE TABLE IF NOT EXISTS content_agent_source_path_records (
  164. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  165. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  166. run_id VARCHAR(80) NOT NULL,
  167. policy_run_id VARCHAR(80) NOT NULL,
  168. source_path_record_id VARCHAR(80) NOT NULL,
  169. source_path_type VARCHAR(80) NOT NULL,
  170. from_node_type VARCHAR(80) NOT NULL,
  171. from_node_id VARCHAR(160) NOT NULL,
  172. to_node_type VARCHAR(80) NOT NULL,
  173. to_node_id VARCHAR(160) NOT NULL,
  174. decision_id VARCHAR(80) NULL,
  175. rule_pack_id VARCHAR(160) NULL,
  176. discovery_start_source VARCHAR(80) NULL,
  177. previous_discovery_step VARCHAR(80) NULL,
  178. origin_path_id VARCHAR(240) NULL,
  179. source_evidence_ref VARCHAR(240) NULL,
  180. raw_payload JSON NOT NULL,
  181. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  182. PRIMARY KEY (id),
  183. UNIQUE KEY uk_ca_paths_run_policy_path (run_id, policy_run_id, source_path_record_id),
  184. KEY idx_ca_paths_from (run_id, policy_run_id, from_node_type, from_node_id),
  185. KEY idx_ca_paths_to (run_id, policy_run_id, to_node_type, to_node_id),
  186. KEY idx_ca_paths_decision (run_id, policy_run_id, decision_id),
  187. KEY idx_content_agent_source_paths_type (source_path_type)
  188. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  189. CREATE TABLE IF NOT EXISTS content_agent_search_clues (
  190. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  191. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  192. run_id VARCHAR(80) NOT NULL,
  193. policy_run_id VARCHAR(80) NOT NULL,
  194. clue_id VARCHAR(80) NOT NULL,
  195. search_query_id VARCHAR(80) NOT NULL,
  196. search_query VARCHAR(512) NOT NULL,
  197. discovery_start_source VARCHAR(80) NULL,
  198. previous_discovery_step VARCHAR(80) NULL,
  199. result_count INT UNSIGNED NOT NULL DEFAULT 0,
  200. pooled_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  201. review_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  202. pending_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  203. rejected_content_count INT UNSIGNED NOT NULL DEFAULT 0,
  204. search_query_effect_status VARCHAR(32) NULL,
  205. walk_next_step VARCHAR(80) NULL,
  206. raw_payload JSON NOT NULL,
  207. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  208. PRIMARY KEY (id),
  209. UNIQUE KEY uk_ca_clues_run_policy_clue (run_id, policy_run_id, clue_id),
  210. UNIQUE KEY uk_ca_clues_run_policy_query (run_id, policy_run_id, search_query_id),
  211. KEY idx_content_agent_search_clues_effect (search_query_effect_status)
  212. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  213. CREATE TABLE IF NOT EXISTS content_agent_walk_actions (
  214. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  215. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  216. run_id VARCHAR(80) NOT NULL,
  217. policy_run_id VARCHAR(80) NOT NULL,
  218. walk_action_id VARCHAR(120) NOT NULL,
  219. edge_id VARCHAR(120) NOT NULL,
  220. edge_type VARCHAR(80) NULL,
  221. from_node_type VARCHAR(80) NULL,
  222. from_node_id VARCHAR(191) NULL,
  223. to_node_type VARCHAR(80) NULL,
  224. to_node_id VARCHAR(191) NULL,
  225. walk_action VARCHAR(120) NOT NULL,
  226. walk_status VARCHAR(32) NOT NULL,
  227. budget_tier VARCHAR(32) NULL,
  228. depth INT NULL,
  229. page_cursor VARCHAR(191) NULL,
  230. next_cursor VARCHAR(191) NULL,
  231. decision_id VARCHAR(120) NULL,
  232. rule_pack_id VARCHAR(160) NULL,
  233. rule_pack_version VARCHAR(80) NULL,
  234. reason_code VARCHAR(160) NULL,
  235. source_path_record_id VARCHAR(120) NULL,
  236. raw_payload JSON NOT NULL,
  237. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  238. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  239. PRIMARY KEY (id),
  240. UNIQUE KEY uk_ca_walk_actions_run_policy_action (run_id, policy_run_id, walk_action_id),
  241. KEY idx_ca_walk_actions_edge_status (edge_id, walk_status),
  242. KEY idx_ca_walk_actions_status_created_at (walk_status, created_at),
  243. KEY idx_ca_walk_actions_decision (decision_id)
  244. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  245. CREATE TABLE IF NOT EXISTS content_agent_run_events (
  246. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  247. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  248. run_id VARCHAR(80) NOT NULL,
  249. policy_run_id VARCHAR(80) NOT NULL,
  250. event_id VARCHAR(80) NOT NULL,
  251. event_type VARCHAR(120) NOT NULL,
  252. status VARCHAR(32) NOT NULL,
  253. input_ref VARCHAR(240) NULL,
  254. output_ref VARCHAR(240) NULL,
  255. error_code VARCHAR(120) NULL,
  256. message TEXT NULL,
  257. raw_payload JSON NOT NULL,
  258. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  259. PRIMARY KEY (id),
  260. UNIQUE KEY uk_ca_events_run_policy_event (run_id, policy_run_id, event_id),
  261. KEY idx_content_agent_run_events_type_status (event_type, status),
  262. KEY idx_content_agent_run_events_created_at (created_at)
  263. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  264. CREATE TABLE IF NOT EXISTS content_agent_final_outputs (
  265. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  266. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  267. run_id VARCHAR(80) NOT NULL,
  268. policy_run_id VARCHAR(80) NOT NULL,
  269. output_version VARCHAR(80) NOT NULL DEFAULT 'v1',
  270. summary JSON NULL,
  271. final_output JSON NOT NULL,
  272. validation_status VARCHAR(32) NULL,
  273. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  274. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  275. PRIMARY KEY (id),
  276. UNIQUE KEY uk_ca_outputs_run_policy_version (run_id, policy_run_id, output_version),
  277. KEY idx_content_agent_final_outputs_validation (validation_status)
  278. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  279. CREATE TABLE IF NOT EXISTS content_agent_publish_jobs (
  280. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  281. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  282. run_id VARCHAR(80) NOT NULL,
  283. policy_run_id VARCHAR(80) NOT NULL,
  284. publish_job_id VARCHAR(80) NOT NULL,
  285. platform_content_id VARCHAR(120) NULL,
  286. job_status VARCHAR(32) NOT NULL DEFAULT 'created',
  287. trigger_mode VARCHAR(64) NULL,
  288. crawler_plan_id VARCHAR(120) NULL,
  289. produce_plan_id VARCHAR(120) NULL,
  290. publish_plan_id VARCHAR(120) NULL,
  291. request_payload JSON NULL,
  292. response_payload JSON NULL,
  293. error_code VARCHAR(120) NULL,
  294. error_message TEXT NULL,
  295. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  296. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  297. PRIMARY KEY (id),
  298. UNIQUE KEY uk_ca_publish_run_policy_job (run_id, policy_run_id, publish_job_id),
  299. KEY idx_content_agent_publish_jobs_status (job_status),
  300. KEY idx_content_agent_publish_jobs_content (platform_content_id)
  301. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  302. CREATE TABLE IF NOT EXISTS content_agent_author_assets (
  303. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  304. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  305. author_asset_id VARCHAR(80) NOT NULL,
  306. platform VARCHAR(32) NOT NULL DEFAULT 'douyin',
  307. platform_author_id VARCHAR(256) NOT NULL,
  308. author_display_name VARCHAR(256) NULL,
  309. author_profile_url TEXT NULL,
  310. asset_status VARCHAR(32) NOT NULL DEFAULT 'candidate',
  311. source_type VARCHAR(64) NOT NULL,
  312. validation_status VARCHAR(64) NOT NULL DEFAULT 'unverified',
  313. eligible_as_source TINYINT(1) NOT NULL DEFAULT 0,
  314. elderly_ratio DECIMAL(8,4) NULL,
  315. elderly_tgi DECIMAL(12,4) NULL,
  316. content_tags JSON NULL,
  317. source_run_id VARCHAR(80) NULL,
  318. source_policy_run_id VARCHAR(80) NULL,
  319. last_profile_fetch_at DATETIME(3) NULL,
  320. last_works_fetch_at DATETIME(3) NULL,
  321. last_validated_at DATETIME(3) NULL,
  322. profile_snapshot JSON NULL,
  323. evidence_refs JSON NULL,
  324. raw_payload JSON NULL,
  325. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  326. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  327. PRIMARY KEY (id),
  328. UNIQUE KEY uk_ca_author_assets_asset (author_asset_id),
  329. UNIQUE KEY uk_ca_author_assets_platform_author (platform, platform_author_id)
  330. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  331. CREATE TABLE IF NOT EXISTS content_agent_author_asset_roles (
  332. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  333. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  334. author_asset_id VARCHAR(80) NOT NULL,
  335. role VARCHAR(64) NOT NULL,
  336. role_status VARCHAR(32) NOT NULL DEFAULT 'active',
  337. role_reason_code VARCHAR(160) NULL,
  338. assigned_by VARCHAR(32) NOT NULL DEFAULT 'system',
  339. source_run_id VARCHAR(80) NULL,
  340. raw_payload JSON NULL,
  341. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  342. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  343. PRIMARY KEY (id),
  344. UNIQUE KEY uk_ca_author_asset_roles_asset_role (author_asset_id, role)
  345. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  346. CREATE TABLE IF NOT EXISTS content_agent_pattern_recall_evidence (
  347. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  348. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  349. run_id VARCHAR(80) NOT NULL,
  350. policy_run_id VARCHAR(80) NOT NULL,
  351. recall_evidence_id VARCHAR(80) NOT NULL,
  352. content_discovery_id VARCHAR(80) NULL,
  353. platform_content_id VARCHAR(120) NOT NULL,
  354. decode_status VARCHAR(32) NULL,
  355. decode_task_id VARCHAR(120) NULL,
  356. recall_status VARCHAR(32) NULL,
  357. matched_terms JSON NULL,
  358. matched_category_paths JSON NULL,
  359. decode_elements JSON NULL,
  360. match_paths_request JSON NULL,
  361. match_paths_response JSON NULL,
  362. evidence_summary JSON NULL,
  363. raw_payload JSON NULL,
  364. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  365. PRIMARY KEY (id),
  366. UNIQUE KEY uk_ca_recall_run_policy_evidence (run_id, policy_run_id, recall_evidence_id),
  367. KEY idx_ca_recall_content (run_id, policy_run_id, platform_content_id),
  368. KEY idx_content_agent_pattern_recall_status (recall_status, decode_status)
  369. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  370. CREATE TABLE IF NOT EXISTS content_agent_strategy_reviews (
  371. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  372. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  373. run_id VARCHAR(80) NOT NULL,
  374. policy_run_id VARCHAR(80) NOT NULL,
  375. review_id VARCHAR(80) NOT NULL,
  376. review_status VARCHAR(32) NOT NULL DEFAULT 'generated',
  377. summary JSON NULL,
  378. effective_search_queries JSON NULL,
  379. weak_search_queries JSON NULL,
  380. top_reject_reasons JSON NULL,
  381. productive_paths JSON NULL,
  382. suggestions JSON NULL,
  383. raw_payload JSON NOT NULL,
  384. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  385. PRIMARY KEY (id),
  386. UNIQUE KEY uk_ca_reviews_run_policy_review (run_id, policy_run_id, review_id),
  387. KEY idx_content_agent_strategy_reviews_status (review_status)
  388. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  389. CREATE TABLE IF NOT EXISTS content_agent_policy_runs (
  390. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  391. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  392. run_id VARCHAR(80) NOT NULL,
  393. policy_run_id VARCHAR(80) NOT NULL,
  394. experiment_name VARCHAR(160) NULL,
  395. run_role VARCHAR(80) NULL,
  396. policy_bundle_id VARCHAR(160) NULL,
  397. rule_pack_id VARCHAR(160) NULL,
  398. strategy_id VARCHAR(160) NULL,
  399. strategy_version VARCHAR(160) NULL,
  400. rule_pack_version VARCHAR(160) NULL,
  401. walk_strategy_version VARCHAR(160) NULL,
  402. policy_bundle_hash VARCHAR(128) NULL,
  403. strategy_source_ref JSON NULL,
  404. rule_pack_source_ref JSON NULL,
  405. evidence_bundle_schema_version VARCHAR(80) NULL,
  406. runtime_record_schema_version VARCHAR(80) NULL,
  407. status VARCHAR(32) NOT NULL DEFAULT 'recorded',
  408. metrics JSON NULL,
  409. decision_summary JSON NULL,
  410. raw_payload JSON NULL,
  411. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  412. PRIMARY KEY (id),
  413. UNIQUE KEY uk_content_agent_policy_runs_run_policy_run (run_id, policy_run_id),
  414. KEY idx_content_agent_policy_runs_experiment (experiment_name, run_role, status, created_at),
  415. KEY idx_content_agent_policy_runs_policy (strategy_version, rule_pack_id, rule_pack_version),
  416. KEY idx_content_agent_policy_runs_schema_created_at (schema_version, created_at)
  417. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;