<?php

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

use Lean\Lean;
use Mcnd\Event;

return [
    Event\EventManager::class => autowire(Event\EventManager::class),

    Event\EventMiddleware::class => function($c) {
        $mw = new Event\EventMiddleware($c, $c->get(Event\EventManager::class));

        return $mw->fromAttributes($c->get(Notes\Event\EventFetcher::class));
    },

    Notes\Event\EventFetcher::class => function($c) {
        $fetcher = new Notes\Event\EventFetcher(null, null, $c->get('events.caching'));

        $fetcher->setFolderList(array_map(function($item) {
            return $item;
        }, $c->get(Lean::class)->getEvents()));

        return $fetcher;
    },
];