For personal educational purposes I am making a site for a conference. One of the object that exist in a conference is a session, which has different states and in each state it has slightly different attributes:
- When submitted it has a speaker (
Userin the system), Title and abstract.
- When under review it has reviews and comments (in addition to the basic data)
- When accepted it has a defined time-slot but no reviewers anymore.
I feel that it is not the best thing to add a "status" attributes and start adding many
So I thought it would be better to have different classes for each state each with it's own validations and behaviors.
What do you think about this design? Do you have a better idea?