code: func (r *GormRevisionRepository) Create(ctx context.Context, modifierID uuid.UUID, revisionType RevisionType, workitem WorkItemStorage) (Revision, error) {
  	log.Debug(nil, map[string]interface{}{
  		"modifier_id":   modifierID,
  		"revision_type": revisionType,
  	}, "Storing a revision after operation on work item.")
  	tx := r.db
  	workitemRevision := Revision{
  		ModifierIdentity: modifierID,
  		Time:             time.Now(),
  		Type:             revisionType,
  		WorkItemID:       workitem.ID,
  		WorkItemTypeID:   workitem.Type,
  		WorkItemVersion:  workitem.Version,
  		WorkItemFields:   workitem.Fields,
  	}
  	// do not store fields when the work item is deleted
  	if workitemRevision.Type == RevisionTypeDelete {
  		workitemRevision.WorkItemFields = Fields{}
  	}
  	if err := tx.Create(&workitemRevision).Error; err != nil {
  		return Revision{}, errors.NewInternalError(ctx, errs.Wrap(err, "failed to create new work item revision"))
  	}
  	log.Debug(ctx, map[string]interface{}{"wi_id": workitem.ID}, "Work item revision occurrence created")
  	return workitemRevision, nil
  }
docs: // Create stores a new revision for the given work item.