次の要件が存在するアプリに取り組んでいます。
- ユーザーがフォームでデータを送信すると、これは「下書きコピー」として保持されます。
- 一方、承認者はそれを読み、何らかのアクション (承認、拒否など) を実行します。
- 承認者がドラフト コピーを承認すると、それは契約となり、両者は法的に拘束されます。元の送信者は、戻ってドラフト コピーを変更し、再送信できます。承認者が最新バージョンを承認すると、既存の契約はこの新しい契約に置き換えられます。
私が苦労しているのは、私たちのプロジェクトに DDD を採用しようとしているのに、本当に「正しいと感じる」解決策がないということです。私たちは皆、最新の DDD にかなり慣れていないため、適切なモデルを見つけるのは非常に困難です。
これは文書管理の問題ではありません。提出者が作業するドラフト コピーは常に 1 つだけあり、どちらの当事者も編集できない契約が存在する場合があります (編集は、ドラフト コピーを変更して再提出することによって実行されます)。これらの目的のために、これら 2 つのドメイン概念のフィールドは同一です。
ここで適用できる設計パターンまたは DDD フレンドリーなソリューションはありますか?