package useCases import ( "RenewCMS/internal/domain/image" "context" "log" ) type GenerateVariantsOnUploadUseCase struct { variants image.VariantRepository generator *ServeVariantUseCase logger *log.Logger } func NewGenerateVariantsOnUploadUseCase(variants image.VariantRepository, generator *ServeVariantUseCase, logger *log.Logger) *GenerateVariantsOnUploadUseCase { return &GenerateVariantsOnUploadUseCase{variants, generator, logger} } func (u *GenerateVariantsOnUploadUseCase) Generate(ctx context.Context, img image.Image) { if isVectorSource(img) { return } enabled, err := enabledVariants(u.variants) if err != nil { u.logger.Printf("listing variants to generate on upload failed: image=%d: %v", img.ID, err) return } storedName := image.StoredName(img.Path) for _, variant := range enabled { if !variant.GenerateOnUpload { continue } if _, err := u.generator.Generate(ctx, variant, storedName); err != nil { u.logger.Printf("generating variant on upload failed: variant=%s image=%d: %v", variant.Name, img.ID, err) } } }