class Maintenance::ClassAssignments::DissociativeJob
  include Sidekiq::Worker

  def perform
    assignments_with_no_school.delete_all
    assignments_with_no_classroom.delete_all
  end

  private
    def assignments_with_no_school
      ClassAssignment.joins(<<~SQL)
        LEFT JOIN Schools
        ON Schools.SchoolID = ClassAssignments.SchoolID
      SQL
        .where(Schools: { SchoolID: nil })
    end

    def assignments_with_no_classroom
      ClassAssignment.left_joins(:classroom).where(Classes: { ClassID: nil })
    end
end
