# == Schema Information
#
# Table name: acl_inventories
#
#  id                  :integer          not null, primary key
#  acl_group_id        :integer
#  router_inventory_id :integer
#  created_at          :datetime
#  updated_at          :datetime
#

class AclInventory < ActiveRecord::Base
  resourcify
  include RedisWrapper
  belongs_to :acl_group
  belongs_to :router_inventory

  after_destroy do |x|
    x.router_inventory.update_redis unless x.router_inventory.blank?
  end

  def self.save_avl_inventories(params,main_obj,org,type)
    a = []
    p "ppppppaaar",params
    params.split(",").each do |x|
      list = x.split("--")
      val = list[0].gsub(" ","")
      case list[1]
        when "inventory"; obj = RouterInventory.find(val.to_i)
        when "tag_list"; obj = RouterInventory.tagged_with(val).where(organisation_id: org.id).last
        when "network_name"; location_network = LocationNetwork.find(val.to_i);
      end
      p "qqqqqqqqqqqqqq",obj.id unless obj.blank?
      a << obj.id unless obj.blank?
      location_network.router_inventories.each{|router| a << router.id; p "rrrrrrrrr",router.id } unless location_network.blank? 
      obj = nil; location_network = []
    end
    p "sssssssss", type,params,main_obj,org,a
    self.save_pf_inventory(main_obj,a.uniq) if "pf_group".eql?(type) 
    self.save_acl_inventory(main_obj,a.uniq) if "acl_group".eql?(type)
    self.save_snmp_inventory(main_obj,a.uniq) if "snmp_configs".eql?(type)
    unless "snmp_configs".eql?(type)
      p "dddddddddddddd", main_obj.router_inventories 
      main_obj.router_inventories.each { |y| y.update_redis } unless main_obj.router_inventories.blank?
    end
  end

  def self.save_pf_inventory(main_obj,obj)
    (obj || []).each{|x| main_obj.pf_inventories.create({router_inventory_id: x}) unless x.blank?}
  end

  def self.save_acl_inventory(main_obj,obj)
    (obj || []).each{|x| main_obj.acl_inventories.create({router_inventory_id: x}) unless x.blank?}
  end
  
  def self.save_snmp_inventory(main_obj,obj)
    (obj || []).each do |x|
      ri = RouterInventory.find_by_id(x)
      ri.update({snmp_config_id: main_obj.id}) unless ri.blank?          
    end
  end
end
