-- search_agent 库：内容搜索策略配置表
-- 与 LongArticlesSearchAgentConfig.search_agent_db（SEARCH_AGENT_DB_*）指向同一库

SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS search_agent_strategy (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  demand_id BIGINT UNSIGNED DEFAULT NULL COMMENT '绑定上游需求 ID，NULL 表示仅按 strategy_code 使用',
  strategy_code VARCHAR(64) NOT NULL DEFAULT 'default' COMMENT '策略编码，如 default / experiment_a',
  name VARCHAR(128) DEFAULT NULL COMMENT '策略名称',
  config_json JSON NOT NULL COMMENT '运行时参数，见下方示例',
  enabled TINYINT NOT NULL DEFAULT 1 COMMENT '1 启用 0 停用',
  version INT NOT NULL DEFAULT 1 COMMENT '同 demand 多版本时取最大 version',
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  KEY idx_strategy_code (strategy_code, enabled),
  KEY idx_demand_enabled (demand_id, enabled),
  KEY idx_version (version)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Search Agent 搜索与筛选策略';

-- config_json 示例（字段均可选，未填则用代码默认）
-- {
--   "max_keywords": 8,
--   "initial_cursor": "1",
--   "keyword_priority": "demand_first",
--   "extra_keywords": ["扩展词1"],
--   "min_candidate_multiplier": 2.0,
--   "near_enough_candidate_multiplier": 1.2,
--   "filter_near_ratio": 0.8,
--   "max_detail_fetch": 30,
--   "enable_llm_review": true
-- }
--
-- 加载顺序：先按 demand_id 命中；若无则取 strategy_code='default' 的最新 version。
