# 02 — 活动级分析模型覆盖 **What to build:** 创建评估活动时,表单左列「时间与速度」区新增「分析模型」下拉(选项 = 启用中的 chat 配置,默认项「全局默认(当前默认配置名)」),不选则跟随全局默认。后端 `campaigns` 表加可空 `analysis_model_config_id` 列(迁移),创建 API 接受该字段并校验引用的配置存在(不存在 400),活动详情/列表响应透出该字段。 **Blocked by:** 01(「全局默认」语义与下拉数据来自 01 的分析默认标记) **Status:** ready-for-agent - [ ] Alembic 迁移:`campaigns` 加可空 `analysis_model_config_id` 列 - [ ] `POST /api/campaigns` 接受 `analysis_model_config_id`(可空);引用不存在的配置返回 400 - [ ] 活动响应模型透出 `analysis_model_config_id` - [ ] 创建表单加「分析模型」下拉:默认「全局默认(<名称>)」,选项为启用的 chat 配置;无全局默认时默认项提示「未配置」 - [ ] 集成测试:带覆盖创建、不带覆盖创建(存 NULL)、无效 id 400 - [ ] `pytest` + `ruff` + `npx tsc --noEmit` + `npm run build` 全绿