<?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!
|
*/

use Illuminate\Support\Facades\Route;

//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/two-factor', 'Admin\Auth\LoginController@showTwoFactorForm')->name('admin.two_factor.form');
Route::post('/admin/two-factor', 'Admin\Auth\LoginController@verifyTwoFactor')->name('admin.two_factor.verify');
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('admin-business-cards', 'Admin\BusinessCardController@getIndex');
    Route::post('admin-business-cards/list', 'Admin\BusinessCardController@postList');
    Route::get('admin-business-cards/edit/{businessCardId?}', 'Admin\BusinessCardController@getEdit')->where('businessCardId', '[0-9]+');
    Route::get('admin-business-cards/downloadqr/{businessCardId?}', 'Admin\BusinessCardController@getDownloadQRCode')->where('businessCardId', '[0-9]+');
    Route::post('admin-business-cards/edit/{businessCardId?}', 'Admin\BusinessCardController@postEdit')->where('businessCardId', '[0-9]+');
    Route::post('admin-business-cards/delete', 'Admin\BusinessCardController@postDelete');
    Route::post('admin-business-cards/check-slug', 'Admin\BusinessCardController@postCheckSlug')
        ->middleware('auth.admin.permission:cms.manage');

    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('/', 'Admin\HomeController@getIndex');

    //Form EIC
    Route::get('contact/form-eic', 'Admin\AdminFormEic@getListFormEic')
        ->middleware('auth.admin.permission:cms.manage');
    Route::post('contact/form-eic', 'Admin\AdminFormEic@postListFormEic')
        ->middleware('auth.admin.permission:cms.manage');
    Route::post('contact/form-eic/delete', 'Admin\AdminFormEic@postDelete')
        ->middleware('auth.admin.permission:cms.manage');

    Route::get('contact/form-eic/view/{formId?}', 'Admin\AdminFormEic@getView')->where('formId', '[0-9]+');
    Route::get('contact/form-eic/download-document-company/{formId}', 'Admin\AdminFormEic@downloadDocumentCompany')->where('formId', '[0-9]+');
    Route::get('contact/form-eic/download-document-vat/{formId}', 'Admin\AdminFormEic@downloadDocumentVat')->where('formId', '[0-9]+');

    //Form Event Registration
    Route::get('contact/form-event-registration', 'Admin\AdminFormEventRegistration@getListFormEventRegistration')
        ->middleware('auth.admin.permission:cms.manage');
    Route::post('contact/form-event-registration', 'Admin\AdminFormEventRegistration@postListFormEventRegistration')
        ->middleware('auth.admin.permission:cms.manage');
    Route::get('contact/form-event-registration/export', 'Admin\AdminFormEventRegistration@getExport');
    Route::post('contact/form-event-registration/delete', 'Admin\AdminFormEventRegistration@postDelete');

    Route::get('contact/form-event-registration/view/{formId?}', 'Admin\AdminFormEventRegistration@getView')->where('formId', '[0-9]+');

    Route::get('form-responses', 'Admin\AdminFormResponses@getIndex');
    Route::post('form-responses/list', 'Admin\AdminFormResponses@postList');
    Route::post('form-responses/delete', 'Admin\AdminFormResponses@postDelete');
    Route::get('form-responses/view/{formId?}', 'Admin\AdminFormResponses@getView')->where('formId', '[0-9]+');
    Route::get('form-responses/export', 'Admin\AdminFormResponses@exportResponses');
});

// Public, signed cancellation link from the form confirmation email.
Route::get('forms/registration/cancel/{formResponse}', 'Frontend\FormRegistrationCancellationController@showConfirmation')
    ->name('form-response.cancel')
    ->middleware('signed:relative');

Route::post('forms/registration/cancel/{formResponse}', 'Frontend\FormRegistrationCancellationController@cancel')
    ->middleware('signed:relative');

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

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