i'm currently creating a database program in java and i am a bit stuck with the design. it's pretty straight-forward until i hit the part where there are more than 40 different kinds of activities that can range from from book-selling to tutorials to radio/tv show appearances. each activity type has a different set of properties, such as documents needed, name of the kind of activity, etc.
i've considered just hard coding each activity. i've also considered generalizing the types of activities into subclasses such as attendance-based activites and purchase-based activites, but it limits the extensibility of the system. and i have to consider the classes of objects as well. would have to make 40 different classes that all extend activity? i considered creating an activity_type table as well but i do not know how i would implement the activity types in the java part.
my question is: how should i design my system?