content_agent_schema.sql 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  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_media_pipeline_tasks (
  263. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  264. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  265. task_id VARCHAR(120) NOT NULL,
  266. task_type VARCHAR(40) NOT NULL,
  267. idempotency_key VARCHAR(320) NOT NULL,
  268. run_id VARCHAR(80) NOT NULL,
  269. policy_run_id VARCHAR(80) NOT NULL,
  270. batch_id VARCHAR(160) NOT NULL,
  271. platform VARCHAR(32) NOT NULL,
  272. platform_content_id VARCHAR(120) NOT NULL,
  273. status VARCHAR(32) NOT NULL,
  274. attempt_count INT NOT NULL DEFAULT 0,
  275. lease_until DATETIME(3) NULL,
  276. next_retry_at DATETIME(3) NULL,
  277. input_payload JSON NOT NULL,
  278. result_payload JSON NULL,
  279. error_summary JSON NULL,
  280. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  281. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  282. PRIMARY KEY (id),
  283. UNIQUE KEY uk_ca_media_pipeline_task_id (task_id),
  284. UNIQUE KEY uk_ca_media_pipeline_idempotency (idempotency_key),
  285. KEY idx_ca_media_pipeline_run_batch (run_id, policy_run_id, batch_id),
  286. KEY idx_ca_media_pipeline_status_retry (status, next_retry_at),
  287. KEY idx_ca_media_pipeline_content (run_id, policy_run_id, platform, platform_content_id)
  288. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  289. CREATE TABLE IF NOT EXISTS content_agent_final_outputs (
  290. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  291. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  292. run_id VARCHAR(80) NOT NULL,
  293. policy_run_id VARCHAR(80) NOT NULL,
  294. output_version VARCHAR(80) NOT NULL DEFAULT 'v1',
  295. summary JSON NULL,
  296. final_output JSON NOT NULL,
  297. validation_status VARCHAR(32) NULL,
  298. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  299. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  300. PRIMARY KEY (id),
  301. UNIQUE KEY uk_ca_outputs_run_policy_version (run_id, policy_run_id, output_version),
  302. KEY idx_content_agent_final_outputs_validation (validation_status)
  303. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  304. CREATE TABLE IF NOT EXISTS content_agent_publish_jobs (
  305. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  306. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  307. run_id VARCHAR(80) NOT NULL,
  308. policy_run_id VARCHAR(80) NOT NULL,
  309. publish_job_id VARCHAR(80) NOT NULL,
  310. platform_content_id VARCHAR(120) NULL,
  311. job_status VARCHAR(32) NOT NULL DEFAULT 'created',
  312. trigger_mode VARCHAR(64) NULL,
  313. crawler_plan_id VARCHAR(120) NULL,
  314. produce_plan_id VARCHAR(120) NULL,
  315. publish_plan_id VARCHAR(120) NULL,
  316. request_payload JSON NULL,
  317. response_payload JSON NULL,
  318. error_code VARCHAR(120) NULL,
  319. error_message TEXT NULL,
  320. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  321. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  322. PRIMARY KEY (id),
  323. UNIQUE KEY uk_ca_publish_run_policy_job (run_id, policy_run_id, publish_job_id),
  324. KEY idx_content_agent_publish_jobs_status (job_status),
  325. KEY idx_content_agent_publish_jobs_content (platform_content_id)
  326. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  327. CREATE TABLE IF NOT EXISTS content_agent_aigc_push_records (
  328. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  329. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  330. push_record_id VARCHAR(160) NOT NULL,
  331. run_id VARCHAR(80) NOT NULL,
  332. policy_run_id VARCHAR(80) NULL,
  333. platform VARCHAR(32) NOT NULL,
  334. demand_content_id BIGINT UNSIGNED NULL,
  335. demand_name VARCHAR(512) NULL,
  336. demand_dt VARCHAR(32) NULL,
  337. hive_merge_leve2 VARCHAR(160) NULL,
  338. hive_gap_dt VARCHAR(32) NULL,
  339. evidence_platform VARCHAR(80) NULL,
  340. run_label VARCHAR(240) NULL,
  341. run_status VARCHAR(32) NULL,
  342. pushed_at DATETIME(3) NULL,
  343. push_status VARCHAR(32) NOT NULL DEFAULT 'pushed',
  344. source_kind VARCHAR(80) NOT NULL DEFAULT 'manual',
  345. source_ref VARCHAR(512) NULL,
  346. uploaded_by VARCHAR(120) NULL,
  347. notes TEXT NULL,
  348. raw_payload JSON NULL,
  349. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  350. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  351. PRIMARY KEY (id),
  352. UNIQUE KEY uk_ca_aigc_push_record (push_record_id),
  353. KEY idx_ca_aigc_push_run (run_id),
  354. KEY idx_ca_aigc_push_demand (demand_content_id),
  355. KEY idx_ca_aigc_push_platform_time (platform, pushed_at),
  356. KEY idx_ca_aigc_push_status (push_status)
  357. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  358. CREATE TABLE IF NOT EXISTS content_agent_aigc_push_plans (
  359. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  360. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  361. push_record_id VARCHAR(160) NOT NULL,
  362. plan_part VARCHAR(32) NOT NULL,
  363. produce_plan_id VARCHAR(120) NOT NULL,
  364. crawler_plan_id VARCHAR(120) NOT NULL,
  365. content_count INT UNSIGNED NOT NULL DEFAULT 0,
  366. pushed_at DATETIME(3) NULL,
  367. raw_payload JSON NULL,
  368. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  369. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  370. PRIMARY KEY (id),
  371. UNIQUE KEY uk_ca_aigc_push_plan (push_record_id, plan_part),
  372. KEY idx_ca_aigc_push_plan_crawler (crawler_plan_id),
  373. KEY idx_ca_aigc_push_plan_produce (produce_plan_id)
  374. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  375. CREATE TABLE IF NOT EXISTS content_agent_aigc_push_items (
  376. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  377. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  378. push_record_id VARCHAR(160) NOT NULL,
  379. plan_part VARCHAR(32) NOT NULL,
  380. item_index INT UNSIGNED NOT NULL,
  381. platform_content_id VARCHAR(160) NOT NULL,
  382. decision_id VARCHAR(80) NULL,
  383. content_title TEXT NULL,
  384. author_display_name VARCHAR(256) NULL,
  385. raw_payload JSON NULL,
  386. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  387. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  388. PRIMARY KEY (id),
  389. UNIQUE KEY uk_ca_aigc_push_item (push_record_id, platform_content_id),
  390. KEY idx_ca_aigc_push_item_part (push_record_id, plan_part),
  391. KEY idx_ca_aigc_push_item_content (platform_content_id)
  392. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  393. CREATE TABLE IF NOT EXISTS content_agent_author_assets (
  394. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  395. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  396. author_asset_id VARCHAR(80) NOT NULL,
  397. platform VARCHAR(32) NOT NULL DEFAULT 'douyin',
  398. platform_author_id VARCHAR(256) NOT NULL,
  399. author_display_name VARCHAR(256) NULL,
  400. author_profile_url TEXT NULL,
  401. asset_status VARCHAR(32) NOT NULL DEFAULT 'candidate',
  402. source_type VARCHAR(64) NOT NULL,
  403. validation_status VARCHAR(64) NOT NULL DEFAULT 'unverified',
  404. eligible_as_source TINYINT(1) NOT NULL DEFAULT 0,
  405. elderly_ratio DECIMAL(8,4) NULL,
  406. elderly_tgi DECIMAL(12,4) NULL,
  407. content_tags JSON NULL,
  408. source_run_id VARCHAR(80) NULL,
  409. source_policy_run_id VARCHAR(80) NULL,
  410. last_profile_fetch_at DATETIME(3) NULL,
  411. last_works_fetch_at DATETIME(3) NULL,
  412. last_validated_at DATETIME(3) NULL,
  413. profile_snapshot JSON NULL,
  414. evidence_refs JSON NULL,
  415. raw_payload JSON NULL,
  416. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  417. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  418. PRIMARY KEY (id),
  419. UNIQUE KEY uk_ca_author_assets_asset (author_asset_id),
  420. UNIQUE KEY uk_ca_author_assets_platform_author (platform, platform_author_id)
  421. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  422. CREATE TABLE IF NOT EXISTS content_agent_author_asset_roles (
  423. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  424. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  425. author_asset_id VARCHAR(80) NOT NULL,
  426. role VARCHAR(64) NOT NULL,
  427. role_status VARCHAR(32) NOT NULL DEFAULT 'active',
  428. role_reason_code VARCHAR(160) NULL,
  429. assigned_by VARCHAR(32) NOT NULL DEFAULT 'system',
  430. source_run_id VARCHAR(80) NULL,
  431. raw_payload JSON NULL,
  432. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  433. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  434. PRIMARY KEY (id),
  435. UNIQUE KEY uk_ca_author_asset_roles_asset_role (author_asset_id, role)
  436. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  437. CREATE TABLE IF NOT EXISTS content_agent_pattern_recall_evidence (
  438. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  439. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  440. run_id VARCHAR(80) NOT NULL,
  441. policy_run_id VARCHAR(80) NOT NULL,
  442. recall_evidence_id VARCHAR(80) NOT NULL,
  443. content_discovery_id VARCHAR(80) NULL,
  444. platform_content_id VARCHAR(120) NOT NULL,
  445. recall_status VARCHAR(32) NULL,
  446. evidence_summary JSON NULL,
  447. raw_payload JSON NULL,
  448. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  449. PRIMARY KEY (id),
  450. UNIQUE KEY uk_ca_recall_run_policy_evidence (run_id, policy_run_id, recall_evidence_id),
  451. KEY idx_ca_recall_content (run_id, policy_run_id, platform_content_id),
  452. KEY idx_content_agent_pattern_recall_status (recall_status)
  453. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  454. CREATE TABLE IF NOT EXISTS content_agent_strategy_reviews (
  455. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  456. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  457. run_id VARCHAR(80) NOT NULL,
  458. policy_run_id VARCHAR(80) NOT NULL,
  459. review_id VARCHAR(80) NOT NULL,
  460. review_status VARCHAR(32) NOT NULL DEFAULT 'generated',
  461. summary JSON NULL,
  462. effective_search_queries JSON NULL,
  463. weak_search_queries JSON NULL,
  464. top_reject_reasons JSON NULL,
  465. productive_paths JSON NULL,
  466. suggestions JSON NULL,
  467. raw_payload JSON NOT NULL,
  468. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  469. PRIMARY KEY (id),
  470. UNIQUE KEY uk_ca_reviews_run_policy_review (run_id, policy_run_id, review_id),
  471. KEY idx_content_agent_strategy_reviews_status (review_status)
  472. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  473. CREATE TABLE IF NOT EXISTS content_agent_performance_feedback (
  474. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  475. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  476. run_id VARCHAR(80) NOT NULL,
  477. policy_run_id VARCHAR(80) NOT NULL,
  478. feedback_id VARCHAR(80) NOT NULL,
  479. platform VARCHAR(40) NOT NULL DEFAULT 'douyin',
  480. platform_content_id VARCHAR(120) NOT NULL,
  481. content_asset_id VARCHAR(120) NULL,
  482. feedback_source VARCHAR(80) NOT NULL,
  483. feedback_status VARCHAR(32) NOT NULL DEFAULT 'available',
  484. metric_window_start DATETIME(3) NULL,
  485. metric_window_end DATETIME(3) NULL,
  486. completion_rate DECIMAL(10,6) NULL,
  487. share_rate DECIMAL(10,6) NULL,
  488. average_watch_seconds DECIMAL(12,3) NULL,
  489. total_watch_seconds DECIMAL(18,3) NULL,
  490. impression_count BIGINT NULL,
  491. play_count BIGINT NULL,
  492. like_count BIGINT NULL,
  493. comment_count BIGINT NULL,
  494. share_count BIGINT NULL,
  495. collect_count BIGINT NULL,
  496. raw_payload JSON NULL,
  497. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  498. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  499. PRIMARY KEY (id),
  500. UNIQUE KEY uk_ca_feedback_run_policy_feedback (run_id, policy_run_id, feedback_id),
  501. KEY idx_ca_feedback_content (run_id, policy_run_id, platform_content_id),
  502. KEY idx_ca_feedback_source_status (feedback_source, feedback_status)
  503. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  504. CREATE TABLE IF NOT EXISTS content_agent_search_clue_assets (
  505. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  506. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  507. search_clue_asset_id VARCHAR(120) NOT NULL,
  508. platform VARCHAR(40) NOT NULL DEFAULT 'douyin',
  509. clue_type VARCHAR(80) NOT NULL,
  510. normalized_clue_text VARCHAR(500) NOT NULL,
  511. display_clue_text VARCHAR(500) NOT NULL,
  512. promotion_status VARCHAR(32) NOT NULL DEFAULT 'promoted',
  513. reusable_priority INT NOT NULL DEFAULT 0,
  514. can_seed_next_run TINYINT(1) NOT NULL DEFAULT 1,
  515. first_seen_run_id VARCHAR(80) NOT NULL,
  516. first_seen_policy_run_id VARCHAR(80) NOT NULL,
  517. last_validated_at DATETIME(3) NULL,
  518. summary_metrics JSON NULL,
  519. raw_payload JSON NULL,
  520. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  521. updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
  522. PRIMARY KEY (id),
  523. UNIQUE KEY uk_ca_search_clue_assets_asset (search_clue_asset_id),
  524. UNIQUE KEY uk_ca_search_clue_assets_identity (platform, clue_type, normalized_clue_text),
  525. KEY idx_ca_search_clue_assets_status (promotion_status, can_seed_next_run),
  526. KEY idx_ca_search_clue_assets_last_validated (last_validated_at)
  527. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  528. CREATE TABLE IF NOT EXISTS content_agent_search_clue_asset_evidence (
  529. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  530. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  531. evidence_id VARCHAR(120) NOT NULL,
  532. search_clue_asset_id VARCHAR(120) NOT NULL,
  533. run_id VARCHAR(80) NOT NULL,
  534. policy_run_id VARCHAR(80) NOT NULL,
  535. clue_id VARCHAR(80) NOT NULL,
  536. search_query_id VARCHAR(80) NULL,
  537. pooled_content_count INT NOT NULL DEFAULT 0,
  538. review_content_count INT NOT NULL DEFAULT 0,
  539. failed_content_count INT NOT NULL DEFAULT 0,
  540. source_path_record_ids JSON NULL,
  541. decision_ids JSON NULL,
  542. performance_feedback_refs JSON NULL,
  543. raw_payload JSON NULL,
  544. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  545. PRIMARY KEY (id),
  546. UNIQUE KEY uk_ca_search_clue_evidence_id (evidence_id),
  547. UNIQUE KEY uk_ca_search_clue_evidence_run_clue (run_id, policy_run_id, clue_id),
  548. KEY idx_ca_search_clue_evidence_asset (search_clue_asset_id),
  549. KEY idx_ca_search_clue_evidence_run_policy (run_id, policy_run_id)
  550. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  551. CREATE TABLE IF NOT EXISTS content_agent_policy_runs (
  552. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  553. schema_version VARCHAR(80) NOT NULL DEFAULT 'content_agent.v1',
  554. run_id VARCHAR(80) NOT NULL,
  555. policy_run_id VARCHAR(80) NOT NULL,
  556. experiment_name VARCHAR(160) NULL,
  557. run_role VARCHAR(80) NULL,
  558. policy_bundle_id VARCHAR(160) NULL,
  559. rule_pack_id VARCHAR(160) NULL,
  560. strategy_id VARCHAR(160) NULL,
  561. strategy_version VARCHAR(160) NULL,
  562. rule_pack_version VARCHAR(160) NULL,
  563. walk_strategy_version VARCHAR(160) NULL,
  564. policy_bundle_hash VARCHAR(128) NULL,
  565. strategy_source_ref JSON NULL,
  566. rule_pack_source_ref JSON NULL,
  567. evidence_bundle_schema_version VARCHAR(80) NULL,
  568. runtime_record_schema_version VARCHAR(80) NULL,
  569. status VARCHAR(32) NOT NULL DEFAULT 'recorded',
  570. metrics JSON NULL,
  571. decision_summary JSON NULL,
  572. raw_payload JSON NULL,
  573. created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  574. PRIMARY KEY (id),
  575. UNIQUE KEY uk_content_agent_policy_runs_run_policy_run (run_id, policy_run_id),
  576. KEY idx_content_agent_policy_runs_experiment (experiment_name, run_role, status, created_at),
  577. KEY idx_content_agent_policy_runs_policy (strategy_version, rule_pack_id, rule_pack_version),
  578. KEY idx_content_agent_policy_runs_schema_created_at (schema_version, created_at)
  579. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;