<?php

    use MediaSummary\Solaris\Controller\Middleware\ErrorHandlerMiddleware;
    use Solaris\Container\ServiceContainer;
    use Solaris\Web\WebApplication;
    use const MediaSummary\APP_ENV;

    try {
        $container = require __DIR__ . '/../bootstrap.php';

        if (! $container instanceof ServiceContainer)
            throw new \RuntimeException('bootstrap.php failed');

        $container
            ->make(WebApplication::class)
            ->add(new ErrorHandlerMiddleware($container, 'basic/error/error.twig', ['base_template' => 'basic/error/minimal.twig']))
            ->setContexts(['main', 'specimen', 'ajax', 'api'])
            ->serve();
    }
    catch (\Throwable $t) {
        http_response_code(500);

        if (defined('MediaSummary\\APP_ENV') && APP_ENV === 'dev')
            echo "<h3>incomplete setup</h3><pre>{$t}</pre></hr>";

        require __DIR__ . '/500.html';
        exit();
    }