module Legacy
  class TitleUpdateJob < UpdateJob
    queue_as :default

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