<?php

define('SCRIPT_STARTED', hrtime(true));

require 'vendor/autoload.php';

const ROOT = __DIR__;
const VERSION = '';
const REVISION = '';
const REVISION_DATE = '';

$dotenv = Dotenv\Dotenv::createImmutable(ROOT);
$dotenv->load();

class Container
{
    static SokoWeb\Interfaces\Database\IConnection $dbConnection;
    static SokoWeb\Interfaces\Database\IAuditLogger $auditLogger;
    static SokoWeb\Interfaces\PersistentData\IPersistentDataManager $persistentDataManager;
    static ?SokoWeb\Interfaces\Routing\IRouteCollection $routeCollection = null;
    static ?SokoWeb\Interfaces\Session\ISessionHandler $sessionHandler = null;
    static ?SokoWeb\Interfaces\Request\IRequest $request = null;
}

Container::$dbConnection = new SokoWeb\Database\Mysql\Connection($_ENV['DB_HOST'], $_ENV['DB_USER'], $_ENV['DB_PASSWORD'], $_ENV['DB_NAME']);
Container::$auditLogger = new RVR\Database\AuditLogger(Container::$dbConnection, 'audit_log');
Container::$persistentDataManager = new SokoWeb\PersistentData\PersistentDataManager(Container::$dbConnection, Container::$auditLogger);