thread-master/docs/product/opportunity-inbox/tasks/T840-demand-map-domain-repo...

58 lines
1.6 KiB
Markdown
Raw Normal View History

2026-08-13 02:22:24 +00:00
# T840 — demand map domain repository
> Status: `done`2026-08-11
> Milestone: `M4`
> Est. change: `~190 lines`
## Goal
完成後每個產品有可追溯的 current DemandMap包含五類 phrase、basis、origin、狀態與 input/map version。
## Depends on
- T823Phase B UX approval
- T830、T833
## Inputs
- `apps/backend/internal/module/radar/domain/`
- BrandProduct repository 既有真相讀取介面
- Spec §4.1、§10、驗收 #6、#22
## Outputs
### 程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/backend/internal/module/radar/domain/demand_map.go` | add | map、phrase、version、state domain |
| `apps/backend/internal/module/radar/repository/demand_map_memory.go` | add | memory currenthistoryconflict |
| `apps/backend/internal/module/radar/repository/demand_map_mongo.go` | add | Mongo persistenceowner query |
| `apps/backend/internal/module/radar/domain/demand_map_test.go` | add | invariant tests |
### 行為變更
- user phrase、AI phrase、product basis 可區分;版本衝突拒絕覆寫。
### API / 契約(若有)
- 產品 ownerbrand relation 必須由 backend 重查。
## Out of scope
- 不做 baseline builder、AI enrichment、CostPreview endpoint。
## Acceptance
- [x] ready/incomplete/stale、五類 phrase、enabled、version invariant 通過。
- [x] memoryMongo owner isolation parity 通過。
- [ ] 指令:
```bash
cd apps/backend && go test ./internal/module/radar/... -run 'DemandMap' -count=1
```
## Notes
DemandMap 是可追溯搜尋上下文,不取代 BrandProduct 真相。