docs: def save(self):
          """Save a new Entity into repository.
  
          Performs unique validations before creating the entity.
          """
          logger.debug(
              f'Saving `{self.__class__.__name__}` object')
  
          # Fetch Model class and connected repository from Repository Factory
          model_cls = repo_factory.get_model(self.__class__)
          repository = repo_factory.get_repository(self.__class__)
  
          try:
              # Do unique checks, update the record and return the Entity
              self._validate_unique(create=False)
  
              # Perform Pre-Save Actions
              self.pre_save()
  
              # Build the model object and create it
              model_obj = repository.create(model_cls.from_entity(self))
  
              # Update the auto fields of the entity
              for field_name, field_obj in self.meta_.declared_fields.items():
                  if isinstance(field_obj, Auto):
                      if isinstance(model_obj, dict):
                          field_val = model_obj[field_name]
                      else:
                          field_val = getattr(model_obj, field_name)
                      setattr(self, field_name, field_val)
  
              # Set Entity status to saved
              self.state_.mark_saved()
  
              # Perform Post-Save Actions
              self.post_save()
  
              return self
          except Exception:
              # FIXME Log Exception
              raise