# T533 — sweeps-list-and-manual-trigger-api

> Status: `done`  
> Milestone: `M2`  
> Kind: `feat`  
> Est. change: `~150 lines`

## Goal

完成後系統應：`GET /api/v1/radar/sweeps` 可查巡的執行紀錄，`POST /api/v1/radar/watches/:id/sweep` 可手動觸發並回 Job。

## Depends on

- T526、T527

## Inputs

- Spec：`../spec.md` §4.2.7、§5.2、§7（可觀測性）

## Outputs

### 程式變更（預期路徑）

| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/generate/api/radar.api` | edit | sweeps 列表與手動觸發 type 定稿 |
| `apps/backend/internal/logic/radar/listSweepsLogic.go` | edit | 分頁列表，可依 `watch_id`／日期 filter |
| `apps/backend/internal/logic/radar/triggerWatchSweepLogic.go` | edit | 建 `radar_sweep` Job（同一執行路徑）並回 `job_id` |

### 行為變更

- 手動觸發受**同一個每日商機額度池**約束（不另給額度）。
- watch 為 `paused`／`archived` 時手動觸發回明確錯誤。
- 列表回 `pagination` + `list`，欄位含 `path`、各計數、`failed_reason`、`credits_used`。

## Out of scope

- 前端觀測畫面（本輪不做獨立頁，資訊併入雷達頁提示）
- 排程本身（T527）

## Acceptance

- [x] 手動觸發回 `job_id`，執行後 Sweep 可在列表查到
- [x] paused watch 手動觸發被拒且訊息明確
- [x] 指令：

```bash
cd apps/backend && make gen-api && go test ./internal/logic/radar/... -count=1 && make build
```
