thread-master/docs/product/demand-radar/tasks/T526-radar-sweep-model-repo...

1.7 KiB
Raw Blame History

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 structwatch_idjob_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 執行流程T527T528
  • 列表 APIT533

Acceptance

  • unit test建立→累加→查詢judged_external_ids 可去重累加
  • 指令:
cd apps/backend && go test ./internal/module/radar/... -count=1

實作落點

  • domain/sweep.goRadarSweepSweepDelta(累加+可選 failed_reasonended_at
  • repository/sweep_{memory,mongo}.goCreateUpdate$inc$addToSetGetByJobIDListByOwner
  • 測試:repository/sweep_memory_test.go