57 lines
1.5 KiB
Markdown
57 lines
1.5 KiB
Markdown
|
|
# T832 — mongo review fields migration indexes
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M3`
|
|||
|
|
> Est. change: `~180 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後 Mongo 能保存 review 欄位與 audit/查詢索引,舊文件可在無回填情況下被讀取。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T830、T831
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- `apps/backend/internal/module/radar/repository/opportunity_mongo.go`
|
|||
|
|
- `apps/backend/generate/database/mongo/`
|
|||
|
|
- 既有 owner+external identity index
|
|||
|
|
- Spec §3.2、§3.3、§10
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/backend/internal/module/radar/repository/opportunity_mongo.go` | edit | review fields、audit、tombstone merge 與 filters |
|
|||
|
|
| `apps/backend/generate/database/mongo/000016_opportunity_inbox_review.*.json` | add | 可重跑 migration/索引 |
|
|||
|
|
| `apps/backend/internal/module/radar/repository/opportunity_mongo_test.go` | edit | legacy/index query tests |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- list 以 review state、posted range、priority sort server-side 穩定分頁。
|
|||
|
|
|
|||
|
|
### API / 契約(若有)
|
|||
|
|
|
|||
|
|
- UTC unix ns 比對;pagination total 與 list 一致。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 不做資料全庫回填、不改 ProductMatch index。
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] migration up/down 可重複,舊 document decode 不失敗。
|
|||
|
|
- [x] review/tombstone/audit 索引加入既有 owner+external identity,list 以索引欄位查詢。
|
|||
|
|
- [ ] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/backend && go test ./internal/module/radar/repository -run 'Mongo|Index' -count=1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
只新增本功能必要索引,避免破壞現有去重索引。
|