class Accounting::SyncCafeteriaJob
  include Sidekiq::Worker

  def perform(school_id)
    school = School.find(school_id)
    config = school.accounting_cafeteria_config

    transaction_ids = school.student_cafeteria_transactions
      .by_this_date_forward(config.start_date)
      .where.not(amount: 0)
      .pluck(:id)
      .each_slice(100)
      .to_a

    transaction_ids.each do |ids|
      Accounting::CafeteriaJob.perform_async(ids, config.subcategory_id)
    end
  end
end
