1.5 KiB
1.5 KiB
T567 — accept-binds-or-creates-contact
Status:
done
Milestone:M4
Kind:feat
Est. change:~150 lines
Goal
完成後系統應:商機 accept 時綁定或建立 Contact(stage=new_found),同一作者多筆商機收斂在同一 Contact。
Depends on
- T547、T565、T566
Inputs
- Spec:
../spec.md§4.6.1、§4.6.2、§9.4(CR-01、CR-02)
Outputs
程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|---|---|---|
apps/backend/internal/logic/radar/acceptOpportunityLogic.go |
edit | 呼叫 CRM usecase,回應加 contact_id |
apps/backend/internal/module/crm/usecase/intake.go |
add | 依(platform+handle+owner)FindOrCreate、AttachOpportunity、寫 stage touch |
apps/backend/internal/module/radar/repository/opportunity_mongo.go |
edit | 回寫 contact_id |
行為變更
- 已 accept 過的商機重複 accept 為 idempotent(回同一
contact_id,不重複建 touch)。 - 新建 Contact 寫一筆
stagetouch(from_stage空 →new_found)。 - 第二筆商機 accept:掛上同一 Contact,時間軸出現兩筆。
Out of scope
- 階段推進 API(T568/T570)
- 前端(T574)
Acceptance
- CR-01:accept → Contact 建立、
stage=new_found - CR-02:同作者第二筆 → 同一 Contact、時間軸兩筆
- 指令:
cd apps/backend && go test ./internal/logic/radar/... ./internal/module/crm/... -count=1