Okay some ideas: We want a modular system. A signup form = list of signup questions A signup = list of signup answers Examples of questions: * Dietary restrictions * Insurance info * Pick option from list * Team (interesting one, as people can also make new teams) class SignupQuestion --> SignupQuestionDiet, SignupQuestionInsurance, SignupQuestionOption .... Questions differentiate through enum question_type Questions can have parameters like Option -------------- Every SignupQuestionXYZ has a SignupAnswerXYZ An activity consists of: * usual event stuff, email, max_attendees, .... * a slug! * dict of SignupQuestions * list of QuestionOrder A signup then consists of: * ActivityRef (what activity) * EntityRef (who signed up) * optional payment_id * optional is_reserve * optional confirmed (true if paid) * dict of SignupAnswers -------------- When saving a signup, we check: * get activity * is person allowed to sign up? * do we have enough signup answers * for every answer: does answer validate type of question?