I'm writing a program where someone can set up an email (To, CC, Subject, Body, etc.). They can then set up various triggers that will cause an email to be sent using the set up they defined.
How would that be modeled? Would I have an EmailTemplate class that would store the email setup, and then and EmailMessage class that would represent an actual instance of an email that was sent?
To make this more applicable to others who may find this question, how do you model a class that is used to create an instance of another class (did I word that correctly?)?
Is there a better way? Am I over-complicating it?
If the message never changes, the EmailTemplate is enough. If the user can change the actual email, then you need the EmailMessage. It seems to be a very simple scenario, at least with the details you've told us.
TDD can help here too, write some expectations in form of tests and see where it leads to.