-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
feature機能追加機能追加
Description
概要
家事完了後に他のメンバーが承認する機能を実装する。
HouseworkApprovalViewで承認・拒否のUIは実装済みだが、実際の承認処理ロジックが未実装のため、これを完成させる。
背景
現在、家事を完了した際に他の同居人が確認・承認するフローが必要だが、HouseworkApprovalViewの承認・拒否ボタンがTODOのままになっている。
現在の実装状況
実装済み
- ✅ HouseworkItemに承認関連フィールド定義済み
reviewerId: String?- 確認者のユーザIDapprovedAt: Date?- 承認日時reviewerComment: String?- 確認コメント
- ✅ HouseworkApprovalViewのUI実装済み
- 完了報告の通知表示
- メッセージ入力欄
- 「完了にする」「未完了に戻す」ボタン
- ✅ HouseworkStateに
pendingApprovalとcompletedが定義済み
未実装・不完全
- ❌ HouseworkApprovalViewの承認ボタンアクション(TODO)
- ❌ HouseworkApprovalViewの拒否ボタンアクション(TODO)
⚠️ HouseworkItem.updateApproved()メソッドが不完全- 現在
state: .pendingApprovalのままで、.completedに更新されていない reviewerId、approvedAt、reviewerCommentの設定が未実装
- 現在
実装内容
1. HouseworkItemモデルの修正
homete/Model/Domain/Cohabitant/Housework/HouseworkItem.swift:49-61
// ❌ 現在の不完全な実装
func updateApproved(at now: Date, reviewer: String) -> Self {
return .init(
id: id,
indexedDate: indexedDate,
title: title,
point: point,
state: .pendingApproval, // ← completedにすべき
executorId: changer, // ← 未定義の変数
executedAt: now,
expiredAt: expiredAt
)
}修正方針:
stateを.completedに変更reviewerId、approvedAt、reviewerCommentを正しく設定- 拒否処理用の
updateRejected()メソッドを追加
2. HouseworkClientの拡張
承認・拒否処理用のメソッドを追加:
approveHousework(item:reviewer:comment:)- 家事を承認rejectHousework(item:)- 家事を未完了に戻す
3. HouseworkListStoreの更新
HouseworkClientを使って承認・拒否処理を実行するメソッドを追加
4. HouseworkApprovalViewのアクション実装
homete/Views/HouseworkApproval/HouseworkApprovalView.swift:100-114
TODOコメント部分を実装:
- 「完了にする」ボタン →
approveHousework()呼び出し - 「未完了に戻す」ボタン →
rejectHousework()呼び出し - 処理完了後に画面を閉じる
5. Firestoreへの保存
承認・拒否された家事をFirestoreに保存する処理を実装
受け入れ条件
- HouseworkApprovalViewで「完了にする」ボタンを押すと、家事が承認され
state=completedになる - 承認時に
reviewerId、approvedAt、reviewerCommentが正しく保存される - HouseworkApprovalViewで「未完了に戻す」ボタンを押すと、家事が
state=incompleteに戻る - 承認・拒否処理後にFirestoreに保存される
- 承認・拒否処理後にHouseworkApprovalViewが閉じられる
- ユニットテストが追加される(HouseworkItemの更新メソッド)
関連ファイル
homete/Model/Domain/Cohabitant/Housework/HouseworkItem.swifthomete/Model/Dependencies/HouseworkClient.swifthomete/Model/Domain/Cohabitant/Housework/HouseworkListStore.swifthomete/Views/HouseworkApproval/HouseworkApprovalView.swifthometeTests/Domain/Housework/HouseworkListStoreTest.swift
備考
現在のブランチ: update/impl_approve_housework
Metadata
Metadata
Assignees
Labels
feature機能追加機能追加