# T034 — Run usecase 與 API logic

> Status: `done`
> Milestone: `M3`
> Est. change: `~180 lines`

## Goal

完成後，會員可透過真 usecase 分頁列出自己的 runs／results 並刪除終態 run。

## Depends on

- T033

## Inputs

- 讀取 / 依賴：
  - 檔案：`apps/backend/internal/module/scout/usecase/service.go`、`internal/logic/scout/*run*_logic.go`
  - 既有能力 / API：Run repository、UID middleware、response.Biz、converters
  - Spec 段落：§4 流程 D–F、§5.1

## Outputs

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

| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/scout/usecase/runs.go` | add | 實作 ListRuns、ListRunPosts、RemoveRun 與 page clamp。 |
| `apps/backend/internal/logic/scout/list_scout_runs_logic.go` | edit | 以真 usecase 取代 T022 的 503。 |
| `apps/backend/internal/logic/scout/list_scout_run_posts_logic.go` | edit | 回 run＋list＋pagination。 |
| `apps/backend/internal/logic/scout/remove_scout_run_logic.go` | edit | 終態刪除，running 回 409。 |
| `apps/backend/internal/logic/scout/run_logic_test.go` | add | 覆蓋 auth、owner、pagination 與 conflict。 |

### 行為變更

- 非 owner 資源對外視為 404；不得洩漏是否存在。

### API / 契約（若有）

- 成功 envelope 由既有 gateway 統一包裝，data 不包含 owner UID。

## Out of scope

- 不建立 run、不執行搜尋或 job。

## Acceptance

- [x] 新端點不再有成功空資料或暫時 503。
- [x] 指令：

```bash
cd apps/backend && go test ./internal/module/scout/... ./internal/logic/scout/... -count=1
```

驗收結果：Run usecase 與三個 API logic 已接上 owner-scoped repository；列表、結果分頁、終態刪除及授權／跨 owner／衝突測試通過。

## Notes

刪除 run 不刪 homework；單 post 刪除後更新 run counts。
