<?php

use function DI\autowire, DI\create, DI\get;

$dir = getenv("META_PATH") . "/definitions";

return array_merge(
    Lean\Lean::definitions(),

    Lean\Lean::autoloadDefinitionsFromComposerExtra(),

    [
        '%APPKEY%' => [
            'picea' => [
                'context' => "%ESCAPED_NAMESPACE%\\View",
                'asset' => [],
                'extensions' => [],

            ],

            'ulmus' => [
                'entities' => [ '%ESCAPED_NAMESPACE%\\Entity' => getenv("PROJECT_PATH") . '/src/Entity/' ],
            ],

            'routes' => [
                '%ESCAPED_NAMESPACE%\\Controller' => getenv("PROJECT_PATH") . '/src/Controller/',
            ],

            'events' => [
                '%ESCAPED_NAMESPACE%\\Controller' => implode(DIRECTORY_SEPARATOR, [ getenv("PROJECT_PATH"), 'src', 'Controller', '' ]),
            ],

            'cronard' => [
                '%ESCAPED_NAMESPACE%\\Controller' => implode(DIRECTORY_SEPARATOR, [ getenv("PROJECT_PATH"), 'src', 'Controller', '' ]),
            ],

            'cli' => [
                '%ESCAPED_NAMESPACE%\\Controller' => implode(DIRECTORY_SEPARATOR, [ getenv("PROJECT_PATH"), 'src', 'Controller', '' ]),
            ],
        ],

        'app.middlewares' => [],
    ],

    require("$dir/auth.php"),
    require("$dir/storage.php"),
    require("$dir/security.php"),
    require("$dir/env/" . getenv('APP_ENV') . ".php"),
    [
        'config' => function () { return array_replace(
            require(getenv("META_PATH")."/config.php"),
            Lean\Lean::autoloadConfigFromComposerExtra(),
        ); }
    ]
);