概要(FM-G4 / 要方針・両論併記)
S-03 ダッシュボードの「当日対応 + 振り返り」4 セクションを 1 回で取得するためのクエリが listTasks に無い。screen-flow.md §5.1 が要求する GET /api/tasks?ownerOrAssignee=me&dashboardScope=today 相当が表現できない。
不足表現:
ownerOrAssignee=me(所有者 OR 担当者 の論理和)。現状 ownerId と assigneeId は AND。
- これから(+N 日範囲)。現状
targetDate は単日のみ。
- 本日完了(
status=DONE かつ completedAt の日付 = 当日)。現状 completedAt 絞り込みが無く status=DONE は全件返る。
背景
- 突き合わせ結果は
docs/specs/ui/field-mapping.md §1.2 / §5(FM-G4)。
- (3) は複数回呼びで代替可だが、(4) 本日完了は
status=DONE 全件取得になりコスト過大 → 実質回避不可。
方針案(両論併記、実装時に決定)
- 案 A:
listTasks 拡張 — ownerOrAssignee(enum: me)/ dueWithinDays(integer)/ dashboardScope(enum: today)等を追加。既存 endpoint・フィルタ資産を再利用。一方でクエリ組合せが複雑化。
- 案 B: 専用
GET /api/dashboard/tasks — 4 セクション(overdue / today / upcoming / completedToday)を構造化レスポンスで返す。意味論が契約に明示され client 振り分け不要。一方で集計 endpoint が増える。
完了の定義
関連
概要(FM-G4 / 要方針・両論併記)
S-03 ダッシュボードの「当日対応 + 振り返り」4 セクションを 1 回で取得するためのクエリが
listTasksに無い。screen-flow.md§5.1 が要求するGET /api/tasks?ownerOrAssignee=me&dashboardScope=today相当が表現できない。不足表現:
ownerOrAssignee=me(所有者 OR 担当者 の論理和)。現状ownerIdとassigneeIdは AND。targetDateは単日のみ。status=DONEかつcompletedAtの日付 = 当日)。現状completedAt絞り込みが無くstatus=DONEは全件返る。背景
docs/specs/ui/field-mapping.md§1.2 / §5(FM-G4)。status=DONE全件取得になりコスト過大 → 実質回避不可。方針案(両論併記、実装時に決定)
listTasks拡張 —ownerOrAssignee(enum: me)/dueWithinDays(integer)/dashboardScope(enum: today)等を追加。既存 endpoint・フィルタ資産を再利用。一方でクエリ組合せが複雑化。GET /api/dashboard/tasks— 4 セクション(overdue / today / upcoming / completedToday)を構造化レスポンスで返す。意味論が契約に明示され client 振り分け不要。一方で集計 endpoint が増える。完了の定義
api/openapi.yamlに反映、PR マージ済みfield-mapping.md§1.2 の ✗ 行が解消screen-flow.md§5.1 のクエリ記述を確定仕様に更新関連
docs/specs/ui/screens/dashboard/decision.md§3