<?php
/**
 * Created by PhpStorm.
 * User: radko
 * Date: 13.11.18
 * Time: 8:11
 */

if ($domain = config('vzdelavanie.subdomena')) {
    $domain = sprintf(
        '%s.%s',
        $domain,
        config('app.domain')
    );
}

$path = config('vzdelavanie.cesta');

Route::domain($domain)
    ->prefix($path)
    ->middleware('web')
    ->namespace('Seka\Vzdelavanie\Http\Controllers')
    ->name('vzdelavanie.')
    ->group(function () {
        Route::get('/klient', 'KlientAppController@show')->name('klient');

        Route::prefix('/kniznica')->namespace('Kniznica')->middleware(['permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.zobrazit'])->name('kniznica.')->group(function () {
            Route::get('/', 'KniznicaController@index')->name('index');
            Route::prefix('/ucebny-material')->group(function () {
                Route::get('/{id}', 'UcebnicaController@show')->where('id', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.zobrazit')->name('ucebnica.show');
                Route::get('/novy', 'UcebnicaController@create')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.vytvorit')->name('ucebnica.create');
                Route::post('/novy', 'UcebnicaController@store')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.vytvorit')->name('ucebnica.store');
                Route::get('/{id}/upravit', 'UcebnicaController@edit')->where('id', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.upravit')->name('ucebnica.edit');
                Route::put('/{id}/upravit', 'UcebnicaController@update')->where('id', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.upravit')->name('ucebnica.update');
                Route::delete('/{id}/odstranit', 'UcebnicaController@destroy')->where('id', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.odstranit')->name('ucebnica.destroy');

                Route::prefix('/{id}/sekcie')->group(
                    function () {
                        Route::get('/', 'SekciaController@index')->where(['id' => '[0-9]+'])->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.zobrazit')->name('ucebnica.sekcia.index');
                        Route::get('/{sekciaId}', 'SekciaController@show')->where(['id' => '[0-9]+', 'sekciaId' => '[0-9]+'])->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.zobrazit')->name('ucebnica.sekcia.show');
                        Route::get('/nova', 'SekciaController@create')->where(['id' => '[0-9]+'])->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.vytvorit')->name('ucebnica.sekcia.create');
                        Route::post('/nova', 'SekciaController@store')->where(['id' => '[0-9]+'])->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.vytvorit')->name('ucebnica.sekcia.store');
                        Route::get('/{sekciaId}/upravit', 'SekciaController@edit')->where(['id' => '[0-9]+', 'sekciaId' => '[0-9]+'])->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.upravit')->name('ucebnica.sekcia.edit');
                        Route::put('/{sekciaId}/upravit', 'SekciaController@update')->where(['id' => '[0-9]+', 'sekciaId' => '[0-9]+'])->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.upravit')->name('ucebnica.sekcia.update');
                        Route::delete('/{sekciaId}/odstranit', 'SekciaController@destroy')->where(['id' => '[0-9]+', 'sekciaId' => '[0-9]+'])->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.odstranit')->name('ucebnica.sekcia.destroy');
                    }
                );
            });

            Route::prefix('/kategorie')->group(
                function () {
                    Route::get('/', 'KategoriaController@index')->name('kategoria.index');
                    Route::get('/nova', 'KategoriaController@create')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.vytvorit')->name('kategoria.create');
                    Route::post('/nova', 'KategoriaController@store')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.vytvorit')->name('kategoria.store');
                    Route::get('/{kategoriaId}/upravit', 'KategoriaController@edit')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.upravit')->name('kategoria.edit');
                    Route::put('/{kategoriaId}/upravit', 'KategoriaController@update')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.upravit')->name('kategoria.update');
                    Route::delete('/{kategoriaId}/odstranit', 'KategoriaController@destroy')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.odstranit')->name('kategoria.destroy');

                    Route::prefix('/{kategoriaId}/ucebny-material')->group(
                        function () {
                            Route::get('/', 'KategoriaUcebnicaController@index')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.zobrazit')->name('kategoria.ucebnice.index');
                            Route::post('/', 'KategoriaUcebnicaController@index')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.zobrazit')->name('kategoria.ucebnice.filter');
                            Route::get('/novy', 'KategoriaUcebnicaController@create')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_kniznica.upravit')->name('kategoria.ucebnice.create');
                        }
                    );
                }
            );
        });

        Route::prefix('/testovanie')->namespace('Testovanie')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.zobrazit')->name('testovanie.')->group(function () {
            Route::prefix('/testy')->group(function () {
                Route::get('/{id}', 'TestController@show')->where('id', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.zobrazit')->name('ucebnica.show');
            });

            Route::prefix('/kategorie')->group(
                function () {
                    Route::get('/', 'KategoriaController@index')->name('kategoria.index');
                    Route::get('/nova', 'KategoriaController@create')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.vytvorit')->name('kategoria.create');
                    Route::post('/nova', 'KategoriaController@store')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.vytvorit')->name('kategoria.store');
                    Route::get('/{kategoriaId}/upravit', 'KategoriaController@edit')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.upravit')->name('kategoria.edit');
                    Route::put('/{kategoriaId}/upravit', 'KategoriaController@update')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.upravit')->name('kategoria.update');
                    Route::delete('/{kategoriaId}/odstranit', 'KategoriaController@destroy')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.odstranit')->name('kategoria.destroy');

                    Route::prefix('/{kategoriaId}/ucebny-material')->group(
                        function () {
                            Route::get('/', 'KategoriaTestController@index')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.zobrazit')->name('kategoria.ucebnice.index');
                            Route::post('/', 'KategoriaTestController@index')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.zobrazit')->name('kategoria.ucebnice.filter');
                            Route::get('/novy', 'KategoriaTestController@create')->where('kategoriaId', '[0-9]+')->middleware('permission:vzdelavanie|vzdelavanie_kniznica|vzdelavanie_testovanie.upravit')->name('kategoria.ucebnice.create');
                        }
                    );
                }
            );
        });
    }
);
