class Csv::Covid::EmployeeTemperatureService < Csv::ApplicationService
  include DateRangeHelper

  def initialize(school, date_range)
    @school = school
    @date_range = datetime_range(date_range)
  end

  def call
    CSV.generate do |csv|
      csv << headers
      temperatures.each do |temperature|
        csv << [
          temperature.decorate.recorded_datetime,
          temperature.employee.first_name,
          temperature.employee.last_name,
          temperature.temperature,
          temperature.recorded_by
        ]
      end
    end
  end

  private
    def temperatures
      @school.covid_employee_temperatures.preload(:employee).by_date_range(@date_range)
    end

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