thread-master/docs/product/scout-topic-quality/tasks/T030-run-repository-contrac...

1.4 KiB
Raw Permalink Blame History

T030 — Run repository 查詢契約

Status: done Milestone: M3 Est. change: ~140 lines

Goal

完成後Scout domain repository 明確支援 owner-scoped run 狀態、分頁、結果查詢與 canonical seen 判定。

Depends on

  • T022

Inputs

  • 讀取 / 依賴:
    • 檔案:apps/backend/internal/module/scout/domain/repository.go
    • 既有能力 / APIRepository、Post、Run domain
    • Spec 段落§5.1、§8、§8.1

Outputs

程式變更(預期路徑)

路徑 動作 說明
apps/backend/internal/module/scout/domain/repository.go edit 新增 run CRUD、guarded update、page query、run posts、seen identities 與 publish/cleanup 契約。
apps/backend/internal/module/scout/domain/pagination.go add 定義 clamp、page result 與穩定 query filters。

行為變更

  • 所有資源方法都要求 owner UID列表回 list、total不接受全量後切頁。

API / 契約(若有)

  • page 預設/最大值與 Spec 一致guarded update 明確傳 expected states。

Out of scope

  • 不實作 memory/Mongo不加入 HTTP。

Acceptance

  • MemoryStore 與 MonStore 均實作契約方法並可編譯。
  • 指令:
cd apps/backend && go test ./internal/module/scout/domain -count=1

驗收結果domain 與 repository packages 編譯通過。

Notes

查詢 filter 不暴露 Mongo 型別,避免 usecase 綁 storage。