module Naturalshop
  module ActiveStorage
    module ImageOptimizationExtension
      def initialize(transformations)
        transformations = transformations.deep_dup

        transformations[:format] ||= "webp" 
        transformations[:format] = "webp" if transformations[:format].to_s.in?(%w[gif jpg jpeg png webp])

        if transformations[:format].to_s == "webp"
          transformations[:saver] ||= {}
          transformations[:saver].reverse_merge!(
            Q: 75,
            strip: true,
            effort: 6
          )
        end

        super(transformations)
      end
    end
  end
end

ActiveStorage::Variation.prepend(Naturalshop::ActiveStorage::ImageOptimizationExtension)
