docs: def register(self, user_data, base_confirm_url='', send_welcome=True):
          """
          Register user
          Accepts user data, validates it and performs registration. Will send
          a welcome message with a confirmation link on success.
  
          :param user_data: dic, populate user with data
          :param send_welcome: bool, whether to send welcome or skip it (testing)
          :param base_confirm_url: str, base confirmation link url
          :return: boiler.user.models.User
          """
          user = self.__model__(**user_data)
          schema = RegisterSchema()
          valid = schema.process(user)
          if not valid:
              return valid
  
          db.session.add(user)
          db.session.commit()
          if not user.id:
              return False
  
          # send welcome message
          if send_welcome:
              self.send_welcome_message(user, base_confirm_url)
  
          events.register_event.send(user)
          return user