<?php

declare(strict_types=1);

use DI\ContainerBuilder;
use Slim\Factory\AppFactory;

error_reporting(E_ALL);

define('BASE_PATH', dirname(__DIR__));
define('APP_PATH', BASE_PATH . '/app');

require BASE_PATH . '/vendor/autoload.php';

$containerBuilder = new ContainerBuilder();
$containerBuilder->addDefinitions(APP_PATH . '/container.php');
$container = $containerBuilder->build();

$container->get(\Illuminate\Database\Capsule\Manager::class);

AppFactory::setContainer($container);

$app = AppFactory::createFromContainer($container);
$app->addBodyParsingMiddleware();
$app->addRoutingMiddleware();
$app->addErrorMiddleware(true, true, true);

$app->any('/[{path:.*}]', function (\Psr\Http\Message\ServerRequestInterface $request) use ($container) {
    return $container->get(\App\Http\LegacyDispatcher::class)->dispatch($request);
});

$app->run();
