class Maintenance::Students::AdditionalFieldsJob
  include Sidekiq::Worker

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

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

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

    def ungrouped_fields
      @ungrouped_fields ||= StudentAdditionalField
        .left_joins(:group)
        .where(school_id: school.id)
        .where(StudentStatisticGroups: { SSGID: nil })
    end
end
