class AlertsWorker
  include Sidekiq::Worker
  sidekiq_options :queue => :alerts, :retry => false, :backtrace => true

  def perform(monitoring_data, data_at)
    # monitoring_data=JSON.parse(monitoring_data)
    puts "Checking Alert for:#{monitoring_data["INFO"]["NASID"]}"

    nas_id = monitoring_data["INFO"]["NASID"]
    ln = $redis.hget "AP:#{nas_id}", "ln_id" #RouterInventory.find_by(mac_id: nas_id)
    p "#{monitoring_data["INFO"]["NASID"]} - ln: #{ln}"
    unless ln.blank?
      nw = $redis.hgetall("network:#{ln}")
      if JSON.parse($redis.get('PCC:ORG:ALERT:STATUS') || '[]').include?(nw['org_id'])#["4551", "25", "273", "14", "433", "477"].include?(nw['org_id'])
        alert_ids = JSON.parse(nw['alerts'].blank? ? '[]' : nw['alerts']) #JSON.parse($redis.hget("network:#{ln}", "alerts") || '[]') #ri.location_network.alerts rescue []
        p "#{monitoring_data["INFO"]["NASID"]} - Alert ids: #{alert_ids}"
        alerts = Alert.where(id: alert_ids) unless alert_ids.blank?
        alerts.each do |alert|
          alert.notify?(monitoring_data, data_at)
        end
      end
    end
  end
end
