I have a domain model (see example below) that has several interfaces that are determined based upon the value of properties within the model itself. While the code below "works" it doesn't feel right. I am sure that there is probably a better approach, but I haven't been able to come up with one. I would be very interested in getting feedback with some alternate approaches.I have a domain model (see example below) that