package useCases import "RenewCMS/internal/domain/image" type mediaRemover struct { imageRepository image.Repository storage image.Storage generated variantCache } func newMediaRemover(imageRepository image.Repository, storage image.Storage, variantFiles image.VariantFileRepository) mediaRemover { return mediaRemover{imageRepository, storage, variantCache{variantFiles, storage}} } func (r mediaRemover) remove(img image.Image) error { storedName := image.StoredName(img.Path) if err := r.generated.purgeSource(storedName); err != nil { return err } if err := r.storage.Delete(storedName); err != nil { return err } return r.imageRepository.Delete(img.ID) }