package useCases import "RenewCMS/internal/domain/image" type ListImageVariantsUseCase struct { images image.Repository variants image.VariantRepository files image.VariantFileRepository renderer image.VariantRenderer } func NewListImageVariantsUseCase(images image.Repository, variants image.VariantRepository, files image.VariantFileRepository, renderer image.VariantRenderer) *ListImageVariantsUseCase { return &ListImageVariantsUseCase{images, variants, files, renderer} } func (u *ListImageVariantsUseCase) List(id uint32) (ImageVariantList, error) { img, err := u.images.Get(id) if err != nil { return ImageVariantList{}, err } if isVectorSource(img) { return ImageVariantList{Unsupported: unsupportedSVG, Items: []ImageVariantView{}}, nil } enabled, err := enabledVariants(u.variants) if err != nil { return ImageVariantList{}, err } rows, err := currentFiles(u.files, image.StoredName(img.Path)) if err != nil { return ImageVariantList{}, err } return ImageVariantList{Items: viewsOf(enabled, img, rows, u.renderer.EncodableFormats())}, nil }