class Csv::AppleManager::CourseService < Csv::ApplicationService
  def initialize(school)
    @school = school
  end

  def call
    CSV.generate do |csv|
      csv << headers
      courses.each do |course|
        csv << content(course)
      end
    end
  end

  private
    def config
      @school.find_or_build_apple_manager_config
    end

    def courses
      config.location_id? ? @school.courses : []
    end

    def headers
      [
        'course_id',
        'course_number',
        'course_name',
        'location_id'
      ]
    end

    def content(course)
      [
        course.id,
        course.code,
        course.name,
        config.location_id
      ]
    end
end
