module Darksky
  class Entity
    
    attr_accessor :time, :summary, :icon, :sunriseTime, :sunsetTime, :moonPhase, :precipIntensity, :precipIntensityMax, :precipIntensityMaxTime, :precipProbability, :precipType, :temperatureHigh, :temperatureHighTime, :temperatureLow, :temperatureLowTime, :apparentTemperatureHigh, :apparentTemperatureHighTime, :apparentTemperatureLow, :apparentTemperatureLowTime, :dewPoint, :humidity, :pressure, :windSpeed, :windGust, :windGustTime, :windBearing, :cloudCover, :uvIndex, :uvIndexTime, :visibility, :ozone, :temperatureMin, :temperatureMinTime, :temperatureMax, :temperatureMaxTime, :apparentTemperatureMin, :apparentTemperatureMinTime, :apparentTemperatureMax, :apparentTemperatureMaxTime, :temperature, :apparentTemperature
    
    def initialize(params)
      @time = params.fetch(:time, nil)
      @summary = params.fetch(:summary, nil)
      @icon = params.fetch(:icon, nil)
      @sunriseTime = params.fetch(:sunriseTime, nil)
      @sunsetTime = params.fetch(:sunsetTime, nil)
      @moonPhase = params.fetch(:moonPhase, nil)
      @precipIntensity = params.fetch(:precipIntensity, nil)
      @precipIntensityMax = params.fetch(:precipIntensityMax, nil)
      @precipIntensityMaxTime = params.fetch(:precipIntensityMaxTime, nil)
      @precipProbability = params.fetch(:precipProbability, nil)
      @precipType = params.fetch(:precipType, nil)
      @temperatureHigh = params.fetch(:temperatureHigh, nil)
      @temperatureHighTime = params.fetch(:temperatureHighTime, nil)
      @temperatureLow = params.fetch(:temperatureLow, nil)
      @temperatureLowTime = params.fetch(:temperatureLowTime, nil)
      @apparentTemperatureHigh = params.fetch(:apparentTemperatureHigh, nil)
      @apparentTemperatureHighTime = params.fetch(:apparentTemperatureHighTime, nil)
      @apparentTemperatureLow = params.fetch(:apparentTemperatureLow, nil)
      @apparentTemperatureLowTime = params.fetch(:apparentTemperatureLowTime, nil)
      @dewPoint = params.fetch(:dewPoint, nil)
      @humidity = params.fetch(:humidity, nil)
      @pressure = params.fetch(:pressure, nil)
      @windSpeed = params.fetch(:windSpeed, nil)
      @windGust = params.fetch(:windGust, nil)
      @windGustTime = params.fetch(:windGustTime, nil)
      @windBearing = params.fetch(:windBearing, nil)
      @cloudCover = params.fetch(:cloudCover, nil)
      @uvIndex = params.fetch(:uvIndex, nil)
      @uvIndexTime = params.fetch(:uvIndexTime, nil)
      @visibility = params.fetch(:visibility, nil)
      @ozone = params.fetch(:ozone, nil)
      @temperatureMin = params.fetch(:temperatureMin, nil)
      @temperatureMinTime = params.fetch(:temperatureMinTime, nil)
      @temperatureMax = params.fetch(:temperatureMax, nil)
      @temperatureMaxTime = params.fetch(:temperatureMaxTime, nil)
      @apparentTemperatureMin = params.fetch(:apparentTemperatureMin, nil)
      @apparentTemperatureMinTime = params.fetch(:apparentTemperatureMinTime, nil)
      @apparentTemperatureMax = params.fetch(:apparentTemperatureMax, nil)
      @apparentTemperatureMaxTime = params.fetch(:apparentTemperatureMaxTime, nil)
      @temperature = params.fetch(:temperature, nil)
      @apparentTemperature = params.fetch(:apparentTemperature, nil)
    end
  end
end