class EventLogging
  include Mongoid::Document
  field :mac_id, type: String
  field :client_mac, type: String
  field :category_id, type: Integer
  field :location_network_id, type: Integer
  field :type_id, type: Integer
  field :description, type: String
  field :timestamp, type: DateTime
  field :extra_data, type: String

  index({"timestamp" => 1, "type_id" => 1, "mac_id" => 1, "location_network_id" => 1}, { background: true })

  EVENT_CATEGORY = {"1" => "SYSTEM" ,"2" => "CLIENT","3" => "NETWORK", "4" => 'ROUGHAP'}
  EVENT_TYPE = {"66" => "RADAR","67" => "DFS","68" => "SCAN_DONE","33" => "AUTHENTICATION","34" => "DEAUTHENTICATION","35" => "ASSOCIATION","36" => "DISASSOCIATION","37" => "SESSION_TIMEOUT"}

  EVENT_CATEGORY_MAP = {
                        "1" => {
                          '66' => 'RADAR',
                          '67' => 'DFS',
                          '68' => 'SCAN DONE',
                          '69' => 'DEVICE INITIALIZED',
                          '70' => 'FIRST HB SUCCESS',
                          '71' => 'HB FAILED',
                          '72' => 'HB RETRY SUCCESS',
                          '73' => 'CONFIG APPLIED',
                          '74' => 'FW UPGRADE INITIATED',
                          '75' => 'FW UPGRADE FAILED',
                          '76' => 'FW UPGRADE DL SUCCESS',
                          '77' => 'RESET INITIATED',
                          '78' => 'CONFIG REJECTED',
                          '2003' => 'SWITCH FIRMWARE UPGRADED',
                          '2002' => 'SWITCH FIRMWARE',
                          '2004' => 'SWITCH FIRMWARE DOWNLOAD'
                        },
                        "2" => {
                          '33' => 'AUTHENTICATION',
                          '34' => 'DEAUTHENTICATION',
                          '35' => 'ASSOCIATION',
                          '36' => 'DISASSOCIATION',
                          '37' => 'SESSION TIMEOUT',
                          '38' => 'CP LOGIN',
                          '39' => 'CP LOGOUT',
                          '40' => 'CP AUTH FAILED',
                          '41' => 'CP ACC FAILED',
                          '42' => 'DHCP LEASE GIVEN',
                          '43' => 'DHCP LEASE RELEASE',
                          '44' => 'DHCP LEASE EXPIRE',
                          '45' => 'LAN CLIENT CONNECTED',
                          '46' => 'LAN CLIENT DISCONNECTED'
                        },
                        "3" => {
                          '1' => 'UPLINK UP/DOWN',
                          '2' => 'SWITCH OVER',
                          '3' => 'NETWORK SWITCH PORT UP',
                          '4' => 'NETWORK SWITCH PORT DOWN',
                          '2001' => 'SWITCH LOOP DETECTION'
                        }
                      }

end
