<?php

include_once(dirname(__FILE__).'/../Module/Log/Model.php');
include_once(dirname(__FILE__).'/../Module/Permission/Model.php');
include_once(dirname(__FILE__).'/../Module/User/Model.php');
include_once(dirname(__FILE__).'/../Base/System.php');
include_once(dirname(__FILE__).'/../Version.php');

class Application extends System
{
  function __construct()
  {
    parent::__construct();
    
    RegisterType('YesNo', 'Enumeration', array('Ano', 'Ne'));
    RegisterType('NoYes', 'Enumeration', array('Ne', 'Ano'));
    RegisterType('GameType', 'Enumeration', array('Normální', 'PvP', 6 => 'RP', 8 => 'RPPvP'));
    RegisterType('SecurityLevel', 'Enumeration', array('Hráči', 'Moderátoři', 'GM', 'Administrátoři', 'Nikdo'));
    RegisterType('SkipCinematics', 'Enumeration', array('Ukázat vždy', 'Ukázat pouze pro první postavu rasy', 'Neukazovat vůbec'));
    RegisterType('TaskState', 'Enumeration', array('Čekající', 'Běžící', 'Dokončeno'));
    RegisterType('ServerExpansion', 'Enumeration', array('Classic', 'The Burning Crusade', 'Wrath of The Lich King'));
    RegisterType('ServerType', 'Enumeration', array('Normální', 'PvP', 'RP', 'RPPvP'));
    RegisterType('OnlineState', 'Enumeration', array('Neaktivní', 'Aktivní'));
    RegisterType('Database', 'PointerOneToOne', array('Table' => 'Database', 'Id' => 'Id', 'Name' => 'CONCAT(Name, " ", Version, " r", Revision)', 'Condition' => 'Emulator <> 0'));
    RegisterType('Client', 'PointerOneToOne', array('Table' => 'Client', 'Id' => 'Id', 'Name' => 'Version'));
   
    $this->AddModule('Log');
    $this->AddModule('User');
    $this->AddModule('Permission');
       if(isset($_SERVER['REMOTE_ADDR'])) $this->Modules['User']->Check();
     else $this->Modules['User']->Data['Id'] = $this->Config['Web']['UserConsoleId'];
    $this->Modules['Permission']->LoadForUser($this->Modules['User']->Data['Id']);
  }
}
