51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
|
|
# T547 — opportunity-accept-dismiss-override-api
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M3`
|
|||
|
|
> Kind: `feat`
|
|||
|
|
> Est. change: `~160 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後系統應:商機可 accept/dismiss/override,覆寫留痕(原值、新值、時間、操作者)。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T546
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- Spec:`../spec.md` §3.2、§4.4.3、§5.2、§9.2(OP-07)
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/backend/generate/api/radar.api` | edit | accept/dismiss/override req/resp |
|
|||
|
|
| `apps/backend/internal/logic/radar/acceptOpportunityLogic.go` | edit | 狀態轉 `accepted` |
|
|||
|
|
| `apps/backend/internal/logic/radar/dismissOpportunityLogic.go` | edit | 狀態轉 `dismissed` |
|
|||
|
|
| `apps/backend/internal/logic/radar/overrideOpportunityLogic.go` | edit | 覆寫 band 或 `rejected → qualified` |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- 非法轉移(例:`accepted → dismissed`)回明確錯誤。
|
|||
|
|
- override 一律寫 `override` 記錄,供判定校準使用。
|
|||
|
|
- 本 task 的 accept **只改狀態**;建立/綁定 Contact 在 T567 接上(屆時同一端點行為擴充,回應加 `contact_id`)。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- Contact 綁定(T567)
|
|||
|
|
- 前端動作 UI(T552)
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] OP-07:覆寫 band 生效且 `override` 完整
|
|||
|
|
- [x] `rejected` 可拉回 `qualified` 並出現在今日頁查詢
|
|||
|
|
- [x] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/backend && make gen-api && go test ./internal/logic/radar/... -count=1
|
|||
|
|
```
|