thread-master/docs/product/opportunity-inbox/tasks/T801-frontend-inbox-domain-...

1.5 KiB
Raw Permalink Blame History

T801 — frontend inbox domain repository seam

Status: done Milestone: M0 Est. change: ~160 lines

Goal

完成後 mock 與 live 前端共用同一組 Opportunity review、排序、CostPreview、DemandMap 與 Sweep funnel 型別repository 介面。

Depends on

  • T800

Inputs

  • apps/web/src/domain/types.ts
  • apps/web/src/data/repos.ts
  • Spec §2、§7.2§7.4

Outputs

程式變更(預期路徑)

路徑 動作 說明
apps/web/src/domain/types.ts edit ReviewState、RemovalReason、Priority、DemandMap、CostPreview、funnel types
apps/web/src/data/repos.ts edit 擴充 RadarRepo同時支援 mock/live
apps/web/src/data/fixtures/** add/edit 固定 legacy、pending、removed、未知時間資料

行為變更

  • 型別區分 OpportunityStatusreview_state;舊欄位可缺省並由 mapper 補映射。

API / 契約(若有)

  • 不新增前端私有 shaperepository method 對齊 T800。

Out of scope

  • 不改頁面視覺、不接 live HTTP、不實作 mock 行為。

Acceptance

  • TypeScript 可表達五種排序、三種 review state、移除原因與兩種 key mode。
  • mock/live repository signature 完全一致。
  • 指令:
cd apps/web && npm run build && npm run test -- src/data src/domain

Notes

保留既有 intent_scoreproduct_fit_score,新加 priority_score 不取代歷史欄位。