Complex domain problem to be modeled with DDD
There is a case management application. New requirements want to add statuses to cases. The case will go through a series of statuses until completion. Each case belongs to a case type. There are many case types. A case with a different case type might go through statuses in a different order. Each case type has its own status order. One status could be shared by two case types (status example: "Ongoing"), but the order is not necessarily the same. Some statuses will be attended by another actor. Actor as in it could be a department, a manager level staff, or a division. Only the designated actor will be able to edit a particular status. For example, "Requested for documents from Dept2" status will be chosen by Dept1, after which Dept2 will add documents and then change the status to the next one. Some statuses are attended by a manager level staff. It is a step by step process. Upon change of each status, relevant staff will be emailed. For each status, the email recipient list could be different. Upon change of each status, an email with a body specific to that status will be sent. During some transitions from one status to the next, a new staff must be assigned to the case. Different statuses will be attended to by different assigned staff. There are also statuses like "On Hold" that after being done would go back to the status that came before it. How would this be modeled in DDD?
There is a case management application.
New requirements want to add statuses to cases.
The case will go through a series of statuses until completion.
Each case belongs to a case type. There are many case types.
A case with a different case type might go through statuses in a different order. Each case type has its own status order. One status could be shared by two case types (status example: "Ongoing"), but the order is not necessarily the same.
Some statuses will be attended by another actor. Actor as in it could be a department, a manager level staff, or a division. Only the designated actor will be able to edit a particular status. For example, "Requested for documents from Dept2" status will be chosen by Dept1, after which Dept2 will add documents and then change the status to the next one. Some statuses are attended by a manager level staff.
It is a step by step process.
Upon change of each status, relevant staff will be emailed. For each status, the email recipient list could be different.
Upon change of each status, an email with a body specific to that status will be sent.
During some transitions from one status to the next, a new staff must be assigned to the case. Different statuses will be attended to by different assigned staff.
There are also statuses like "On Hold" that after being done would go back to the status that came before it.
How would this be modeled in DDD?