#!/usr/bin/env /usr/local/bin/php
<?php
require_once dirname(dirname(__FILE__)) . '/vendor/autoload.php';

define("APP_ROOT_DIR", dirname(dirname(__FILE__)));

//try {
//    require APP_ROOT_DIR . 'Config/container.php';
//} catch (ErrorException $ex) {
//    echo "Unable to open applications's container.php file,<br /> "
//    . "please change path in console.php file";
//}

// Instantiate the app
require_once dirname(dirname(__FILE__)) . '/app/base/login/settings.php';
$newconf = [];
//$newconf['modelpath'] = __DIR__ . '/app/Model';

$newconf['db'] = [];
if ($config['settings']['ENVIRONMENT'] === "development") {
    $newconf['ENVIRONMENT'] = $config['settings']['ENVIRONMENT'];

    $newconf['db']['development'] = $config['settings']['db_dev'];
    $newconf['dbc']['production'] = $config['settings']['db_prod'];
    $newconf['dbc']['default'] = $config['settings']['db_dev'];
} else {
    $newconf['ENVIRONMENT'] = $config['settings']['ENVIRONMENT'];
    $newconf['dbc']['default'] = $config['settings']['db_prod'];
    $newconf['dbc']['development'] = $config['settings']['db_dev'];
    $newconf['db']['production'] = $config['settings']['db_prod'];
}

$newconf['app'] = $config['settings']['app'];
$newconf['links'] = $config['settings']['urls'];
$newconf['company'] = $config['company'];
$newconf['colab_name'] = $config['settings']['colab_name'];
//var_dump($newconf['links']);
//exit;
//$newconf['billing'] = $config['settings']['billing'];
$newconf['logger'] = $config['settings']['logger'];
$newconf['debug'] = true;
//$newconf['debug'] =$config['settings']['debug'];
$newconf['dbbackups'] = $config['settings']['dbbackup'];
//$newconf['mailer'] = $config['settings']['mailer'];
//$newconf['root'] = $config['settings']['root'];
//$newconf['admindata'] = $config['settings']['admindata'];
$newconf['mailer'] = $config['settings']['mailer'];
//$newconf['base']=dirname(dirname(__FILE__));//$config['settings']['base'];

$app = new \App\Console\ConsoleApp('ECH Autoresp', '0.0.1');

$app->setLogger();

$app->setCapsule($newconf['dbc']);

//var_dump($app->getCapsule());
//exit;
//$kernel = new \Illuminate\Contracts\Http\Kernel();
//GLOBAL DEFINES INCLUDE
//var_dump($newconf);
//exit;
//$app->add(new App\Command\GenerateModelCommand($app->getCapsule()->getDatabaseManager()));
$app->add(new App\Command\ImportSubscribers(['ENVIRONMENT' => $newconf['ENVIRONMENT'],
            'dbc' => $newconf['dbc'], 'debug' => $newconf['debug'], 'mailer' => $newconf['mailer']], $app->getCapsule()->getDatabaseManager(), $app->getLogger()));
$app->add(new App\Command\TestResponder(['ENVIRONMENT' => $newconf['ENVIRONMENT'],
            'dbc' => $newconf['dbc'], 'debug' => $newconf['debug'], 'mailer' => $newconf['mailer']], $app->getCapsule()->getDatabaseManager(), $app->getLogger()));
$app->add(new App\Command\Cron($newconf, $app->getCapsule()->getDatabaseManager(), $app->getLogger()));
$app->add(new App\Command\DbBackup($newconf));

$app->add(new App\Command\EmailControl($newconf));

$app->add(new App\Command\TestMessage($newconf, $app->getCapsule()->getDatabaseManager(), $app->getLogger()));

//$app->add(new App\Command\WrapHtmlMessages($newconf));
$app->add(new App\Command\TestEmailTemplates($newconf));
$app->add(new App\Command\TestEmailImediate($newconf));

$app->add(new App\Command\TestEncryption($newconf));

$app->run();
