<?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(    'report',                            [ 'as' => 'report.front.index',             'uses' => 'ReportController@index' ]);
Route::get(    'report/top',                        [ 'as' => 'report.front.top',               'uses' => 'ReportController@top' ]);
Route::get(    'report/{id}',                       [ 'as' => 'report.front.show',              'uses' => 'ReportController@show' ]);
Route::get(    'report/slug/{slug}',                [ 'as' => 'report.front.slug',              'uses' => 'ReportController@slug' ]);
Route::get(    'report/statistic/all',              [ 'as' => 'report.front.statistic',         'uses' => 'ReportController@statistic' ]);
Route::post(   'report',                            [ 'as' => 'report.front.store',             'uses' => 'ReportController@store' ]);
Route::put(    'report/{id}',                       [ 'as' => 'report.front.update',            'uses' => 'ReportController@update' ]);
Route::delete( 'report/{id}',                       [ 'as' => 'report.front.destroy',           'uses' => 'ReportController@destroy' ]);

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

Route::get(  'keyword',                             [ 'as' => 'keyword.front.index',              'uses' => 'KeywordController@index' ]);
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::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::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( 'auth/login',      'AuthController@login');
Route::post( 'auth/login/user', 'AuthController@loginUser');

// PWA public route (no auth required)
Route::get(  'pwa/public-key',   'UserController@getPwaPublicKey');

Route::group(['middleware' => 'auth:api'], function () {
    Route::get(         'user',                             'AuthController@getUser');
    Route::get(         'auth/user',                        'AuthController@user');
    Route::post(        'auth/logout',                      'AuthController@logout');

    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/attendance/statistics',      'UserController@getAttendanceStatistics')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE);
    Route::get(         'users/attendance/export',          'UserController@exportAttendanceStatistics')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE);
    Route::get(         'users/active/all',                 'UserController@getAllActiveUsers')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE);
    Route::get(         'users/{user}',                     'UserController@show')->middleware('permission:' . \App\Laravue\Acl::PERMISSION_USER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_USER_EDIT_MANAGE);
	Route::get(         'users/chat/list',                  'UserController@chatList')->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
    Route::post(        'users',                            'UserController@store');
	Route::post(        'users/online-status',  			'UserController@updateOnlineStatus');
    Route::put(         'users/profile/{user}',             'UserController@updateProfile');
    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::post(        'users/save-fcm-token',             'UserController@storeFcmToken');
    
    // PWA notification routes
    Route::post(        'users/pwa-subscription',           	'UserController@storePwaSubscription');
    Route::delete(      'users/pwa-subscription',           	'UserController@removePwaSubscription');
    Route::get(         'users/pwa-notification-preferences', 	'UserController@getPwaNotificationPreferences');
    Route::post(        'users/pwa-notification-preferences', 	'UserController@updatePwaNotificationPreferences');
    Route::post(        'users/chat-status',                	'UserController@updateChatStatus');
    Route::delete(      'users/{user}/wishlist/{product}',  	'UserController@wishlistDestroy');
	
	//Conversation
	Route::get(        'conversation',                      'ConversationController@index');
	Route::get(        'conversation/{id}',                 'ConversationController@show');
	Route::post(       'conversation',                      'ConversationController@store');
	
	//Chat
	Route::get(        'message',                            'ChatController@index');
	Route::get(        'message/check',                      'ChatController@checkMessage');
	Route::get(        'message/unread-count',               'ChatController@getUnreadCount');
	Route::post(       'message',                            'ChatController@store');
	Route::post(       'message/clear',                      'ChatController@seenMessage');
	Route::post(       'message/typing',                     'ChatController@typingMessage');

    //Site
    Route::get(    'site',                               [ 'as' => 'site.front.index',                'uses' => 'SiteController@index' ]);

    //Project
    Route::get(    'project',                            [ 'as' => 'project.front.index',             'uses' => 'ProjectController@index' ]);
    Route::get(    'project/group/member',               [ 'as' => 'project.front.group',             'uses' => 'ProjectController@groupMember' ]);

    //Customer
    Route::get(    'customer',                           [ 'as' => 'customer.front.index',            'uses' => 'CustomerController@index' ]);

    //Charge
    Route::get(    'charge',                             [ 'as' => 'charge.front.index',              'uses' => 'ChargeController@index' ]);

    //Report
    Route::get(    'report/check/record',                [ 'as' => 'report.front.check',              'uses' => 'ReportController@check' ]);
    Route::get(    'report/current/member',              [ 'as' => 'report.front.current',            'uses' => 'ReportController@currentMember' ]);
    Route::post(   'report/record',                      [ 'as' => 'report.front.record',             'uses' => 'ReportController@record' ]);

    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' ]);

        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);

        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);

        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);

        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);

		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);

		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::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);

        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);

        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);
		
		//Message
		Route::get(         'message/conversation/{id}',                 [ 'as' => 'message.show',                  	        'uses' => 'Admin\ChatController@show' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::get(         'message/conversations',                     [ 'as' => 'message.conversations',                  	'uses' => 'Admin\ChatController@getConversations' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::get(         'message/{id}/messages',                     [ 'as' => 'message.get',                 				'uses' => 'Admin\ChatController@getMessages' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::get(         'message/search',                     		 [ 'as' => 'message.search',                 			'uses' => 'Admin\ChatController@searchMessages' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::get(         'message/conversation/user/{userId}',        [ 'as' => 'message.conversation.user',                 'uses' => 'Admin\ChatController@getOrCreateConversation' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::get(         'message/conversation-new',        			 [ 'as' => 'message.conversation.new',                  'uses' => 'Admin\ChatController@countConversationNew' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::post(        'message/conversation-new',        			 [ 'as' => 'message.conversation.reset',                'uses' => 'Admin\ChatController@resetConversationNew' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::post(        'message/conversation/active/{id}',        	 [ 'as' => 'message.conversation.active',               'uses' => 'Admin\ChatController@activeConversation' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::post(        'message/conversation/typing/{id}',        	 [ 'as' => 'message.conversation.typing',               'uses' => 'Admin\ChatController@typingConversation' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::post(        'message/messages',                     	 [ 'as' => 'message.send',                  			'uses' => 'Admin\ChatController@sendMessage' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		Route::post(        'message/upload/files',                      [ 'as' => 'message.send.files',                  		'uses' => 'Admin\ChatController@sendMessageFiles' ])->middleware('role:' . \App\Laravue\Acl::ROLE_ADMIN . '|' . \App\Laravue\Acl::ROLE_MANAGER);
		
		//Material
		Route::get(         'material',                     [ 'as' => 'material.list',                  'uses' => 'Admin\MaterialController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_ONLY_MANAGE);
		Route::get(         'material/all',                 [ 'as' => 'material.all',                   'uses' => 'Admin\MaterialController@all' ]);
		Route::get(         'material/available',           [ 'as' => 'material.available',             'uses' => 'Admin\MaterialController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::get(         'material/{id}',                [ 'as' => 'material.show',                  'uses' => 'Admin\MaterialController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::post(        'material',                     [ 'as' => 'material.store',                 'uses' => 'Admin\MaterialController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_CREATE_MANAGE);
		Route::put(         'material/{id}',                [ 'as' => 'material.update',                'uses' => 'Admin\MaterialController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::delete(      'material/{id}',                [ 'as' => 'material.destroy',               'uses' => 'Admin\MaterialController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_DELETE_MANAGE);
		Route::delete(      'material/multiple/destroy',    [ 'as' => 'material.multiple.destroy',      'uses' => 'Admin\MaterialController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_DELETE_MANAGE);
		Route::post(        'material/multiple/activate',   [ 'as' => 'material.multiple.activate',     'uses' => 'Admin\MaterialController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::post(        'material/multiple/deactivate', [ 'as' => 'material.multiple.deactivate',   'uses' => 'Admin\MaterialController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		
		//Material Category
		Route::get(         'material-category',                     [ 'as' => 'material.category.list',                  'uses' => 'Admin\MaterialCategoryController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_ONLY_MANAGE);
		Route::get(         'material-category/all',                 [ 'as' => 'material.category.all',                   'uses' => 'Admin\MaterialCategoryController@all' ]);
		Route::get(         'material-category/all/nested',          [ 'as' => 'material.category.all.nested',            'uses' => 'Admin\MaterialCategoryController@allNested' ]);
		Route::get(         'material-category/available',           [ 'as' => 'material.category.available',             'uses' => 'Admin\MaterialCategoryController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::get(         'material-category/{id}',                [ 'as' => 'material.category.show',                  'uses' => 'Admin\MaterialCategoryController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::post(        'material-category',                     [ 'as' => 'material.category.store',                 'uses' => 'Admin\MaterialCategoryController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_CREATE_MANAGE);
		Route::put(         'material-category/{id}',                [ 'as' => 'material.category.update',                'uses' => 'Admin\MaterialCategoryController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::delete(      'material-category/{id}',                [ 'as' => 'material.category.destroy',               'uses' => 'Admin\MaterialCategoryController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_DELETE_MANAGE);
		Route::delete(      'material-category/multiple/destroy',    [ 'as' => 'material.category.multiple.destroy',      'uses' => 'Admin\MaterialCategoryController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_DELETE_MANAGE);
		Route::post(        'material-category/multiple/activate',   [ 'as' => 'material.category.multiple.activate',     'uses' => 'Admin\MaterialCategoryController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		Route::post(        'material-category/multiple/deactivate', [ 'as' => 'material.category.multiple.deactivate',   'uses' => 'Admin\MaterialCategoryController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_MATERIAL_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_MATERIAL_EDIT_MANAGE);
		
		//Plan
		Route::get(         'plan',                          [ 'as' => 'plan.list',                      'uses' => 'Admin\PlanController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_ONLY_MANAGE);
		Route::get(         'plan/all',                      [ 'as' => 'plan.all',                       'uses' => 'Admin\PlanController@all' ]);
		Route::get(         'plan/form-data',                [ 'as' => 'plan.form.data',                 'uses' => 'Admin\PlanController@getFormData' ]);
		Route::get(         'plan/{id}',                     [ 'as' => 'plan.show',                      'uses' => 'Admin\PlanController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_EDIT_MANAGE);
		Route::post(        'plan',                          [ 'as' => 'plan.store',                     'uses' => 'Admin\PlanController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_CREATE_MANAGE);
		Route::put(         'plan/{id}',                     [ 'as' => 'plan.update',                    'uses' => 'Admin\PlanController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_EDIT_MANAGE);
		Route::delete(      'plan/{id}',                     [ 'as' => 'plan.destroy',                   'uses' => 'Admin\PlanController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_DELETE_MANAGE);
		Route::delete(      'plan/multiple/destroy',         [ 'as' => 'plan.multiple.destroy',          'uses' => 'Admin\PlanController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_DELETE_MANAGE);
		Route::post(        'plan/multiple/activate',        [ 'as' => 'plan.multiple.activate',         'uses' => 'Admin\PlanController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_EDIT_MANAGE);
		Route::post(        'plan/multiple/deactivate',      [ 'as' => 'plan.multiple.deactivate',       'uses' => 'Admin\PlanController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PLAN_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PLAN_EDIT_MANAGE);
		
        //Site
        Route::get(         'site',                     [ 'as' => 'site.list',                  'uses' => 'Admin\SiteController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_ONLY_MANAGE);
        Route::get(         'site/all',                 [ 'as' => 'site.all',                   'uses' => 'Admin\SiteController@all' ]);
        Route::get(         'site/{id}',                [ 'as' => 'site.show',                  'uses' => 'Admin\SiteController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_EDIT_MANAGE);
        Route::post(        'site',                     [ 'as' => 'site.store',                 'uses' => 'Admin\SiteController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_CREATE_MANAGE);
        Route::post(        'site/position',            [ 'as' => 'site.position',              'uses' => 'Admin\SiteController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_EDIT_MANAGE);
        Route::put(         'site/{id}',                [ 'as' => 'site.update',                'uses' => 'Admin\SiteController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_EDIT_MANAGE);
        Route::delete(      'site/{id}',                [ 'as' => 'site.destroy',               'uses' => 'Admin\SiteController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_DELETE_MANAGE);
        Route::delete(      'site/multiple/destroy',    [ 'as' => 'site.multiple.destroy',      'uses' => 'Admin\SiteController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_DELETE_MANAGE);
        Route::post(        'site/multiple/activate',   [ 'as' => 'site.multiple.activate',     'uses' => 'Admin\SiteController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_EDIT_MANAGE);
        Route::post(        'site/multiple/deactivate', [ 'as' => 'site.multiple.deactivate',   'uses' => 'Admin\SiteController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_SITE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_SITE_EDIT_MANAGE);

        //Project
        Route::get(         'project',                     [ 'as' => 'project.list',                  'uses' => 'Admin\ProjectController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_ONLY_MANAGE);
        Route::get(         'project/all',                 [ 'as' => 'project.all',                   'uses' => 'Admin\ProjectController@all' ]);
        Route::get(         'project/member',              [ 'as' => 'project.member',                'uses' => 'Admin\ProjectController@getMember' ]);
        Route::get(         'project/{id}',                [ 'as' => 'project.show',                  'uses' => 'Admin\ProjectController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_EDIT_MANAGE);
        Route::post(        'project',                     [ 'as' => 'project.store',                 'uses' => 'Admin\ProjectController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_CREATE_MANAGE);
        Route::post(        'project/position',            [ 'as' => 'project.position',              'uses' => 'Admin\ProjectController@position' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_EDIT_MANAGE);
        Route::put(         'project/{id}',                [ 'as' => 'project.update',                'uses' => 'Admin\ProjectController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_EDIT_MANAGE);
        Route::delete(      'project/{id}',                [ 'as' => 'project.destroy',               'uses' => 'Admin\ProjectController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_DELETE_MANAGE);
        Route::delete(      'project/multiple/destroy',    [ 'as' => 'project.multiple.destroy',      'uses' => 'Admin\ProjectController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_DELETE_MANAGE);
        Route::post(        'project/multiple/activate',   [ 'as' => 'project.multiple.activate',     'uses' => 'Admin\ProjectController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_EDIT_MANAGE);
        Route::post(        'project/multiple/deactivate', [ 'as' => 'project.multiple.deactivate',   'uses' => 'Admin\ProjectController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_PROJECT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_PROJECT_EDIT_MANAGE);

        //Customer
        Route::get(         'customer',                     [ 'as' => 'customer.list',                  'uses' => 'Admin\CustomerController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_ONLY_MANAGE);
        Route::get(         'customer/all',                 [ 'as' => 'customer.all',                   'uses' => 'Admin\CustomerController@all' ]);
        Route::get(         'customer/{id}',                [ 'as' => 'customer.show',                  'uses' => 'Admin\CustomerController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_EDIT_MANAGE);
        Route::post(        'customer',                     [ 'as' => 'customer.store',                 'uses' => 'Admin\CustomerController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_CREATE_MANAGE);
        Route::put(         'customer/{id}',                [ 'as' => 'customer.update',                'uses' => 'Admin\CustomerController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_EDIT_MANAGE);
        Route::delete(      'customer/{id}',                [ 'as' => 'customer.destroy',               'uses' => 'Admin\CustomerController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_DELETE_MANAGE);
        Route::delete(      'customer/multiple/destroy',    [ 'as' => 'customer.multiple.destroy',      'uses' => 'Admin\CustomerController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_DELETE_MANAGE);
        Route::post(        'customer/multiple/activate',   [ 'as' => 'customer.multiple.activate',     'uses' => 'Admin\CustomerController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_EDIT_MANAGE);
        Route::post(        'customer/multiple/deactivate', [ 'as' => 'customer.multiple.deactivate',   'uses' => 'Admin\CustomerController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_CUSTOMER_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_CUSTOMER_EDIT_MANAGE);

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

        //Quote
	    Route::get(         'quote',                     [ 'as' => 'quote.list',                  'uses' => 'Admin\QuoteController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_ONLY_MANAGE);
	    Route::get(         'quote/all',                 [ 'as' => 'quote.all',                   'uses' => 'Admin\QuoteController@all' ]);
	    Route::get(         'quote/available',           [ 'as' => 'quote.available',             'uses' => 'Admin\QuoteController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_EDIT_MANAGE);
	    Route::get(         'quote/{id}',                [ 'as' => 'quote.show',                  'uses' => 'Admin\QuoteController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_EDIT_MANAGE);
	    Route::post(        'quote',                     [ 'as' => 'quote.store',                 'uses' => 'Admin\QuoteController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_CREATE_MANAGE);
	    Route::put(         'quote/{id}',                [ 'as' => 'quote.update',                'uses' => 'Admin\QuoteController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_EDIT_MANAGE);
	    Route::delete(      'quote/{id}',                [ 'as' => 'quote.destroy',               'uses' => 'Admin\QuoteController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_DELETE_MANAGE);
	    Route::delete(      'quote/multiple/destroy',    [ 'as' => 'quote.multiple.destroy',      'uses' => 'Admin\QuoteController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_DELETE_MANAGE);
	    Route::post(        'quote/multiple/activate',   [ 'as' => 'quote.multiple.activate',     'uses' => 'Admin\QuoteController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_EDIT_MANAGE);
	    Route::post(        'quote/multiple/deactivate', [ 'as' => 'quote.multiple.deactivate',   'uses' => 'Admin\QuoteController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_QUOTE_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_QUOTE_EDIT_MANAGE);

        //Report
        Route::get(         'report',                     [ 'as' => 'report.list',                  'uses' => 'Admin\ReportController@index' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_ONLY_MANAGE);
        Route::get(         'report/all',                 [ 'as' => 'report.all',                   'uses' => 'Admin\ReportController@all' ]);
        Route::get(         'report/available',           [ 'as' => 'report.available',             'uses' => 'Admin\ReportController@available' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_EDIT_MANAGE);
        Route::get(         'report/{id}',                [ 'as' => 'report.show',                  'uses' => 'Admin\ReportController@show' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_EDIT_MANAGE);
        Route::get(         'report/download/{id}',       [ 'as' => 'report.download',              'uses' => 'Admin\ReportController@download' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_ONLY_MANAGE);
        Route::post(        'report',                     [ 'as' => 'report.store',                 'uses' => 'Admin\ReportController@store' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_CREATE_MANAGE);
        Route::put(         'report/{id}',                [ 'as' => 'report.update',                'uses' => 'Admin\ReportController@update' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_EDIT_MANAGE);
        Route::delete(      'report/{id}',                [ 'as' => 'report.destroy',               'uses' => 'Admin\ReportController@destroy' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_DELETE_MANAGE);
        Route::delete(      'report/multiple/destroy',    [ 'as' => 'report.multiple.destroy',      'uses' => 'Admin\ReportController@destroyMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_DELETE_MANAGE);
        Route::post(        'report/multiple/activate',   [ 'as' => 'report.multiple.activate',     'uses' => 'Admin\ReportController@activateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_EDIT_MANAGE);
        Route::post(        'report/multiple/deactivate', [ 'as' => 'report.multiple.deactivate',   'uses' => 'Admin\ReportController@deactivateMultiple' ])->middleware('permission:' . \App\Laravue\Acl::PERMISSION_REPORT_MANAGE . '|' . \App\Laravue\Acl::PERMISSION_REPORT_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/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/{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::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::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::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);
    });
});
