class Reporting::Settings::AppleManagerJob < Reporting::Job
  def process
    @filename = 'apple_school_manager.zip'
    send_and_zip_csv_files(files)
  end

  private
    def csv_service(name)
      service_name = "#{name}_service".camelcase
      ::Csv::AppleManager.const_get(service_name).call(@school)
    end

    def files
      {
        'students.csv' => csv_service('student'),
        'staff.csv' => csv_service('staff'),
        'locations.csv' => csv_service('location'),
        'courses.csv' => csv_service('course'),
        'classes.csv' => csv_service('classroom'),
        'rosters.csv' => csv_service('roster')
      }
    end
end
