add appointment model validations, default values and tests