module Ariadne::AttributesHelper

def merge_prefixed_attribute_hashes(*hashes, prefix:, plural_keys:)

def merge_prefixed_attribute_hashes(*hashes, prefix:, plural_keys:)
  {}.tap do |result|
    hashes.each do |hash|
      next unless hash
      prefix_hash = hash.delete(prefix) || {}
      prefix_hash.each_pair do |key, val|
        result[key] =
          if plural_keys.include?(key)
            [*(result[key] || "").split, val].join(" ").strip
          else
            val
          end
      end
      hash.delete_if do |key, val|
        key_s = key.to_s
        if key.start_with?("#{prefix}-")
          bare_key = key_s.sub("#{prefix}-", "").to_sym
          result[bare_key] =
            if plural_keys.include?(bare_key)
              [*(result[bare_key] || "").split, val].join(" ").strip
            else
              val
            end
          true
        else
          false
        end
      end
    end
  end
end