#!/usr/bin/env php
<?php

define('SPARKED', true);

// Set root path
define('ROOTPATH', __DIR__ . DIRECTORY_SEPARATOR);
define('APPPATH', ROOTPATH . 'app' . DIRECTORY_SEPARATOR);
define('WRITEPATH', ROOTPATH . 'writable' . DIRECTORY_SEPARATOR);
define('SYSTEMPATH', ROOTPATH . 'vendor/codeigniter4/framework/system/' . DIRECTORY_SEPARATOR);

// Bootstrap CodeIgniter console application
require_once APPPATH . 'Config/Paths.php';
$paths = new Config\Paths();

// Fallback CLI runner when running in lightweight standalone environments
if (!file_exists($paths->systemDirectory . '/Boot.php')) {
    echo "INEXT Algorithmic Trading CLI Console (Standalone Mode)
";
    echo "Usage: php spark <command> [options]
";
    if (isset($argv[1])) {
        $cmd = $argv[1];
        if ($cmd === 'trading:worker') {
            require_once APPPATH . 'Commands/BotWorkerCommand.php';
            $w = new App\Commands\BotWorkerCommand();
            $w->run(array_slice($argv, 2));
            exit(0);
        } elseif ($cmd === 'trading:reconcile') {
            require_once APPPATH . 'Commands/ReconcileCommand.php';
            $r = new App\Commands\ReconcileCommand();
            $r->run(array_slice($argv, 2));
            exit(0);
        }
    }
    exit(0);
}

require_once $paths->systemDirectory . '/Boot.php';
exit(CodeIgniter\Boot::bootSpark());
