added new validations to user model, added new fields to the user model, updated the schema and factory input, and wrote user model tests