1.8 KiB
1.8 KiB
T545 — today-api-stats-and-empty-reasons
Status:
done
Milestone:M3
Kind:feat
Est. change:~180 lines
Goal
完成後系統應:GET /api/v1/radar/today 回今日筆數+高/中/低分項+首頁卡片,0 筆時回明確原因與下一步。
Depends on
- T525、T526
Inputs
- Spec:
../spec.md§4.4、§5.2、§9.3(TD-01、TD-02)
Outputs
程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|---|---|---|
apps/backend/generate/api/radar.api |
edit | today resp type:stats、groups、empty_reason、truncated_count |
apps/backend/internal/logic/radar/getRadarTodayLogic.go |
edit | 統計與卡片查詢 |
apps/backend/internal/module/radar/usecase/today.go |
add | 統計聚合+空狀態原因判定 |
行為變更
- 只計
qualified/accepted/dismissed(排除rejected)於今日名單;rejected另有 filter 可查。 - 空狀態原因由後端判定並回列舉值+人話說明:
not_swept_yet(未到巡的時間)/all_watches_paused/no_watch/no_profile/sweep_failed/no_hit(關鍵字太窄),各帶建議動作。 - 帶當日
truncated_count供前端顯示「N 筆較低意向未收錄」。 - 卡片欄位:原文摘要、
intent_score、intent_band、region_detected、posted_at(ns,前端換算)、預設public_comment回覆(若已生成)。
Out of scope
- 前端畫面(T551)
- 回覆生成(T549)
Acceptance
- TD-01:18 筆 → 統計與分項正確、卡片欄位齊
- TD-02:0 筆 → 回可辨識的
empty_reason與建議,非空白list - 指令:
cd apps/backend && make gen-api && go test ./internal/logic/radar/... ./internal/module/radar/... -count=1