<?php

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

//Auth::routes();

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

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

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

    Route::get('users', 'Admin\FrontendUserController@getIndex');
    Route::post('users/list', 'Admin\FrontendUserController@postList');
    Route::post('users/delete', 'Admin\FrontendUserController@postDelete');

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

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

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

    Route::get('meal_food_users/{mealFoodId}', 'Admin\FoodController@getMealFoodUsers')->where(['menuId'=> '[0-9]+']);

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

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


Route::group(
    array(
        'prefix' => LaravelLocalization::setLocale(),
        'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ]
    ),
    function(){
        Route::get('{uriPath}', 'Frontend\GenericController@getIndex')
            ->where(['uriPath'=> '(.*)']);
    }
);

