開発目的
- DBで対応した申請ごとのステータス管理に対応し、申請の再提出・承認ワークフローを実現する。
- 提出状態と再提出フラグに基づいて、編集可否を動的に制御する。
考えられる開発内容
編集可否の制御ロジック
if (提出機能 == True) {
編集可
} else if (ステータス == 再提出) {
編集可
} else {
編集不可
}
ステータスの定義
- 未登録: 初期状態。編集可能
- 登録済: ユーザーが申請を提出した状態。編集不可
- 再提出: 管理者が再提出を指示した状態。編集可能
- 承認済: 管理者が最終承認した状態。編集不可
- 未チェック: 再提出後または承認済み後に編集された場合に遷移する状態。編集可能(再審査待ち)
実装の要件
- ステータスが NULL の時(DB未登録時)も問題なく動作する(デフォルト: 未登録として扱い編集可)
- 再提出が必要な時は、「登録済」「未登録」のステータスをオレンジ色の「再提出」に変更
- 再提出ステータスで編集したら、ステータスを「未チェック」に自動変更
- 承認済みで編集したら、ステータスを「未チェック」に自動変更(管理者の再レビュー促行)
- 1度再提出したら、編集できないようにロック状態に変更
- 管理者画面から再提出機能をトグル ON/OFF で制御(余裕があれば)
テスト項目
編集可否制御
ステータス管理
ステータス遷移フロー
エッジケース
UI/UX
管理者機能(余裕があれば)
考えられる開発時間
- コア機能(ステータス遷移 + 編集可否制御): 5~7時間
- UI/UX(3つのステータス表示、disabled制御): 2~3時間
- テスト実装: 2~3時間
- 合計: 9~13時間(管理者トグルは +2~3時間)
備考
- リポジトリメモリの
order_status_check_includes と同様に eager load を設計する
- 既存の
health_center_document_review ステータス判定パターンを参考にする
- ステータス値の定義をマイグレーション or enum で統一する
- API レスポンスと フロント表示の境界を明確にし、ステータス値の統一を図る
- マイグレーション: ステータス列(nullable)と再提出フラグ、ロックフラグの追加が必要
開発目的
考えられる開発内容
編集可否の制御ロジック
if (提出機能 == True) {
編集可
} else if (ステータス == 再提出) {
編集可
} else {
編集不可
}
ステータスの定義
実装の要件
テスト項目
編集可否制御
ステータス管理
ステータス遷移フロー
エッジケース
UI/UX
管理者機能(余裕があれば)
考えられる開発時間
備考
order_status_check_includesと同様に eager load を設計するhealth_center_document_reviewステータス判定パターンを参考にする