class Google::Sheets::Covid::TemperatureService < Google::Sheets::ApplicationService
  include DateRangeHelper

  def initialize(school, user, date_range, grades, classroom_ids)
    @school = school
    @date_range = date_range
    @grades = grades
    @classroom_ids = classroom_ids
    @label = 'Covid Temperatures'
    super(user)
  end

  private
    def body
      data = []
      data << headers
      temperatures.each do |temperature|
        data << [
          temperature.decorate.recorded_datetime,
          temperature.student.first_name,
          temperature.student.last_name,
          temperature.student.decorate.grade_level,
          temperature.temperature,
          temperature.recorded_by
        ]
      end
      data
    end

    def headers
      ['Date/Time', 'First Name', 'Last Name', 'Grade', 'Temperature', 'Recorded By']
    end

    def temperatures
      @school.covid_temperatures
        .includes(:student)
        .by_grades(@grades)
        .by_classroom(@classroom_ids)
        .by_date_range(datetime_range(@date_range))
    end
end
