code: func (r *GormWorkItemRepository) Delete(ctx context.Context, workitemID uuid.UUID, suppressorID uuid.UUID) error {
  	defer goa.MeasureSince([]string{"goa", "db", "workitem", "delete"}, time.Now())
  	var workItem = WorkItemStorage{}
  	workItem.ID = workitemID
  	// retrieve the current version of the work item to delete
  	r.db.Select("id, version, type").Where("id = ?", workitemID).Find(&workItem)
  	// delete the work item
  	tx := r.db.Delete(workItem)
  	if err := tx.Error; err != nil {
  		return errors.NewInternalError(ctx, err)
  	}
  	if tx.RowsAffected == 0 {
  		return errors.NewNotFoundError("work item", workitemID.String())
  	}
  	// store a revision of the deleted work item
  	_, err := r.wirr.Create(context.Background(), suppressorID, RevisionTypeDelete, workItem)
  	if err != nil {
  		return errs.Wrapf(err, "error while deleting work item")
  	}
  	log.Debug(ctx, map[string]interface{}{"wi_id": workitemID}, "Work item deleted successfully!")
  	return nil
  }
docs: // Delete deletes the work item with the given id
  // returns NotFoundError or InternalError