module Legacy
  class TitleProviderGroupNameUpdateJob < UpdateJob
    queue_as :default

    def perform(title_provider_group_name, save_changes = {})
      name_was = save_changes[:name][0] if save_changes[:name]
      @title_provider_group_name = title_provider_group_name
      @legacy_title_provider_group_name = Legacy::TitleProviderGroupName.find_or_initialize_by(name: Legacy::TitleProviderGroupName.name_with_prefix(name_was.present? ? name_was : title_provider_group_name.name))
      @legacy_title_provider_group_name.assign_attributes(title_provider_group_name_attributes)
      @legacy_title_provider_group_name.save!
    rescue ::Exception => e
      attr = title_provider_group_name_attributes rescue @title_provider_group_name.attributes.slice(*title_provider_group_name_columns) rescue nil
      ::ActiveJobMailer.error(self.class.to_s, e, attr).deliver_now
    end
  end
end
