docs: TODO管理機能のマスタードキュメントを作成し仕様書案を更新
- 論点1-5の決定を仕様書案に反映 - document/19_マスタードキュメント_TODO管理編.md を新規作成 - CLAUDE.md のマスタードキュメント一覧に TODO管理を追加
This commit is contained in:
@@ -186,20 +186,22 @@ TODO 本体。
|
||||
|
||||
作業種別は「計画に対応するもの」と「計画に対応しないもの」の両方を含める。
|
||||
|
||||
初期案:
|
||||
初期採用(MVP):
|
||||
|
||||
- `general`: 一般
|
||||
- `fertilization`: 施肥
|
||||
- `rice_transplant`: 田植え
|
||||
- `delivery`: 運搬
|
||||
- `levee_work`: 畔塗
|
||||
- `pesticide`: 防除
|
||||
- `other_recorded`: 計画非紐づき実績系
|
||||
|
||||
将来追加(アプリ実装時):
|
||||
|
||||
- `pesticide`: 防除(農薬散布管理アプリ実装時に追加)
|
||||
|
||||
補足:
|
||||
|
||||
- 実装時点で将来の全計画種別を確定できない場合は、MVP では現行アプリに対応する種別を先行定義する
|
||||
- `general` はどれにも当てはまらない作業用に必須
|
||||
- 現行アプリに対応する種別のみで始め、新しい計画機能追加時に `work_type` を拡張する
|
||||
|
||||
### 7.2 TodoTargetField
|
||||
|
||||
@@ -386,7 +388,7 @@ TODO と既存計画との紐づけ。
|
||||
|
||||
- タイトル
|
||||
- 説明
|
||||
- ステータス
|
||||
- ステータス(`todo` / `doing` / `canceled` のみ。`done` への変更は不可)
|
||||
- 期日
|
||||
- 作業種別
|
||||
- 実績連携フラグ
|
||||
@@ -394,14 +396,18 @@ TODO と既存計画との紐づけ。
|
||||
- 分類
|
||||
- 計画リンク
|
||||
|
||||
**注意**: `status=done` への変更は `PATCH` では受け付けない。完了は必ず `POST /api/todos/{id}/complete/` を使うこと。理由は、完了時に実績連携導線の生成が必要なため、入口を一本化して実装のブレを防ぐ。
|
||||
|
||||
### 8.5 削除
|
||||
|
||||
- `DELETE /api/todos/{id}/`
|
||||
|
||||
ルール案:
|
||||
ルール:
|
||||
|
||||
- 連携済み実績がある TODO は物理削除ではなく制限をかける案を優先
|
||||
- MVP ではまず `done` かつ実績連携済み TODO の削除可否を要確認とする
|
||||
- `TodoCompletionLink` が存在する TODO を削除しようとした場合、警告と各実績レコードへの直リンクを返す
|
||||
- ユーザーが確認した上で削除を実行した場合は物理削除を許可する
|
||||
- `TodoCompletionLink` は TODO と一緒に削除する(CASCADE)
|
||||
- 実績レコード自体は削除しない(各実績アプリ側の責務)
|
||||
|
||||
### 8.6 並び替え
|
||||
|
||||
@@ -581,6 +587,8 @@ MVP では少なくとも以下の 2 導線を持つ。
|
||||
- `canceled` に遷移したら `canceled_at` を自動設定する
|
||||
- `done` から `todo` または `doing` への差し戻しは MVP では許可する
|
||||
- 差し戻し時も `completed_at` はクリアせず履歴値として保持する
|
||||
- 差し戻し時に `TodoCompletionLink` が存在する場合は、差し戻し自体は許可しつつ、API レスポンスに警告と各実績レコードへの直リンクを返す
|
||||
- フロントはその警告を表示し、ユーザーが実績を削除したい場合は直リンクから遷移できるようにする(実績レコード自体の削除は TODO 側では行わない)
|
||||
- `plan_links` に紐づく計画の年度と TODO の利用年度が必要なら将来追加する
|
||||
- `field_ids` が計画外圃場を含む場合は、`plan_links` が 1 件以上ある場合のみエラーにする
|
||||
- 複数 `plan_links` がある場合は、それぞれの計画に対して対象圃場整合性を検証する
|
||||
@@ -645,27 +653,25 @@ MVP では少なくとも以下の 2 導線を持つ。
|
||||
|
||||
## 14. 未確定事項
|
||||
|
||||
### 14.1 work_type enum の最終一覧
|
||||
### 14.1 work_type enum の初回実装範囲(確定)
|
||||
|
||||
今回の回答で方針は見えたが、初回実装でどこまで列挙するかは確定していない。
|
||||
MVP は現行アプリ対応の5種別のみで開始する。
|
||||
|
||||
候補:
|
||||
- `general`: 一般
|
||||
- `fertilization`: 施肥
|
||||
- `rice_transplant`: 田植え
|
||||
- `delivery`: 運搬
|
||||
- `levee_work`: 畔塗
|
||||
|
||||
- 一般
|
||||
- 施肥
|
||||
- 田植え
|
||||
- 運搬
|
||||
- 畔塗
|
||||
- 防除
|
||||
- 計画非紐づき実績系
|
||||
`pesticide`(防除)は農薬散布管理アプリ実装時に追加する。
|
||||
|
||||
### 14.2 完了時の自動生成レベル
|
||||
### 14.2 完了時の実績連携レベル(確定)
|
||||
|
||||
MVP で以下のどこまでやるかは実装前に決める。
|
||||
MVP は **B. 実績入力画面への導線生成** を採用する。
|
||||
|
||||
- A. 完了ステータス変更のみ
|
||||
- B. 実績入力画面への導線生成
|
||||
- C. TODO 情報を使った実績レコード仮生成
|
||||
- A. 完了ステータス変更のみ → 採用しない
|
||||
- **B. 実績入力画面への導線生成 → 採用**
|
||||
- C. TODO 情報を使った実績レコード仮生成 → 後続検討
|
||||
|
||||
### 14.3 削除ポリシー
|
||||
|
||||
@@ -700,7 +706,7 @@ MVP では以下を前提とする。
|
||||
|
||||
- TODO は `year` を持つ
|
||||
- 対象管理は `TodoTargetField` を正とする
|
||||
- `work_type` は `general / fertilization / rice_transplant / delivery / levee_work / pesticide` を初期採用する
|
||||
- `work_type` は `general / fertilization / rice_transplant / delivery / levee_work` を初期採用する(`pesticide` は農薬散布管理アプリ実装時に追加)
|
||||
- 計画リンクは明示 FK 方式で開始する
|
||||
- 実績連携フラグ名は `should_link_record` を採用する
|
||||
- 完了時はまず「実績入力画面への導線生成」を採用し、自動実績作成は後続検討とする
|
||||
|
||||
Reference in New Issue
Block a user