code: func (r *GormCommentRevisionRepository) Create(ctx context.Context, modifierID uuid.UUID, revisionType RevisionType, c Comment) error {
  	log.Debug(nil, map[string]interface{}{
  		"modifier_id":   modifierID,
  		"revision_type": revisionType,
  	}, "Storing a revision after operation on comment.")
  	tx := r.db
  	revision := &Revision{
  		ModifierIdentity: modifierID,
  		Time:             time.Now(),
  		Type:             revisionType,
  		CommentID:        c.ID,
  		CommentParentID:  c.ParentID,
  		CommentBody:      &c.Body,
  		CommentMarkup:    &c.Markup,
  	}
  	// if there is a valid parent comment id, add it the the stuct
  	if c.ParentCommentID.Valid == true {
  		revision.CommentParentCommentID = id.NullUUID{
  			UUID:  c.ParentCommentID.UUID,
  			Valid: true,
  		}
  	}
  	if revision.Type == RevisionTypeDelete {
  		revision.CommentBody = nil
  		revision.CommentMarkup = nil
  	}
  
  	if err := tx.Create(&revision).Error; err != nil {
  		return errors.NewInternalError(ctx, errs.Wrap(err, "failed to create new comment revision"))
  	}
  	log.Debug(ctx, map[string]interface{}{"comment_id": c.ID}, "comment revision occurrence created")
  	return nil
  }
docs: // Create stores a new revision for the given comment.