<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

//Auth::routes();

use Illuminate\Support\Facades\Route;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;

Route::domain(config('app.url'))->group(function () {
    Route::get('/admin/login', 'Admin\Auth\LoginController@showLoginForm')->name('admin.login');
    Route::post('/admin/login', 'Admin\Auth\LoginController@login');
    Route::post('/admin/logout', 'Admin\Auth\LoginController@logout')->name('admin.logout');
    Route::get('/admin/password/reset', 'Admin\Auth\ForgotPasswordController@showLinkRequestForm')->name('admin.password.request');
    Route::post('/admin/password/email', 'Admin\Auth\ForgotPasswordController@sendResetLinkEmail')->name('admin.password.email');
    Route::get('/admin/password/reset/{token}', 'Admin\Auth\ResetPasswordController@showResetForm')->name('admin.password.reset');
    Route::post('/admin/password/reset', 'Admin\Auth\ResetPasswordController@reset')->name('admin.password.update');

    Route::prefix('admin')->middleware('auth:admin')->group(function () {

        Route::get('admin-users', 'Admin\UserController@getIndex')->middleware('auth.admin.permission:users.view');
        Route::post('admin-users/list', 'Admin\UserController@postList')->middleware('auth.admin.permission:users.view');
        Route::get('admin-users/edit/{userId?}', 'Admin\UserController@getEdit')->where('userId', '[0-9]+');
        Route::post('admin-users/edit/{userId?}', 'Admin\UserController@postEdit')->where('userId', '[0-9]+');
        Route::post('admin-users/delete', 'Admin\UserController@postDelete');

        Route::get('media/more', 'Admin\MediaManagerController@getMore');
        Route::post('media/upload/{uploadType?}', 'Admin\MediaManagerController@postUpload')
            ->middleware('auth.admin.permission:cms.manage');
        Route::get('media/{mediaId}', 'Admin\MediaManagerController@getMedia')->where('mediaId', '[0-9]+');
        Route::post('media/{mediaId}', 'Admin\MediaManagerController@postMedia')->where('mediaId', '[0-9]+');
        Route::delete('media/{mediaId}', 'Admin\MediaManagerController@postDelete')->where('mediaId', '[0-9]+')
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('media/{mediaId}/crop', 'Admin\MediaManagerController@postCrop')->where('mediaId', '[0-9]+')
            ->middleware('auth.admin.permission:cms.manage');
        Route::get('media', 'Admin\MediaManagerController@getList');

        Route::get('content/index/{type}', 'Admin\ContentController@getIndex')
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('content/list/{type}', 'Admin\ContentController@postList')
            ->middleware('auth.admin.permission:cms.manage');
        Route::get('content/form/{type}/{id?}/{parentId?}/{parentContentType?}/{parentFieldName?}', 'Admin\ContentController@getForm')
            ->where(['id' => '[0-9]+', 'parentId' => '[0-9]+'])
            ->middleware('auth.admin.permission:cms.manage');
        Route::get('content/preview/{type}/{id?}/{parentId?}/{parentContentType?}/{parentFieldName?}', 'Admin\ContentController@getPreview')
            ->where(['id' => '[0-9]+', 'parentId' => '[0-9]+'])
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('content/form/{type}/{id?}/{parentId?}/{parentContentType?}/{parentFieldName?}', 'Admin\ContentController@postForm')
            ->where(['id' => '[0-9]+', 'parentId' => '[0-9]+'])
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('content/check-slug', 'Admin\ContentController@postCheckSlug')
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('content/auto-complete/{type}/{field}', 'Admin\ContentController@postAutoComplete')
            ->middleware('auth.admin.permission:cms.manage');
        Route::delete('content/{type}/{id}', 'Admin\ContentController@deleteContentType')
            ->where(['id' => '[0-9]+'])
            ->middleware('auth.admin.permission:cms.manage');
        Route::get('content/order/{type}', 'Admin\ContentController@getOrder')
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('content/order/{type}', 'Admin\ContentController@postOrder')
            ->middleware('auth.admin.permission:cms.manage');
        Route::get('content/form-template/{type}/{parentId}', 'Admin\ContentController@getFormTemplate')
            ->where(['parentId' => '[0-9]+'])
            ->middleware('auth.admin.permission:cms.manage');

        Route::get('menu/edit/{menuId}', 'Admin\MenuController@getEdit')
            ->where(['menuId' => '[0-9]+'])
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('menu/edit/{menuId}', 'Admin\MenuController@postEdit')
            ->where(['menuId' => '[0-9]+'])
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('menu/create-menu-item', 'Admin\MenuController@postCreateMenuItem')
            ->middleware('auth.admin.permission:cms.manage');

        // Route::get('/', 'Admin\HomeController@getIndex');

        Route::get('/', function () {
            return redirect('/admin/content/index/exhibition');
        });

        Route::get('configurations', 'Admin\ConfigurationController@getIndex')
            ->middleware('auth.admin.permission:cms.manage');
        Route::post('configurations/list', 'Admin\ConfigurationController@postList')
            ->middleware('auth.admin.permission:cms.manage');
        Route::get('configurations/edit/{configId}', 'Admin\ConfigurationController@getEdit')->where('userId', '[0-9]+');
        Route::post('configurations/edit/{configId}', 'Admin\ConfigurationController@postEdit')->where('configId', '[0-9]+');


        Route::post('configurations', 'Admin\ConfigurationController@postEdit')
            ->middleware('auth.admin.permission:cms.manage');
    });
});

Route::get('storage/uploads/thumbs/{filename}', 'Frontend\ImageThumbController@getThumb')
    ->where(['filename' => '.*\.(gif|jpg|png|jpeg)']);

Route::domain(config('app.frontend_url'))->group(function () {
    Route::group(['prefix' => LaravelLocalization::setLocale()], function() {
        Route::get('/delete-user-request', 'Frontend\DeleteUserController@showDeleteUserRequest');
        Route::post('/delete-user-request', 'Frontend\DeleteUserController@sendDeleteUserRequest')->name('delete-user-request');
        Route::get('/delete-user/{token}', 'Frontend\DeleteUserController@showDeleteUser');
        Route::post('/delete-user', 'Frontend\DeleteUserController@deleteUser')->name('delete-user');
    });
});