<?php

/*use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use \App\Laravue\Faker;
use \App\Laravue\JsonResponse;*/

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::get(  'menu',                                [ 'as' => 'menu.front.index',                 'uses' => 'MenuController@index' ]);
Route::get(  'menu/header',                         [ 'as' => 'menu.front.header',                'uses' => 'MenuController@header' ])->middleware('etag');
Route::get(  'menu/footer',                         [ 'as' => 'menu.front.footer',                'uses' => 'MenuController@footer' ])->middleware('etag');

Route::get(  'category',                            [ 'as' => 'category.front.index',             'uses' => 'CategoryController@index' ]);
Route::get(  'category/top',                        [ 'as' => 'category.front.top',               'uses' => 'CategoryController@top' ]);
Route::get(  'category/{id}',                       [ 'as' => 'category.front.show',              'uses' => 'CategoryController@show' ]);
Route::get(  'category/slug/{slug}',                [ 'as' => 'category.front.slug',              'uses' => 'CategoryController@slug' ]);
Route::get(  'category/parent/list',                [ 'as' => 'category.front.parent',            'uses' => 'CategoryController@onlyParent' ]);
Route::get(  'category/children/list',              [ 'as' => 'category.front.children',          'uses' => 'CategoryController@onlyChildren' ]);
Route::post( 'category/image/progress',             [ 'as' => 'category.front.image',             'uses' => 'CategoryController@progressImage' ]);
Route::get(  'category/image/check/{id}',           [ 'as' => 'category.front.image.check',       'uses' => 'CategoryController@checkProgressImage' ]);

Route::get(  'scene',                            [ 'as' => 'scene.front.index',             'uses' => 'SceneController@index' ]);
Route::get(  'scene/top',                        [ 'as' => 'scene.front.top',               'uses' => 'SceneController@top' ]);
Route::get(  'scene/{id}',                       [ 'as' => 'scene.front.show',              'uses' => 'SceneController@show' ]);
Route::get(  'scene/slug/{slug}',                [ 'as' => 'scene.front.slug',              'uses' => 'SceneController@slug' ]);
Route::get(  'scene/parent/list',                [ 'as' => 'scene.front.parent',            'uses' => 'SceneController@onlyParent' ]);
Route::get(  'scene/children/list',              [ 'as' => 'scene.front.children',          'uses' => 'SceneController@onlyChildren' ]);
Route::post( 'scene/image/progress',             [ 'as' => 'scene.front.image',             'uses' => 'SceneController@progressImage' ]);
Route::get(  'scene/image/check/{id}',           [ 'as' => 'scene.front.image.check',       'uses' => 'SceneController@checkProgressImage' ]);

Route::get(  'color',                            [ 'as' => 'color.front.index',             'uses' => 'ColorController@index' ]);
Route::get(  'color/top',                        [ 'as' => 'color.front.top',               'uses' => 'ColorController@top' ]);
Route::get(  'color/{id}',                       [ 'as' => 'color.front.show',              'uses' => 'ColorController@show' ]);
Route::get(  'color/slug/{slug}',                [ 'as' => 'color.front.slug',              'uses' => 'ColorController@slug' ]);

Route::get(  'condition',                            [ 'as' => 'condition.front.index',             'uses' => 'ConditionController@index' ]);
Route::get(  'condition/top',                        [ 'as' => 'condition.front.top',               'uses' => 'ConditionController@top' ]);
Route::get(  'condition/{id}',                       [ 'as' => 'condition.front.show',              'uses' => 'ConditionController@show' ]);
Route::get(  'condition/slug/{slug}',                [ 'as' => 'condition.front.slug',              'uses' => 'ConditionController@slug' ]);
Route::get(  'condition/parent/list',                [ 'as' => 'condition.front.parent',            'uses' => 'ConditionController@onlyParent' ]);
Route::get(  'condition/children/list',              [ 'as' => 'condition.front.children',          'uses' => 'ConditionController@onlyChildren' ]);
Route::post( 'condition/image/progress',             [ 'as' => 'condition.front.image',             'uses' => 'ConditionController@progressImage' ]);
Route::get(  'condition/image/check/{id}',           [ 'as' => 'condition.front.image.check',       'uses' => 'ConditionController@checkProgressImage' ]);

Route::get(  'product',                            [ 'as' => 'product.front.index',                 'uses' => 'ProductController@index' ]);
Route::get(  'product/mypage',                     [ 'as' => 'product.front.mypage',                'uses' => 'ProductController@mypage' ]);
Route::get(  'product/top',                        [ 'as' => 'product.front.top',                   'uses' => 'ProductController@top' ]);
Route::get(  'product/ranking',                    [ 'as' => 'product.front.ranking',               'uses' => 'ProductController@ranking' ]);
Route::get(  'product/ranking/category/{id}',      [ 'as' => 'product.front.ranking.category',      'uses' => 'ProductController@rankingCategory' ]);
Route::get(  'product/ranking/manufacturer/{id}',  [ 'as' => 'product.front.ranking.manufacturer',  'uses' => 'ProductController@rankingManufacturer' ]);
Route::get(  'product/{id}',                       [ 'as' => 'product.front.show',                  'uses' => 'ProductController@show' ]);
Route::post( 'product/estimate/{id}',              [ 'as' => 'product.front.estimate.check',        'uses' => 'ProductController@estimateCheck' ]);
Route::get(  'product/estimate/{id}/{code}',       [ 'as' => 'product.front.estimate.show',         'uses' => 'ProductController@estimateShow' ]);

Route::get(  'order',                              [ 'as' => 'order.front.index',                 'uses' => 'OrderController@index' ]);
Route::get(  'order/{id}',                         [ 'as' => 'order.front.show',                  'uses' => 'OrderController@show' ]);
Route::post( 'order/{id}/cancel',                  [ 'as' => 'order.front.cancel',                'uses' => 'OrderController@cancel' ]);

Route::get(  'manufacturer',                        [ 'as' => 'manufacturer.front.index',         'uses' => 'ManufacturerController@index' ]);
Route::get(  'manufacturer/top',                    [ 'as' => 'manufacturer.front.top',           'uses' => 'ManufacturerController@top' ]);
Route::get(  'manufacturer/{id}',                   [ 'as' => 'manufacturer.front.show',          'uses' => 'ManufacturerController@show' ]);

Route::get(     'cart',                             [ 'as' => 'cart.front.index',                 'uses' => 'CartController@index' ]);
Route::get(     'cart/{id}',                        [ 'as' => 'cart.front.show',                  'uses' => 'CartController@show' ]);
Route::get(     'cart/statistic/all',               [ 'as' => 'cart.front.statistic',             'uses' => 'CartController@statistic' ]);
Route::post(    'cart',                             [ 'as' => 'cart.front.store',                 'uses' => 'CartController@store' ]);
Route::post(    'cart/order',                       [ 'as' => 'cart.front.order',                 'uses' => 'CartController@order' ]);
Route::post(    'cart/clear',                       [ 'as' => 'cart.front.clear',                 'uses' => 'CartController@clear' ]);
Route::post(    'cart/payment',                     [ 'as' => 'cart.front.payment',               'uses' => 'CartController@payment' ]);
Route::get(     'cart/shipping-cost',               [ 'as' => 'cart.front.shipping-cost',         'uses' => 'CartController@getShippingCost' ]);
Route::put(     'cart/{id}',                        [ 'as' => 'cart.front.update',                'uses' => 'CartController@update' ]);
Route::put(     'cart/quantity/{id}',               [ 'as' => 'cart.front.quantity',       		  'uses' => 'CartController@updateQuantity' ]);
Route::delete(  'cart/{id}',                        [ 'as' => 'cart.front.destroy',               'uses' => 'CartController@destroy' ]);

Route::get(  'keyword',                             [ 'as' => 'keyword.front.index',              'uses' => 'KeywordController@index' ]);
Route::get(  'keyword/all',                         [ 'as' => 'keyword.front.all',                'uses' => 'KeywordController@all' ]);
Route::get(  'keyword/top',                         [ 'as' => 'keyword.front.top',                'uses' => 'KeywordController@topKeyword' ])->middleware('etag');
Route::get(  'keyword/{id}',                        [ 'as' => 'keyword.front.show.id',            'uses' => 'KeywordController@show' ]);

Route::get(  'faq',                                 [ 'as' => 'faq.front.index',                  'uses' => 'FaqController@index' ]);
Route::post( 'seo/uri',                             [ 'as' => 'seo.front.uri',                    'uses' => 'SeoController@index' ])->middleware('etag');

Route::post( 'header/uri',                          [ 'as' => 'header.front.uri',                 'uses' => 'HeaderController@index' ]);

Route::get(  'slider',                              [ 'as' => 'slider.front.index',               'uses' => 'SliderController@index' ]);
Route::get(  'slider/top/page',                     [ 'as' => 'slider.front.topPage',             'uses' => 'SliderController@topPage' ]);
Route::get(  'slider/position/{position}',          [ 'as' => 'slider.front.position',            'uses' => 'SliderController@position' ]);
Route::get(  'slider/show/position/{position}',     [ 'as' => 'slider.front.show.position',       'uses' => 'SliderController@showPosition' ])->middleware('etag');

Route::get(  'article',                             [ 'as' => 'article.front.index',              'uses' => 'ArticleController@index' ]);
Route::get(  'article/top/hot',                     [ 'as' => 'article.front.hot',                'uses' => 'ArticleController@hot' ]);
Route::get(  'article/top/recent',                  [ 'as' => 'article.front.recent',             'uses' => 'ArticleController@recent' ]);
Route::get(  'article/top/ranking',                 [ 'as' => 'article.front.ranking',            'uses' => 'ArticleController@ranking' ]);
Route::get(  'article/ranking/list',                [ 'as' => 'article.front.list',               'uses' => 'ArticleController@rankingList' ]);
Route::get(  'article/question/post',               [ 'as' => 'article.front.question',           'uses' => 'ArticleController@questionPost' ]);
Route::get(  'article/preview-temp/{key}',          [ 'as' => 'article.front.preview.temp',       'uses' => 'ArticleController@showPreviewTemp' ]);
Route::get(  'article/{id}',                        [ 'as' => 'article.front.show.id',            'uses' => 'ArticleController@show' ]);
Route::get(  'article/slug/{slug}',                 [ 'as' => 'article.front.show.slug',          'uses' => 'ArticleController@showBySlug' ]);
Route::post( 'article',                             [ 'as' => 'article.front.store',              'uses' => 'ArticleController@store' ]);

Route::post( 'register',                            [ 'as' => 'register.front.store',             'uses' => 'RegisterController@store' ]);
Route::post( 'register/email',                      [ 'as' => 'register.front.store.email',       'uses' => 'RegisterController@storeEmail' ]);
Route::post( 'register/check/{code}',               [ 'as' => 'register.front.check.code',        'uses' => 'RegisterController@checkCode' ]);

Route::post( 'users/forgot-password',               [ 'as' => 'forgot.front.store',               'uses' => 'RegisterController@forgotPassword' ]);
Route::post( 'users/reset-password/{code}',         [ 'as' => 'reset.front.store',                'uses' => 'RegisterController@resetPassword' ]);

Route::get(  'area',                                [ 'as' => 'area.front.index',                 'uses' => 'AreaController@index' ]);

Route::post( 'contact',                             [ 'as' => 'contact.front.store',              'uses' => 'ContactController@store' ]);
Route::post( 'contact/survey/{code}',               [ 'as' => 'contact.front.store.survey',       'uses' => 'ContactController@storeSurvey' ]);
Route::get(  'setting/all',                         [ 'as' => 'setting.front.all',                'uses' => 'SettingController@all' ])->middleware('etag');
Route::post( 'setting/upload/image',                [ 'as' => 'setting.front.upload',             'uses' => 'SettingController@uploadImage' ]);
Route::post( 'media/upload/file',                   [ 'as' => 'setting.front.upload.image',       'uses' => 'SettingController@uploadMedia' ]);

Route::post( 'product/register/rental',             [ 'as' => 'product.front.register.rental',    'uses' => 'ProductController@register' ]);
Route::post( 'product/try/faceswap',                [ 'as' => 'product.front.try.faceswap',       'uses' => 'ProductController@faceswap' ]);
Route::get(  'product/faceswap/{code}',             [ 'as' => 'product.front.check.faceswap',     'uses' => 'ProductController@faceswapChecking' ]);

Route::get(  'page',                                [ 'as' => 'page.front.index',                 'uses' => 'PageController@index' ]);
Route::get(  'page/list/all',                       [ 'as' => 'page.front.all',                   'uses' => 'PageController@all' ]);
Route::get(  'page/list/slug',                      [ 'as' => 'page.front.slug',                  'uses' => 'PageController@slug' ]);
Route::get(  'page/{slug}',                         [ 'as' => 'page.front.show',                  'uses' => 'PageController@show' ]);

/*Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});*/

Route::post( 'auth/verify',     'AuthController@verify');
Route::post( 'auth/login',      'AuthController@login');
Route::post( 'auth/login/user', 'AuthController@loginUser');

// Temporary test route for getting JWT token (REMOVE IN PRODUCTION)
Route::get('test/get-token/{userId}', function($userId) {
    $user = \App\User::find($userId);
    if (!$user) {
        return response()->json(['error' => 'User not found'], 404);
    }
    $token = auth('api')->login($user);
    return response()->json([
        'token' => $token,
        'user' => [
            'id' => $user->id,
            'email' => $user->email,
            'name' => $user->name,
            'identity_verification_status' => $user->identity_verification_status ?? 'not_submitted'
        ]
    ]);
});

// Identity Verification - Public routes (document types)
Route::get(  'identity-verification/document-types', 'Api\Site\IdentityVerificationController@documentTypes');

Route::group(['middleware' => 'auth:api'], function () {
    Route::get(         'user',                             'AuthController@getUser');
    Route::get(         'auth/user',                        'AuthController@user');
    Route::post(        'auth/logout',                      'AuthController@logout');
	Route::post(        'users/register-card',   			'AuthController@registerCard');
	Route::put(         'users/update-card/{card}',   		'AuthController@updateCard');
	Route::post(        'users/update-card-default/{id}',   'AuthController@updateCardDefault');
	Route::delete(      'users/remove-card/{id}',   		'AuthController@removeCard');

    Route::get(         'users',                            'UserController@index')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_ONLY_MANAGE);
    Route::get(         'users/assigned/list',              'UserController@assigned')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_ONLY_MANAGE);
    Route::get(         'users/{user}',                     'UserController@show')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_EDIT_MANAGE);
    Route::post(        'users',                            'UserController@store');
    Route::put(         'users/profile/{user}',             'UserController@updateProfile');
    Route::put(         'users/detail/{user}',              'UserController@updateDetail');
    Route::put(         'users/email/{user}',               'UserController@updateEmail');
    Route::put(         'users/password/{user}',            'UserController@updatePassword');
    Route::put(         'users/certification/{user}',       'UserController@updateCertification');
    Route::put(         'users/address/{user}',             'UserController@updateAddress');
    Route::put(         'users/shipping-address/{user}',    'UserController@updateShippingAddress');
    Route::put(         'users/{user}',                     'UserController@update')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_EDIT_MANAGE);
    Route::delete(      'users/{user}',                     'UserController@destroy')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_DELETE_MANAGE);
    Route::get(         'users/{user}/permissions',         'UserController@permissions')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_EDIT_MANAGE);
    Route::put(         'users/{user}/permissions',         'UserController@updatePermissions')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_EDIT_MANAGE);
    Route::get(         'users/{user}/wishlist',            'UserController@wishlist');
    Route::post(        'users/{user}/wishlist',            'UserController@wishlistStore');
    Route::delete(      'users/{user}/wishlist/{product}',  'UserController@wishlistDestroy');

    //Address
    Route::get(         'address',                     [ 'as' => 'address.front.list',                  'uses' => 'AddressController@index' ]);
    Route::get(         'address/{id}',                [ 'as' => 'address.front.show',                  'uses' => 'AddressController@show' ]);
    Route::post(        'address',                     [ 'as' => 'address.front.store',                 'uses' => 'AddressController@store' ]);
    Route::put(         'address/{id}',                [ 'as' => 'address.front.update',                'uses' => 'AddressController@update' ]);
    Route::delete(      'address/{id}',                [ 'as' => 'address.front.destroy',               'uses' => 'AddressController@destroy' ]);

    //Payment
    Route::get(         'payment',                     [ 'as' => 'payment.front.list',                  'uses' => 'PaymentController@index' ]);
    Route::post(        'payment',                     [ 'as' => 'payment.front.store',                 'uses' => 'PaymentController@store' ]);

    // Identity Verification - User routes
    Route::get(         'identity-verification/status',     [ 'as' => 'identity.status',    'uses' => 'Api\Site\IdentityVerificationController@status' ]);
    Route::post(        'identity-verification/submit',     [ 'as' => 'identity.submit',    'uses' => 'Api\Site\IdentityVerificationController@submit' ]);
    Route::get(         'identity-verification/history',    [ 'as' => 'identity.history',   'uses' => 'Api\Site\IdentityVerificationController@history' ]);

    Route::apiResource( 'roles',                        'RoleController')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
    Route::get(         'roles/list/only',              'RoleController@roleList')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
    Route::get(         'roles/permission/all',         'RoleController@permissionsAll')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
    Route::get(         'roles/{role}/permissions',     'RoleController@permissions')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
    Route::apiResource( 'permissions',                  'PermissionController')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);


    Route::group(['prefix' => 'admin'], function() {
        Route::get(         'dashboard/statistic',          [ 'as' => 'dashboard.statistic',            'uses' => 'Admin\DashboardController@statistic' ]);

        //Keyword
        Route::get(         'keyword',                     [ 'as' => 'keyword.index',                 'uses' => 'Admin\KeywordController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_ONLY_MANAGE);
        Route::get(         'keyword/all',                 [ 'as' => 'keyword.all',                   'uses' => 'Admin\KeywordController@all' ]);
        Route::get(         'keyword/tags',                [ 'as' => 'keyword.tags',                  'uses' => 'Admin\KeywordController@tags' ]);
        Route::get(         'keyword/{id}',                [ 'as' => 'keyword.show',                  'uses' => 'Admin\KeywordController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_EDIT_MANAGE);
        Route::post(        'keyword',                     [ 'as' => 'keyword.store',                 'uses' => 'Admin\KeywordController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_CREATE_MANAGE);
        Route::post(        'keyword/position',            [ 'as' => 'keyword.position',              'uses' => 'Admin\KeywordController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_CREATE_MANAGE);
        Route::put(         'keyword/{id}',                [ 'as' => 'keyword.update',                'uses' => 'Admin\KeywordController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_EDIT_MANAGE);
        Route::delete(      'keyword/{id}',                [ 'as' => 'keyword.destroy',               'uses' => 'Admin\KeywordController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_DELETE_MANAGE);
        Route::delete(      'keyword/multiple/destroy',    [ 'as' => 'keyword.multiple.destroy',      'uses' => 'Admin\KeywordController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_DELETE_MANAGE);
        Route::post(        'keyword/multiple/activate',   [ 'as' => 'keyword.multiple.activate',     'uses' => 'Admin\KeywordController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_EDIT_MANAGE);
        Route::post(        'keyword/multiple/deactivate', [ 'as' => 'keyword.multiple.deactivate',   'uses' => 'Admin\KeywordController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_KEYWORD_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_KEYWORD_EDIT_MANAGE);

        //FAQ
        Route::get(         'faq',                     [ 'as' => 'faq.index',                 'uses' => 'Admin\FaqController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_ONLY_MANAGE);
        Route::get(         'faq/all',                 [ 'as' => 'faq.all',                   'uses' => 'Admin\FaqController@all' ]);
        Route::get(         'faq/tags',                [ 'as' => 'faq.tags',                  'uses' => 'Admin\FaqController@tags' ]);
        Route::get(         'faq/{id}',                [ 'as' => 'faq.show',                  'uses' => 'Admin\FaqController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_EDIT_MANAGE);
        Route::post(        'faq',                     [ 'as' => 'faq.store',                 'uses' => 'Admin\FaqController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_CREATE_MANAGE);
        Route::put(         'faq/{id}',                [ 'as' => 'faq.update',                'uses' => 'Admin\FaqController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_EDIT_MANAGE);
        Route::delete(      'faq/{id}',                [ 'as' => 'faq.destroy',               'uses' => 'Admin\FaqController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_DELETE_MANAGE);
        Route::delete(      'faq/multiple/destroy',    [ 'as' => 'faq.multiple.destroy',      'uses' => 'Admin\FaqController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_DELETE_MANAGE);
        Route::post(        'faq/multiple/activate',   [ 'as' => 'faq.multiple.activate',     'uses' => 'Admin\FaqController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_EDIT_MANAGE);
        Route::post(        'faq/multiple/deactivate', [ 'as' => 'faq.multiple.deactivate',   'uses' => 'Admin\FaqController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FAQ_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FAQ_EDIT_MANAGE);

        //Filter
        Route::get(         'filter',                     [ 'as' => 'filter.index',                 'uses' => 'Admin\FilterController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_ONLY_MANAGE);
        Route::get(         'filter/all',                 [ 'as' => 'filter.all',                   'uses' => 'Admin\FilterController@all' ]);
        Route::get(         'filter/{id}',                [ 'as' => 'filter.show',                  'uses' => 'Admin\FilterController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_EDIT_MANAGE);
        Route::post(        'filter',                     [ 'as' => 'filter.store',                 'uses' => 'Admin\FilterController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_CREATE_MANAGE);
        Route::put(         'filter/{id}',                [ 'as' => 'filter.update',                'uses' => 'Admin\FilterController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_EDIT_MANAGE);
        Route::delete(      'filter/{id}',                [ 'as' => 'filter.destroy',               'uses' => 'Admin\FilterController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_DELETE_MANAGE);
        Route::delete(      'filter/multiple/destroy',    [ 'as' => 'filter.multiple.destroy',      'uses' => 'Admin\FilterController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_DELETE_MANAGE);
        Route::post(        'filter/multiple/activate',   [ 'as' => 'filter.multiple.activate',     'uses' => 'Admin\FilterController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_EDIT_MANAGE);
        Route::post(        'filter/multiple/deactivate', [ 'as' => 'filter.multiple.deactivate',   'uses' => 'Admin\FilterController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_FILTER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_FILTER_EDIT_MANAGE);

        //Menu
        Route::get(         'menu',                     [ 'as' => 'menu.index',                 'uses' => 'Admin\MenuController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_ONLY_MANAGE);
        Route::get(         'menu/all',                 [ 'as' => 'menu.all',                   'uses' => 'Admin\MenuController@all' ]);
        Route::get(         'menu/all/nested',          [ 'as' => 'menu.all.nested',            'uses' => 'Admin\MenuController@allNested' ]);
        Route::get(         'menu/{id}',                [ 'as' => 'menu.show',                  'uses' => 'Admin\MenuController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_EDIT_MANAGE);
        Route::post(        'menu',                     [ 'as' => 'menu.store',                 'uses' => 'Admin\MenuController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_CREATE_MANAGE);
        Route::post(        'menu/position',            [ 'as' => 'menu.position',              'uses' => 'Admin\MenuController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_EDIT_MANAGE);
        Route::put(         'menu/{id}',                [ 'as' => 'menu.update',                'uses' => 'Admin\MenuController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_EDIT_MANAGE);
        Route::delete(      'menu/{id}',                [ 'as' => 'menu.destroy',               'uses' => 'Admin\MenuController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_DELETE_MANAGE);
        Route::delete(      'menu/multiple/destroy',    [ 'as' => 'menu.multiple.destroy',      'uses' => 'Admin\MenuController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_DELETE_MANAGE);
        Route::post(        'menu/multiple/activate',   [ 'as' => 'menu.multiple.activate',     'uses' => 'Admin\MenuController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_EDIT_MANAGE);
        Route::post(        'menu/multiple/deactivate', [ 'as' => 'menu.multiple.deactivate',   'uses' => 'Admin\MenuController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MENU_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MENU_EDIT_MANAGE);

        //Slider
		Route::get(         'slider',                     [ 'as' => 'slider.index',                 'uses' => 'Admin\SliderController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_ONLY_MANAGE);
        Route::get(         'slider/all',                 [ 'as' => 'slider.all',                   'uses' => 'Admin\SliderController@all' ]);
        Route::get(         'slider/{id}',                [ 'as' => 'slider.show',                  'uses' => 'Admin\SliderController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_EDIT_MANAGE);
        Route::post(        'slider',                     [ 'as' => 'slider.store',                 'uses' => 'Admin\SliderController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_CREATE_MANAGE);
        Route::post(        'slider/position',            [ 'as' => 'slider.position',              'uses' => 'Admin\SliderController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_EDIT_MANAGE);
        Route::put(         'slider/{id}',                [ 'as' => 'slider.update',                'uses' => 'Admin\SliderController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_EDIT_MANAGE);
        Route::delete(      'slider/{id}',                [ 'as' => 'slider.destroy',               'uses' => 'Admin\SliderController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_DELETE_MANAGE);
        Route::delete(      'slider/multiple/destroy',    [ 'as' => 'slider.multiple.destroy',      'uses' => 'Admin\SliderController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_DELETE_MANAGE);
        Route::post(        'slider/multiple/activate',   [ 'as' => 'slider.multiple.activate',     'uses' => 'Admin\SliderController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_EDIT_MANAGE);
        Route::post(        'slider/multiple/deactivate', [ 'as' => 'slider.multiple.deactivate',   'uses' => 'Admin\SliderController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_EDIT_MANAGE);
        Route::post(        'slider/upload/image',        [ 'as' => 'slider.upload.image',          'uses' => 'Admin\SliderController@uploadImage' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SLIDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SLIDER_CREATE_MANAGE);

        //Article
		Route::get(         'article',                     [ 'as' => 'article.index',                 'uses' => 'Admin\ArticleController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_ONLY_MANAGE);
        Route::get(         'article/all',                 [ 'as' => 'article.all',                   'uses' => 'Admin\ArticleController@all' ]);
        Route::post(        'article/preview-temp',        [ 'as' => 'article.preview.temp',          'uses' => 'Admin\ArticleController@previewTemp' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);
        Route::get(         'article/{id}',                [ 'as' => 'article.show',                  'uses' => 'Admin\ArticleController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::post(        'article',                     [ 'as' => 'article.store',                 'uses' => 'Admin\ArticleController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);
        Route::put(         'article/{id}',                [ 'as' => 'article.update',                'uses' => 'Admin\ArticleController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::delete(      'article/{id}',                [ 'as' => 'article.destroy',               'uses' => 'Admin\ArticleController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_DELETE_MANAGE);
        Route::delete(      'article/multiple/destroy',    [ 'as' => 'article.multiple.destroy',      'uses' => 'Admin\ArticleController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_DELETE_MANAGE);
        Route::post(        'article/multiple/activate',   [ 'as' => 'article.multiple.activate',     'uses' => 'Admin\ArticleController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::post(        'article/multiple/deactivate', [ 'as' => 'article.multiple.deactivate',   'uses' => 'Admin\ArticleController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::post(        'article/upload/image',        [ 'as' => 'article.upload.image',          'uses' => 'Admin\ArticleController@uploadImage' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);
        Route::post(        'article/upload/images',       [ 'as' => 'article.upload.images',         'uses' => 'Admin\ArticleController@uploadImages' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);

        //Column
		Route::get(         'column',                     [ 'as' => 'column.index',                 'uses' => 'Admin\ColumnController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_ONLY_MANAGE);
        Route::get(         'column/all',                 [ 'as' => 'column.all',                   'uses' => 'Admin\ColumnController@all' ]);
        Route::post(        'column/preview-temp',        [ 'as' => 'column.preview.temp',          'uses' => 'Admin\ColumnController@previewTemp' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);
        Route::get(         'column/{id}',                [ 'as' => 'column.show',                  'uses' => 'Admin\ColumnController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::post(        'column',                     [ 'as' => 'column.store',                 'uses' => 'Admin\ColumnController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);
        Route::put(         'column/{id}',                [ 'as' => 'column.update',                'uses' => 'Admin\ColumnController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::delete(      'column/{id}',                [ 'as' => 'column.destroy',               'uses' => 'Admin\ColumnController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_DELETE_MANAGE);
        Route::delete(      'column/multiple/destroy',    [ 'as' => 'column.multiple.destroy',      'uses' => 'Admin\ColumnController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_DELETE_MANAGE);
        Route::post(        'column/multiple/activate',   [ 'as' => 'column.multiple.activate',     'uses' => 'Admin\ColumnController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::post(        'column/multiple/deactivate', [ 'as' => 'column.multiple.deactivate',   'uses' => 'Admin\ColumnController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_EDIT_MANAGE);
        Route::post(        'column/upload/image',        [ 'as' => 'column.upload.image',          'uses' => 'Admin\ColumnController@uploadImage' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);
        Route::post(        'column/upload/images',       [ 'as' => 'column.upload.images',         'uses' => 'Admin\ColumnController@uploadImages' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ARTICLE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ARTICLE_CREATE_MANAGE);

        //Page
        Route::get(         'page',                     [ 'as' => 'page.list',                  'uses' => 'Admin\PageController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_ONLY_MANAGE);
        Route::get(         'page/all',                 [ 'as' => 'page.all',                   'uses' => 'Admin\PageController@all' ]);
        Route::get(         'page/available',           [ 'as' => 'page.available',             'uses' => 'Admin\PageController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_EDIT_MANAGE);
        Route::get(         'page/{id}',                [ 'as' => 'page.show',                  'uses' => 'Admin\PageController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_EDIT_MANAGE);
        Route::post(        'page',                     [ 'as' => 'page.store',                 'uses' => 'Admin\PageController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_CREATE_MANAGE);
        Route::put(         'page/{id}',                [ 'as' => 'page.update',                'uses' => 'Admin\PageController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_EDIT_MANAGE);
        Route::delete(      'page/{id}',                [ 'as' => 'page.destroy',               'uses' => 'Admin\PageController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_DELETE_MANAGE);
        Route::delete(      'page/multiple/destroy',    [ 'as' => 'page.multiple.destroy',      'uses' => 'Admin\PageController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_DELETE_MANAGE);
        Route::post(        'page/multiple/activate',   [ 'as' => 'page.multiple.activate',     'uses' => 'Admin\PageController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_EDIT_MANAGE);
        Route::post(        'page/multiple/deactivate', [ 'as' => 'page.multiple.deactivate',   'uses' => 'Admin\PageController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAGE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAGE_EDIT_MANAGE);

        //Question
        Route::get(         'question',                     [ 'as' => 'question.index',                 'uses' => 'Admin\QuestionController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_ONLY_MANAGE);
        Route::get(         'question/all',                 [ 'as' => 'question.all',                   'uses' => 'Admin\QuestionController@all' ]);
        Route::get(         'question/{id}',                [ 'as' => 'question.show',                  'uses' => 'Admin\QuestionController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_EDIT_MANAGE);
        Route::post(        'question',                     [ 'as' => 'question.store',                 'uses' => 'Admin\QuestionController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_CREATE_MANAGE);
        Route::put(         'question/{id}',                [ 'as' => 'question.update',                'uses' => 'Admin\QuestionController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_EDIT_MANAGE);
        Route::delete(      'question/{id}',                [ 'as' => 'question.destroy',               'uses' => 'Admin\QuestionController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_DELETE_MANAGE);
        Route::delete(      'question/multiple/destroy',    [ 'as' => 'question.multiple.destroy',      'uses' => 'Admin\QuestionController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_DELETE_MANAGE);
        Route::post(        'question/multiple/activate',   [ 'as' => 'question.multiple.activate',     'uses' => 'Admin\QuestionController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_EDIT_MANAGE);
        Route::post(        'question/multiple/deactivate', [ 'as' => 'question.multiple.deactivate',   'uses' => 'Admin\QuestionController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_EDIT_MANAGE);
        Route::post(        'question/upload/image',        [ 'as' => 'question.upload.image',          'uses' => 'Admin\QuestionController@uploadImage' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_CREATE_MANAGE);
        Route::post(        'question/upload/images',       [ 'as' => 'question.upload.images',         'uses' => 'Admin\QuestionController@uploadImages' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUESTION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUESTION_CREATE_MANAGE);

        //Category
        Route::get(         'category',                     [ 'as' => 'category.list',                  'uses' => 'Admin\CategoryController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_ONLY_MANAGE);
        Route::get(         'category/all',                 [ 'as' => 'category.all',                   'uses' => 'Admin\CategoryController@all' ]);
        Route::get(         'category/all/nested',          [ 'as' => 'category.all.nested',            'uses' => 'Admin\CategoryController@allNested' ]);
        Route::get(         'category/available',           [ 'as' => 'category.available',             'uses' => 'Admin\CategoryController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_EDIT_MANAGE);
        Route::get(         'category/{id}',                [ 'as' => 'category.show',                  'uses' => 'Admin\CategoryController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_EDIT_MANAGE);
        Route::post(        'category',                     [ 'as' => 'category.store',                 'uses' => 'Admin\CategoryController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_CREATE_MANAGE);
        Route::post(        'category/position',            [ 'as' => 'category.position',              'uses' => 'Admin\CategoryController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_EDIT_MANAGE);
        Route::put(         'category/{id}',                [ 'as' => 'category.update',                'uses' => 'Admin\CategoryController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_EDIT_MANAGE);
        Route::delete(      'category/{id}',                [ 'as' => 'category.destroy',               'uses' => 'Admin\CategoryController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_DELETE_MANAGE);
        Route::delete(      'category/multiple/destroy',    [ 'as' => 'category.multiple.destroy',      'uses' => 'Admin\CategoryController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_DELETE_MANAGE);
        Route::post(        'category/multiple/activate',   [ 'as' => 'category.multiple.activate',     'uses' => 'Admin\CategoryController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_EDIT_MANAGE);
        Route::post(        'category/multiple/deactivate', [ 'as' => 'category.multiple.deactivate',   'uses' => 'Admin\CategoryController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CATEGORY_EDIT_MANAGE);

		//Area
		Route::get(         'area',                     [ 'as' => 'area.list',                  'uses' => 'Admin\AreaController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_ONLY_MANAGE);
		Route::get(         'area/all',                 [ 'as' => 'area.all',                   'uses' => 'Admin\AreaController@all' ]);
		Route::get(         'area/all/nested',          [ 'as' => 'area.all.nested',            'uses' => 'Admin\AreaController@allNested' ]);
		Route::get(         'area/available',           [ 'as' => 'area.available',             'uses' => 'Admin\AreaController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_EDIT_MANAGE);
		Route::get(         'area/{id}',                [ 'as' => 'area.show',                  'uses' => 'Admin\AreaController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_EDIT_MANAGE);
		Route::post(        'area',                     [ 'as' => 'area.store',                 'uses' => 'Admin\AreaController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_CREATE_MANAGE);
		Route::post(        'area/position',            [ 'as' => 'area.position',              'uses' => 'Admin\AreaController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_EDIT_MANAGE);
		Route::put(         'area/{id}',                [ 'as' => 'area.update',                'uses' => 'Admin\AreaController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_EDIT_MANAGE);
		Route::delete(      'area/{id}',                [ 'as' => 'area.destroy',               'uses' => 'Admin\AreaController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_DELETE_MANAGE);
		Route::delete(      'area/multiple/destroy',    [ 'as' => 'area.multiple.destroy',      'uses' => 'Admin\AreaController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_DELETE_MANAGE);
		Route::post(        'area/multiple/activate',   [ 'as' => 'area.multiple.activate',     'uses' => 'Admin\AreaController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_EDIT_MANAGE);
		Route::post(        'area/multiple/deactivate', [ 'as' => 'area.multiple.deactivate',   'uses' => 'Admin\AreaController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_AREA_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_AREA_EDIT_MANAGE);

		//Accessory
		Route::get(         'accessory',                     [ 'as' => 'accessory.list',                  'uses' => 'Admin\AccessoryController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_ONLY_MANAGE);
		Route::get(         'accessory/all',                 [ 'as' => 'accessory.all',                   'uses' => 'Admin\AccessoryController@all' ]);
		Route::get(         'accessory/available',           [ 'as' => 'accessory.available',             'uses' => 'Admin\AccessoryController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_EDIT_MANAGE);
		Route::get(         'accessory/{id}',                [ 'as' => 'accessory.show',                  'uses' => 'Admin\AccessoryController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_EDIT_MANAGE);
		Route::post(        'accessory',                     [ 'as' => 'accessory.store',                 'uses' => 'Admin\AccessoryController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CREATE_MANAGE);
		Route::put(         'accessory/{id}',                [ 'as' => 'accessory.update',                'uses' => 'Admin\AccessoryController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_EDIT_MANAGE);
		Route::delete(      'accessory/{id}',                [ 'as' => 'accessory.destroy',               'uses' => 'Admin\AccessoryController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_DELETE_MANAGE);
		Route::delete(      'accessory/multiple/destroy',    [ 'as' => 'accessory.multiple.destroy',      'uses' => 'Admin\AccessoryController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_DELETE_MANAGE);
		Route::post(        'accessory/multiple/activate',   [ 'as' => 'accessory.multiple.activate',     'uses' => 'Admin\AccessoryController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_EDIT_MANAGE);
		Route::post(        'accessory/multiple/deactivate', [ 'as' => 'accessory.multiple.deactivate',   'uses' => 'Admin\AccessoryController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_EDIT_MANAGE);

		//Accessory Category
		Route::get(         'accessory-category',                     [ 'as' => 'accessory-category.list',                  'uses' => 'Admin\AccessoryCategoryController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_ONLY_MANAGE);
		Route::get(         'accessory-category/all',                 [ 'as' => 'accessory-category.all',                   'uses' => 'Admin\AccessoryCategoryController@all' ]);
		Route::get(         'accessory-category/available',           [ 'as' => 'accessory-category.available',             'uses' => 'Admin\AccessoryCategoryController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_EDIT_MANAGE);
		Route::get(         'accessory-category/{id}',                [ 'as' => 'accessory-category.show',                  'uses' => 'Admin\AccessoryCategoryController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_EDIT_MANAGE);
		Route::post(        'accessory-category',                     [ 'as' => 'accessory-category.store',                 'uses' => 'Admin\AccessoryCategoryController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_CREATE_MANAGE);
		Route::post(        'accessory-category/position',            [ 'as' => 'accessory-category.position',              'uses' => 'Admin\AccessoryCategoryController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_EDIT_MANAGE);
		Route::put(         'accessory-category/{id}',                [ 'as' => 'accessory-category.update',                'uses' => 'Admin\AccessoryCategoryController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_EDIT_MANAGE);
		Route::delete(      'accessory-category/{id}',                [ 'as' => 'accessory-category.destroy',               'uses' => 'Admin\AccessoryCategoryController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_DELETE_MANAGE);
		Route::delete(      'accessory-category/multiple/destroy',    [ 'as' => 'accessory-category.multiple.destroy',      'uses' => 'Admin\AccessoryCategoryController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_DELETE_MANAGE);
		Route::post(        'accessory-category/multiple/activate',   [ 'as' => 'accessory-category.multiple.activate',     'uses' => 'Admin\AccessoryCategoryController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_EDIT_MANAGE);
		Route::post(        'accessory-category/multiple/deactivate', [ 'as' => 'accessory-category.multiple.deactivate',   'uses' => 'Admin\AccessoryCategoryController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ACCESSORY_CATEGORY_EDIT_MANAGE);

		//Article Category
		Route::get(         'article-category',                     [ 'as' => 'article-category.list',                  'uses' => 'Admin\ArticleCategoryController@index' ]);
		Route::get(         'article-category/all',                 [ 'as' => 'article-category.all',                   'uses' => 'Admin\ArticleCategoryController@all' ]);
		Route::get(         'article-category/available',           [ 'as' => 'article-category.available',             'uses' => 'Admin\ArticleCategoryController@available' ]);
		Route::get(         'article-category/nested',              [ 'as' => 'article-category.nested',                'uses' => 'Admin\ArticleCategoryController@nested' ]);
		Route::get(         'article-category/{id}',                [ 'as' => 'article-category.show',                  'uses' => 'Admin\ArticleCategoryController@show' ]);
		Route::post(        'article-category',                     [ 'as' => 'article-category.store',                 'uses' => 'Admin\ArticleCategoryController@store' ]);
		Route::post(        'article-category/position',            [ 'as' => 'article-category.position',              'uses' => 'Admin\ArticleCategoryController@position' ]);
		Route::put(         'article-category/{id}',                [ 'as' => 'article-category.update',                'uses' => 'Admin\ArticleCategoryController@update' ]);
		Route::delete(      'article-category/{id}',                [ 'as' => 'article-category.destroy',               'uses' => 'Admin\ArticleCategoryController@destroy' ]);
		Route::delete(      'article-category/multiple/destroy',    [ 'as' => 'article-category.multiple.destroy',      'uses' => 'Admin\ArticleCategoryController@destroyMultiple' ]);
		Route::post(        'article-category/multiple/activate',   [ 'as' => 'article-category.multiple.activate',     'uses' => 'Admin\ArticleCategoryController@activateMultiple' ]);
		Route::post(        'article-category/multiple/deactivate', [ 'as' => 'article-category.multiple.deactivate',   'uses' => 'Admin\ArticleCategoryController@deactivateMultiple' ]);

		//Template
		Route::get(         'template',                     [ 'as' => 'template.list',                  'uses' => 'Admin\TemplateController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_ONLY_MANAGE);
		Route::get(         'template/all',                 [ 'as' => 'template.all',                   'uses' => 'Admin\TemplateController@all' ]);
		Route::get(         'template/{id}',                [ 'as' => 'template.show',                  'uses' => 'Admin\TemplateController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_EDIT_MANAGE);
		Route::post(        'template',                     [ 'as' => 'template.store',                 'uses' => 'Admin\TemplateController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_CREATE_MANAGE);
		Route::put(         'template/{id}',                [ 'as' => 'template.update',                'uses' => 'Admin\TemplateController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_EDIT_MANAGE);
		Route::delete(      'template/{id}',                [ 'as' => 'template.destroy',               'uses' => 'Admin\TemplateController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_DELETE_MANAGE);
		Route::delete(      'template/multiple/destroy',    [ 'as' => 'template.multiple.destroy',      'uses' => 'Admin\TemplateController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_DELETE_MANAGE);
		Route::post(        'template/multiple/activate',   [ 'as' => 'template.multiple.activate',     'uses' => 'Admin\TemplateController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_EDIT_MANAGE);
		Route::post(        'template/multiple/deactivate', [ 'as' => 'template.multiple.deactivate',   'uses' => 'Admin\TemplateController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_TEMPLATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_TEMPLATE_EDIT_MANAGE);

		//Shipping
		Route::get(         'shipping',                     [ 'as' => 'shipping.list',                  'uses' => 'Admin\ShippingController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_ONLY_MANAGE);
		Route::get(         'shipping/all',                 [ 'as' => 'shipping.all',                   'uses' => 'Admin\ShippingController@all' ]);
		Route::get(         'shipping/available',           [ 'as' => 'shipping.available',             'uses' => 'Admin\ShippingController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_EDIT_MANAGE);
		Route::get(         'shipping/{id}',                [ 'as' => 'shipping.show',                  'uses' => 'Admin\ShippingController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_EDIT_MANAGE);
		Route::post(        'shipping',                     [ 'as' => 'shipping.store',                 'uses' => 'Admin\ShippingController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_CREATE_MANAGE);
		Route::put(         'shipping/{id}',                [ 'as' => 'shipping.update',                'uses' => 'Admin\ShippingController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_EDIT_MANAGE);
		Route::delete(      'shipping/{id}',                [ 'as' => 'shipping.destroy',               'uses' => 'Admin\ShippingController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_DELETE_MANAGE);
		Route::delete(      'shipping/multiple/destroy',    [ 'as' => 'shipping.multiple.destroy',      'uses' => 'Admin\ShippingController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_DELETE_MANAGE);
		Route::post(        'shipping/multiple/activate',   [ 'as' => 'shipping.multiple.activate',     'uses' => 'Admin\ShippingController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_EDIT_MANAGE);
		Route::post(        'shipping/multiple/deactivate', [ 'as' => 'shipping.multiple.deactivate',   'uses' => 'Admin\ShippingController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SHIPPING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SHIPPING_EDIT_MANAGE);

        //Scene
        Route::get(         'scene',                     [ 'as' => 'scene.list',                  'uses' => 'Admin\SceneController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_ONLY_MANAGE);
        Route::get(         'scene/all',                 [ 'as' => 'scene.all',                   'uses' => 'Admin\SceneController@all' ]);
        Route::get(         'scene/all/nested',          [ 'as' => 'scene.all.nested',            'uses' => 'Admin\SceneController@allNested' ]);
        Route::get(         'scene/available',           [ 'as' => 'scene.available',             'uses' => 'Admin\SceneController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_EDIT_MANAGE);
        Route::get(         'scene/{id}',                [ 'as' => 'scene.show',                  'uses' => 'Admin\SceneController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_EDIT_MANAGE);
        Route::post(        'scene',                     [ 'as' => 'scene.store',                 'uses' => 'Admin\SceneController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_CREATE_MANAGE);
        Route::post(        'scene/position',            [ 'as' => 'scene.position',              'uses' => 'Admin\SceneController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_EDIT_MANAGE);
        Route::put(         'scene/{id}',                [ 'as' => 'scene.update',                'uses' => 'Admin\SceneController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_EDIT_MANAGE);
        Route::delete(      'scene/{id}',                [ 'as' => 'scene.destroy',               'uses' => 'Admin\SceneController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_DELETE_MANAGE);
        Route::delete(      'scene/multiple/destroy',    [ 'as' => 'scene.multiple.destroy',      'uses' => 'Admin\SceneController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_DELETE_MANAGE);
        Route::post(        'scene/multiple/activate',   [ 'as' => 'scene.multiple.activate',     'uses' => 'Admin\SceneController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_EDIT_MANAGE);
        Route::post(        'scene/multiple/deactivate', [ 'as' => 'scene.multiple.deactivate',   'uses' => 'Admin\SceneController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SCENE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SCENE_EDIT_MANAGE);

        //Color
        Route::get(         'color',                     [ 'as' => 'color.list',                  'uses' => 'Admin\ColorController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_ONLY_MANAGE);
        Route::get(         'color/all',                 [ 'as' => 'color.all',                   'uses' => 'Admin\ColorController@all' ]);
        Route::get(         'color/available',           [ 'as' => 'color.available',             'uses' => 'Admin\ColorController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_EDIT_MANAGE);
        Route::get(         'color/{id}',                [ 'as' => 'color.show',                  'uses' => 'Admin\ColorController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_EDIT_MANAGE);
        Route::post(        'color',                     [ 'as' => 'color.store',                 'uses' => 'Admin\ColorController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_CREATE_MANAGE);
        Route::post(        'color/position',            [ 'as' => 'color.position',              'uses' => 'Admin\ColorController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_EDIT_MANAGE);
        Route::put(         'color/{id}',                [ 'as' => 'color.update',                'uses' => 'Admin\ColorController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_EDIT_MANAGE);
        Route::delete(      'color/{id}',                [ 'as' => 'color.destroy',               'uses' => 'Admin\ColorController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_DELETE_MANAGE);
        Route::delete(      'color/multiple/destroy',    [ 'as' => 'color.multiple.destroy',      'uses' => 'Admin\ColorController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_DELETE_MANAGE);
        Route::post(        'color/multiple/activate',   [ 'as' => 'color.multiple.activate',     'uses' => 'Admin\ColorController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_EDIT_MANAGE);
        Route::post(        'color/multiple/deactivate', [ 'as' => 'color.multiple.deactivate',   'uses' => 'Admin\ColorController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_COLOR_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_COLOR_EDIT_MANAGE);

        //Condition
        Route::get(         'condition',                     [ 'as' => 'condition.list',                  'uses' => 'Admin\ConditionController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_ONLY_MANAGE);
        Route::get(         'condition/all',                 [ 'as' => 'condition.all',                   'uses' => 'Admin\ConditionController@all' ]);
        Route::get(         'condition/all/nested',          [ 'as' => 'condition.all.nested',            'uses' => 'Admin\ConditionController@allNested' ]);
        Route::get(         'condition/available',           [ 'as' => 'condition.available',             'uses' => 'Admin\ConditionController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_EDIT_MANAGE);
        Route::get(         'condition/{id}',                [ 'as' => 'condition.show',                  'uses' => 'Admin\ConditionController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_EDIT_MANAGE);
        Route::post(        'condition',                     [ 'as' => 'condition.store',                 'uses' => 'Admin\ConditionController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_CREATE_MANAGE);
        Route::post(        'condition/position',            [ 'as' => 'condition.position',              'uses' => 'Admin\ConditionController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_EDIT_MANAGE);
        Route::put(         'condition/{id}',                [ 'as' => 'condition.update',                'uses' => 'Admin\ConditionController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_EDIT_MANAGE);
        Route::delete(      'condition/{id}',                [ 'as' => 'condition.destroy',               'uses' => 'Admin\ConditionController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_DELETE_MANAGE);
        Route::delete(      'condition/multiple/destroy',    [ 'as' => 'condition.multiple.destroy',      'uses' => 'Admin\ConditionController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_DELETE_MANAGE);
        Route::post(        'condition/multiple/activate',   [ 'as' => 'condition.multiple.activate',     'uses' => 'Admin\ConditionController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_EDIT_MANAGE);
        Route::post(        'condition/multiple/deactivate', [ 'as' => 'condition.multiple.deactivate',   'uses' => 'Admin\ConditionController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONDITION_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONDITION_EDIT_MANAGE);

        //Payment
        Route::get(         'payment',                        [ 'as' => 'payment.list',                     'uses' => 'Admin\PaymentController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_ONLY_MANAGE);
        Route::get(         'payment/all',                    [ 'as' => 'payment.all',                      'uses' => 'Admin\PaymentController@all' ]);
        Route::get(         'payment/available',              [ 'as' => 'payment.available',                'uses' => 'Admin\PaymentController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_EDIT_MANAGE);
        Route::get(         'payment/{id}',                   [ 'as' => 'payment.show',                     'uses' => 'Admin\PaymentController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_EDIT_MANAGE);
        Route::post(        'payment',                        [ 'as' => 'payment.store',                    'uses' => 'Admin\PaymentController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_CREATE_MANAGE);
        Route::put(         'payment/{id}',                   [ 'as' => 'payment.update',                   'uses' => 'Admin\PaymentController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_EDIT_MANAGE);
        Route::delete(      'payment/{id}',                   [ 'as' => 'payment.destroy',                  'uses' => 'Admin\PaymentController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_DELETE_MANAGE);
        Route::delete(      'payment/multiple/destroy',       [ 'as' => 'payment.multiple.destroy',         'uses' => 'Admin\PaymentController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_DELETE_MANAGE);
        Route::post(        'payment/multiple/activate',      [ 'as' => 'payment.multiple.activate',        'uses' => 'Admin\PaymentController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_EDIT_MANAGE);
        Route::post(        'payment/multiple/deactivate',    [ 'as' => 'payment.multiple.deactivate',      'uses' => 'Admin\PaymentController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PAYMENT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PAYMENT_EDIT_MANAGE);

        //Order
        Route::get(         'order',                        [ 'as' => 'order.list',                     'uses' => 'Admin\OrderController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_ONLY_MANAGE);
        Route::get(         'order/all',                    [ 'as' => 'order.all',                      'uses' => 'Admin\OrderController@all' ]);
        Route::get(         'order/download-all',           [ 'as' => 'order.download.all',             'uses' => 'Admin\OrderController@downloadAll' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_ONLY_MANAGE);
        Route::get(         'order/available',              [ 'as' => 'order.available',                'uses' => 'Admin\OrderController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_EDIT_MANAGE);
        Route::get(         'order/{id}',                   [ 'as' => 'order.show',                     'uses' => 'Admin\OrderController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_EDIT_MANAGE);
        Route::post(        'order',                        [ 'as' => 'order.store',                    'uses' => 'Admin\OrderController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_CREATE_MANAGE);
        Route::put(         'order/{id}',                   [ 'as' => 'order.update',                   'uses' => 'Admin\OrderController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_EDIT_MANAGE);
        Route::delete(      'order/{id}',                   [ 'as' => 'order.destroy',                  'uses' => 'Admin\OrderController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_DELETE_MANAGE);
        Route::delete(      'order/multiple/destroy',       [ 'as' => 'order.multiple.destroy',         'uses' => 'Admin\OrderController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_DELETE_MANAGE);
        Route::post(        'order/multiple/activate',      [ 'as' => 'order.multiple.activate',        'uses' => 'Admin\OrderController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_EDIT_MANAGE);
        Route::post(        'order/multiple/deactivate',    [ 'as' => 'order.multiple.deactivate',      'uses' => 'Admin\OrderController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_ORDER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_ORDER_EDIT_MANAGE);

        //Product
        Route::get(         'product',                     [ 'as' => 'product.list',                  'uses' => 'Admin\ProductController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_ONLY_MANAGE);
        Route::get(         'product/all',                 [ 'as' => 'product.all',                   'uses' => 'Admin\ProductController@all' ]);
        Route::get(         'product/available',           [ 'as' => 'product.available',             'uses' => 'Admin\ProductController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::get(         'product/next/sku',            [ 'as' => 'product.next.sku',              'uses' => 'Admin\ProductController@getNextSku' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_CREATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::get(         'product/{id}',                [ 'as' => 'product.show',                  'uses' => 'Admin\ProductController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::get(         'product/detail/{id}',         [ 'as' => 'product.show.detail',           'uses' => 'Admin\ProductController@showDetail' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::get(         'product/rule/{id}',           [ 'as' => 'product.show.rule',             'uses' => 'Admin\ProductController@showRule' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::get(         'product/option/{id}',         [ 'as' => 'product.show.option',           'uses' => 'Admin\ProductController@showOption' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::get(         'product/options/template',    [ 'as' => 'product.options.template',      'uses' => 'Admin\ProductController@optionsTemplate' ]);
        Route::post(        'product',                     [ 'as' => 'product.store',                 'uses' => 'Admin\ProductController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_CREATE_MANAGE);
        Route::post(        'product/rule/store',          [ 'as' => 'product.store.rule',            'uses' => 'Admin\ProductController@storeRule' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_CREATE_MANAGE);
        Route::put(         'product/{id}',                [ 'as' => 'product.update',                'uses' => 'Admin\ProductController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::put(         'product/order-status/{id}',   [ 'as' => 'product.update.order.status',   'uses' => 'Admin\ProductController@updateOrderStatus' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::delete(      'product/{id}',                [ 'as' => 'product.destroy',               'uses' => 'Admin\ProductController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_DELETE_MANAGE);
        Route::delete(      'product/multiple/destroy',    [ 'as' => 'product.multiple.destroy',      'uses' => 'Admin\ProductController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_DELETE_MANAGE);
        Route::post(        'product/sku/{sku}',           [ 'as' => 'product.check.sku',             'uses' => 'Admin\ProductController@checkSku' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_CREATE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::post(        'product/multiple/activate',   [ 'as' => 'product.multiple.activate',     'uses' => 'Admin\ProductController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::post(        'product/multiple/deactivate', [ 'as' => 'product.multiple.deactivate',   'uses' => 'Admin\ProductController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PRODUCT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PRODUCT_EDIT_MANAGE);
        Route::delete(      'product/options/template',    [ 'as' => 'product.options.delete',        'uses' => 'Admin\ProductController@optionsTemplateDestroy' ]);

        //Block IP Address
        Route::get(         'block-ip',                     [ 'as' => 'block.ip.list',                  'uses' => 'Admin\BlockIpController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::get(         'block-ip/available',           [ 'as' => 'block.ip.available',             'uses' => 'Admin\BlockIpController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::get(         'block-ip/{id}',                [ 'as' => 'block.ip.show',                  'uses' => 'Admin\BlockIpController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::post(        'block-ip',                     [ 'as' => 'block.ip.store',                 'uses' => 'Admin\BlockIpController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::put(         'block-ip/{id}',                [ 'as' => 'block.ip.update',                'uses' => 'Admin\BlockIpController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::delete(      'block-ip/{id}',                [ 'as' => 'block.ip.destroy',               'uses' => 'Admin\BlockIpController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::delete(      'block-ip/multiple/destroy',    [ 'as' => 'block.ip.multiple.destroy',      'uses' => 'Admin\BlockIpController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::post(        'block-ip/multiple/activate',   [ 'as' => 'block.ip.multiple.activate',     'uses' => 'Admin\BlockIpController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);
        Route::post(        'block-ip/multiple/deactivate', [ 'as' => 'block.ip.multiple.deactivate',   'uses' => 'Admin\BlockIpController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PERMISSION_MANAGE);

        //Contact
		Route::get(         'contact',                     [ 'as' => 'contact.index',                 'uses' => 'Admin\ContactController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_ONLY_MANAGE);
        Route::get(         'contact/all',                 [ 'as' => 'contact.all',                   'uses' => 'Admin\ContactController@all' ]);
        Route::get(         'contact/{id}',                [ 'as' => 'contact.show',                  'uses' => 'Admin\ContactController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_EDIT_MANAGE);
        Route::get(         'contact/read/{id}',           [ 'as' => 'contact.read',                  'uses' => 'Admin\ContactController@read' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_EDIT_MANAGE);
        Route::post(        'contact',                     [ 'as' => 'contact.store',                 'uses' => 'Admin\ContactController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_CREATE_MANAGE);
        Route::put(         'contact/{id}',                [ 'as' => 'contact.update',                'uses' => 'Admin\ContactController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_EDIT_MANAGE);
        Route::delete(      'contact/{id}',                [ 'as' => 'contact.destroy',               'uses' => 'Admin\ContactController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_DELETE_MANAGE);
        Route::delete(      'contact/multiple/destroy',    [ 'as' => 'contact.multiple.destroy',      'uses' => 'Admin\ContactController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_DELETE_MANAGE);
        Route::post(        'contact/multiple/activate',   [ 'as' => 'contact.multiple.activate',     'uses' => 'Admin\ContactController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_EDIT_MANAGE);
        Route::post(        'contact/multiple/deactivate', [ 'as' => 'contact.multiple.deactivate',   'uses' => 'Admin\ContactController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_EDIT_MANAGE);
        Route::put(         'contact/{id}/status',         [ 'as' => 'contact.update.status',         'uses' => 'Admin\ContactController@updateStatus' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CONTACT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CONTACT_EDIT_MANAGE);

		Route::get(         'seo',                     [ 'as' => 'seo.index',                 'uses' => 'Admin\SeoController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_ONLY_MANAGE);
        Route::get(         'seo/all',                 [ 'as' => 'seo.all',                   'uses' => 'Admin\SeoController@all' ]);
        Route::get(         'seo/format',              [ 'as' => 'seo.format',                'uses' => 'Admin\SeoController@seoFormat' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_EDIT_MANAGE);
        Route::get(         'seo/check',               [ 'as' => 'seo.check',                 'uses' => 'Admin\SeoController@seoCheck' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_EDIT_MANAGE);
        Route::get(         'seo/{id}',                [ 'as' => 'seo.show',                  'uses' => 'Admin\SeoController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_EDIT_MANAGE);
        Route::post(        'seo',                     [ 'as' => 'seo.store',                 'uses' => 'Admin\SeoController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_CREATE_MANAGE);
        Route::put(         'seo/{id}',                [ 'as' => 'seo.update',                'uses' => 'Admin\SeoController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_EDIT_MANAGE);
        Route::delete(      'seo/{id}',                [ 'as' => 'seo.destroy',               'uses' => 'Admin\SeoController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_DELETE_MANAGE);
        Route::delete(      'seo/multiple/destroy',    [ 'as' => 'seo.multiple.destroy',      'uses' => 'Admin\SeoController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SEO_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SEO_DELETE_MANAGE);

        Route::get(         'media',                     [ 'as' => 'media.index',                 'uses' => 'Admin\MediaController@index' ]);
        Route::get(         'media/{id}',                [ 'as' => 'media.show',                  'uses' => 'Admin\MediaController@show' ]);
        Route::post(        'media',                     [ 'as' => 'media.store',                 'uses' => 'Admin\MediaController@store' ]);
        Route::put(         'media/{id}',                [ 'as' => 'media.update',                'uses' => 'Admin\MediaController@update' ]);
        Route::delete(      'media/{id}',                [ 'as' => 'media.destroy',               'uses' => 'Admin\MediaController@destroy' ]);
        Route::delete(      'media/multiple/destroy',    [ 'as' => 'media.multiple.destroy',      'uses' => 'Admin\MediaController@destroyMultiple' ]);
        Route::post(        'media/upload/file',         [ 'as' => 'media.upload.file',           'uses' => 'Admin\MediaController@uploadFile' ]);

        Route::get(         'notify/all',               [ 'as' => 'notify.all',                    'uses' => 'Admin\NotifyController@all' ]);
        Route::post(        'notify',                   [ 'as' => 'notify.update',                 'uses' => 'Admin\NotifyController@update' ]);
        Route::delete(      'notify',                   [ 'as' => 'notify.destroy',                'uses' => 'Admin\NotifyController@destroy' ]);
        Route::put(         'notify/{id}',              [ 'as' => 'notify.mark',                   'uses' => 'Admin\NotifyController@mark' ]);

        Route::post(        'gutenberg',                [ 'as' => 'gutenberg.convert',             'uses' => 'Admin\GutenbergController@rawContent' ]);

        Route::get(         'setting',                  [ 'as' => 'setting.index',                 'uses' => 'Admin\SettingController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SETTING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SETTING_ONLY_MANAGE);
        Route::get(         'setting/all',              [ 'as' => 'setting.all',                   'uses' => 'Admin\SettingController@all' ]);
		Route::get(         'setting/{slug}',           [ 'as' => 'setting.show',                  'uses' => 'Admin\SettingController@show' ]);
        Route::post(        'setting/shipping/update',  [ 'as' => 'setting.shipping.update',       'uses' => 'Admin\SettingController@updateShipping' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SETTING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SETTING_EDIT_MANAGE);
        Route::post(        'setting/multiple/update',  [ 'as' => 'setting.multiple.update',       'uses' => 'Admin\SettingController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SETTING_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SETTING_EDIT_MANAGE);

    });
});
