Files
Profeto/docs/08-injuries-data-gap.md
T
WorkBuddy 80616cf459 docs: 全套文档与代码对齐(P1-1,数据源收敛 bzzoiro 后的存量漂移清理)
- 数据源:全部文档统一为 bzzoiro 唯一来源,删除 understat/api-football
  作为现行数据源的表述(仅保留历史注记);.env.example/docs/06 移除
  失效的 API_FOOTBALL_KEY
- 多 Agent:injuries 阵容完整性 → standings 联赛排名
  (README/01/04 的专家表、数据流图、no_data 示例、agent_weights、
  prompt 清单全部对齐 form/stats/home_away/standings/h2h)
- 数据库:6 张表 → 12 张表,补 standings/app_settings/schedules 与
  4 张治理表说明(标注 raw_events/data_quality_checks/data_lineage
  为预留未启用,ingest_failures 已启用),predictions 补 agent_weights 列
- API 文档(03):新增鉴权模型三档表;context/standings/leagues 公开端点
  补全;predictions/eval/backtest 标注需管理员;ingest/bzzoiro 补
  task/limit/season 参数契约,删除 understat/injuries 端点小节
- 目录树(README/01/07):与真实 src/、frontend/src 结构一致
  (core 7 文件、data 7 文件、移除不存在的 retry.py)
- 采集命令(02/05):understat 回填 → task=stats/standings;
  补管理员凭据提示;docs/08 文首标注历史/过时
2026-09-21 20:55:48 +08:00

53 lines
1.8 KiB
Markdown

> ⚠️ **历史文档(已过时)**:伤停(injuries)数据源与 api-football 集成已移除,
> 数据源收敛为 bzzoiro 唯一来源。本文仅作历史决策记录保留,
> 现状请见 [05-data.md](05-data.md) 与 [01-architecture.md](01-architecture.md)。
---
"""检查 injuries 数据源 api-football 的响应结构。"""
API_FOOTBALL_INJURY_RESPONSE_EXAMPLE = """
{
"response": [
{
"player": {
"id": 12345,
"name": "Bukayo Saka",
"photo": "https://...",
"type": "Missing Fixture"
},
"team": {"id": 42, "name": "Arsenal"},
"fixture": {"id": 100000, "date": "2026-09-15T19:00:00+00:00"},
"league": {"id": 39, "name": "Premier League"},
"reason": "Hamstring Injury",
"type": "Missing Fixture"
}
]
}
"""
"""
injuries 表设计:
CREATE TABLE injuries (
id SERIAL PRIMARY KEY,
player_id INT, -- api-football 球员 ID
player_name VARCHAR(120) NOT NULL, -- 球员名
team_id INT REFERENCES teams(id), -- 关联球队(按名归一后匹配)
fixture_id INT, -- api-football 比赛 ID(无法直接关联 matches.id)
league_id INT,
injury_type VARCHAR(50), -- 'Missing Fixture' / 'Suspended'
reason VARCHAR(200), -- 伤停原因(如 'Hamstring Injury')
injury_date DATE, -- 伤停日期
return_date DATE, -- 预计回归日期(如有)
retrieved_at TIMESTAMPTZ DEFAULT now(),
UNIQUE(player_id, fixture_id, injury_type) -- 幂等
);
-- 查询某队某场比赛的伤停:
SELECT player_name, injury_type, reason
FROM injuries
WHERE team_id = :team_id
AND injury_date <= :match_date
AND (return_date IS NULL OR return_date >= :match_date);
"""