1.7 KiB
1.7 KiB
T526 — radar-sweep-model-repository
Status:
done
Milestone:M2
Kind:feat
Est. change:~140 lines
Goal
完成後系統應:RadarSweep 執行紀錄可寫可查,欄位足以回答「命中幾筆、判了幾筆、截斷幾筆、失敗原因、耗多少點」。
Depends on
- T501
Inputs
- Spec:
../spec.md§5.4、§7(可觀測性)、§8
Outputs
程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|---|---|---|
apps/backend/internal/module/radar/domain/sweep.go |
add | struct:watch_id、job_id、`path(api |
apps/backend/internal/module/radar/repository/sweep_mongo.go |
add | Create、Update(累加計數)、ListByOwner、GetByJobID |
apps/backend/internal/module/radar/repository/sweep_memory.go |
add | 測試用 |
行為變更
- 計數為累加更新,Job 中途失敗時已寫入的進度保留(供 T532 續跑判斷)。
failed_reason為人可讀字串,不含 token 明文。
Out of scope
- Job 執行流程(T527/T528)
- 列表 API(T533)
Acceptance
- unit test:建立→累加→查詢,
judged_external_ids可去重累加 - 指令:
cd apps/backend && go test ./internal/module/radar/... -count=1
實作落點
domain/sweep.go:RadarSweep、SweepDelta(累加+可選 failed_reason/ended_at)repository/sweep_{memory,mongo}.go:Create/Update($inc+$addToSet)/GetByJobID/ListByOwner- 測試:
repository/sweep_memory_test.go