class ClientAggregateWorker
  include Sidekiq::Worker
  sidekiq_options :queue => :aggregate_data, :retry => 5, :backtrace => true

  def perform(st, ris, ln_id, hourly=true, et=nil)
    puts "Client Aggregate data for Network [#{ln_id}]: #{st}"
    tz = $redis.hget("network:#{ln_id}", 'tz') 
    tz = tz.present? ? tz : LocationNetwork::DEFAULT_TIMEZONE
    st = Time.zone.parse(st).in_time_zone(tz)

    ClientAggregateData.save_hourly_data st, ris, ln_id, hourly
    if et.present? && st.utc == et.to_time.utc
      ln = LocationNetwork.find(ln_id)
      ln.update_column(:aggregation_flag, false) unless ln.blank?
      #TODO: Notify user about history data aggregation.
    end
  end
end
