class Maintenance::HumanResources::FieldsJob
  include Sidekiq::Worker

  def perform(school_id)
    @school_id = school_id
    return unless ungrouped_fields

    ungrouped = school.service_groups.find_or_create_by(name: 'Ungrouped')
    ungrouped_fields.each { |o| o.update(group: ungrouped) }
  end

  private
    def school
      @school ||= School.find(@school_id)
    end

    def ungrouped_fields
      @ungrouped_fields ||= EmployeeAdditionalField
        .left_joins(:group)
        .where(school_id: school.id)
        .where(ServiceOpGroups: { SOGID: nil })
    end
end
