<?php

use kernel\App;
use kernel\CgRouteCollector;
use Phroute\Phroute\RouteCollector;

App::$collector->filter("auth", [\kernel\middlewares\AuthMiddleware::class, "handler"]);

App::$collector->group(["prefix" => "admin"], function (RouteCollector $router) {
    App::$collector->group(["before" => "auth"], function (RouteCollector $router){
        App::$collector->group(["prefix" => "settings"], function (RouteCollector $router){
            App::$collector->group(["prefix" => "menu"], function (RouteCollector $router){
                App::$collector->get('/', [\kernel\modules\menu\controllers\MenuController::class, 'actionIndex']);
                App::$collector->get('/page/{page_number}', [\kernel\modules\menu\controllers\MenuController::class, 'actionIndex']);
                App::$collector->get('/create', [\kernel\modules\menu\controllers\MenuController::class, 'actionCreate']);
                App::$collector->post("/", [\kernel\modules\menu\controllers\MenuController::class, 'actionAdd']);
                App::$collector->get('/view/{id}', [\kernel\modules\menu\controllers\MenuController::class, 'actionView']);
                App::$collector->any('/update/{id}', [\kernel\modules\menu\controllers\MenuController::class, 'actionUpdate']);
                App::$collector->any("/edit/{id}", [\kernel\modules\menu\controllers\MenuController::class, 'actionEdit']);
                App::$collector->get('/delete/{id}', [\kernel\modules\menu\controllers\MenuController::class, 'actionDelete']);
            });
        });
    });

});

App::$collector->group(["prefix" => "api"], function (CgRouteCollector $router){
    $router->rest("menu", [\kernel\modules\menu\controllers\MenuRestController::class]);
});