<?php
/*
 * For Admin Section
 */

    Route::get('/', function () {
        return redirect('/admin');
    });

Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['admin.guest']], function () {
    Route::get('/', 'Auth\LoginController@showLoginForm')->name('admin.login');
    Route::get('login', 'Auth\LoginController@showLoginForm')->name('admin.login');
    Route::post('login', 'Auth\LoginController@login')->name('admin.login');
    Route::get('reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('admin.password.request');
    Route::post('email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('admin.password.email');
    Route::get('reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('admin.password.reset');
    Route::post('reset-password', 'Auth\ResetPasswordController@reset')->name('admin.password.reset-password');
    Route::post('reset-password', 'Auth\ResetPasswordController@reset')->name('admin.password.update');
});

Route::group(['namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => ['admin.auth']], function () {

    Route::get('dashboard', 'AdminDashboardController@index')->name('admin.dashboard');
    Route::get('logout', 'Auth\LoginController@logout')->name('admin.logout');

    /*
     * For users Section
     */

    Route::any('users/admin/list', 'AdminUserController@allAdmins')->name('admin.users.admin.list');
    Route::any('users/event-organizer/list', 'AdminUserController@allEventOrganizers')->name('admin.users.event-organizer.list');
    Route::any('users/restaurant-owner/list', 'AdminUserController@allRestaurantOwners')->name('admin.users.restaurant-owner.list');
    Route::any('users/family-member/list', 'AdminUserController@allFamilyMembers')->name('admin.users.family-member.list');
    Route::any('users/sponsor/list', 'AdminUserController@allSponsors')->name('admin.users.sponsor.list');
    Route::any('users/role/list', 'AdminUserController@allRoles')->name('admin.users.role.list');

    Route::post('user/change_status', 'AdminUserController@changeStatus');

    Route::get('users/admin/edit/{id}', 'AdminUserController@editAdminUser');
    Route::post('users/admin/save', 'AdminUserController@updateAdminUser');
    Route::get('users/admin/show/{id}', 'AdminUserController@showAdminUser');

    Route::get('users/event-organizer/edit/{id}', 'AdminUserController@editEventOrganizerUser');
    Route::post('users/event-organizer/save', 'AdminUserController@updateEventOrganizerUser');
    Route::get('users/event-organizer/show/{id}', 'AdminUserController@showEventOrganizerUser');

    Route::get('users/restaurant-owner/edit/{id}', 'AdminUserController@editRestaurantOwnerUser');
    Route::post('users/restaurant-owner/save', 'AdminUserController@updateRestaurantOwnerUser');
    Route::get('users/restaurant-owner/show/{id}', 'AdminUserController@showRestaurantOwnerUser');

    Route::get('users/family-member/edit/{id}', 'AdminUserController@editFamilyMemberUser');
    Route::post('users/family-member/save', 'AdminUserController@updateFamilyMemberUser');
    Route::get('users/family-member/show/{id}', 'AdminUserController@showFamilyMemberUser');

    Route::get('users/sponsor/edit/{id}', 'AdminUserController@editSponsorUser');
    Route::post('users/sponsor/save', 'AdminUserController@updateSponsorUser');
    Route::get('users/sponsor/show/{id}', 'AdminUserController@showSponsorUser');


    //Route::get('users/{userType}/edit/{id}', 'AdminUserController@editUser');
    
    //Route::get('users/{userType}/show/{id}', 'AdminUserController@show');
    //Route::post('user/delete', 'AdminUserController@deleteUser');

    Route::get('users/{userType}/add', 'AdminUserController@add');
    Route::post('users/{userType}/save', 'AdminUserController@save');

    /*
     * For services Section
     */
    Route::get('services/all-services', 'AdminServicesController@allServices')->name('admin.services.services');
    Route::get('get-services', ['as' => 'get-services', 'uses' => 'AdminServicesController@getServices']);
    Route::get('services/service-types', 'AdminServicesController@allServiceType')->name('admin.service.types');
    Route::get('get-services-types', ['as' => 'get-services', 'uses' => 'AdminServicesController@getServiceTypes']);
    Route::get('services/service-type/add', 'AdminServicesController@addServiceType')->name('admin.service.type.add');
    Route::post('services/service-type/add', 'AdminServicesController@saveServiceType')->name('admin.service.type.add');
    Route::get('services/service-type/edit/{id}', 'AdminServicesController@editServiceType')->name('admin.service.type.edit');
    Route::post('services/service-type/edit', 'AdminServicesController@updateServiceType')->name('admin.service.type.edit');
    Route::post('services/serviceType/change_status', 'AdminServicesController@changeServiceTypeStatus');
    Route::get('services/res-night', 'AdminServicesController@allResNightService')->name('admin.services.res-night');
    Route::any('services/nightlife', 'AdminServicesController@allNightlifeService')->name('admin.services.nightlife');
    Route::get('services/get-res-night', ['as' => 'get-res-night', 'uses' => 'AdminServicesController@getResNightService']);
    Route::post('services/res-night/change_status', 'AdminServicesController@resNightChangeStatus');
    Route::get('services/res-night/edit/{id}', 'AdminServicesController@editResNightService')->name('admin.services.res-night.edit');
    Route::post('services/res-night/update', 'AdminServicesController@updateResNightService');
    Route::get('services/res-night/show/{id}', 'AdminServicesController@showResNightService')->name('admin.services.res-night.show');
    Route::get('services/res-night-api', 'AdminServicesController@findResNightServiceFromGoogleAPI')->name('admin.services.res-night-api');
    Route::post('services/saveResAPI', 'AdminServicesController@saveResNightServiceFromGoogleAPI')->name('admin.services.saveResAPI');
    Route::get('services/slug', 'AdminSettingController@resNightMakeSlug');

    Route::get('services/professional', 'AdminServicesController@getProfessionalService')->name('admin.services.professional');
    Route::post('services/professional/change_status', 'AdminServicesController@professionalServiceChangeStatus');
    Route::get('services/professional/show/{id}', 'AdminServicesController@showProfessionalService')->name('admin.services.professional.show');
    Route::get('services/blockDates', 'AdminServicesController@getBlockDates');
    Route::get('services/resNightBlockDates', 'AdminServicesController@getResNightBlockDates');
    
    /*
     * For cuisine Section
     */
    Route::get('cuisines/all-cuisines', 'AdminCuisinesController@allCuisines')->name('admin.cuisines.cuisines');
    Route::get('get-cuisines', ['as' => 'get-cuisines', 'uses' => 'AdminCuisinesController@getCuisines']);
    Route::get('cuisines/add', 'AdminCuisinesController@addCuisine')->name('admin.cuisines.add');
    Route::post('cuisines/add', 'AdminCuisinesController@saveCuisine')->name('admin.cuisines.add');
    Route::get('cuisines/edit/{id}', 'AdminCuisinesController@editCuisine')->name('admin.cuisines.edit');
    Route::post('cuisines/edit', 'AdminCuisinesController@updateCuisine')->name('admin.cuisines.edit');
    Route::post('cuisines/change_status', 'AdminCuisinesController@changeStatus');

    /*
     * For Bookings section
     */
    Route::group(['prefix' => 'bookings', 'as' => 'admin.bookings.'], function() {
        Route::get('restaurant', 'AdminBookingsController@restaurant')->name('restaurant');
        Route::get('restaurant/list/{id}', 'AdminBookingsController@restaurantList')->name('restaurant.list');
        Route::get('nightlife', 'AdminBookingsController@nightlife')->name('nightlife');
        Route::get('nightlife/list/{id}', 'AdminBookingsController@nightlifeList')->name('nightlife.list');
        Route::get('professional', 'AdminBookingsController@professional')->name('professional');
        Route::get('professional/list/{id}', 'AdminBookingsController@professionalList')->name('professional.list');
    });

    /*
     * For Payment section
     */
    Route::get('payment/withdraw', 'AdminPaymentController@withdrawProviderList')->name('admin.payment.withdraw');
    Route::get('payment/get-withdraw-request-providers', 'AdminPaymentController@withdrawProviderList');
    Route::get('payment/withdraw-list/{id}', 'AdminPaymentController@withdrawList');
    Route::any('payment/change-withdraw-request-status', 'AdminPaymentController@changeWithdrawResquestStatus');    

    /*
     * For Subscription Plan section
     */
    Route::get('subscriptions', 'AdminSubscriptionController@index')->name('admin.subscriptions.index');
    Route::get('subscriptions/show/{id}', 'AdminSubscriptionController@show')->name('admin.subscriptions.show');
    Route::get('subscriptions/add', 'AdminSubscriptionController@create')->name('admin.subscriptions.add');
    Route::post('subscriptions/add', 'AdminSubscriptionController@store')->name('admin.subscriptions.add');
    Route::get('subscriptions/edit/{id}', 'AdminSubscriptionController@edit')->name('admin.subscriptions.edit');
    Route::post('subscriptions/edit/{id}', 'AdminSubscriptionController@update')->name('admin.subscriptions.edit');
    Route::get('subscriptions/delete/{id}', 'AdminSubscriptionController@destroy')->name('admin.subscriptions.delete');

    /*
     * For Help & Support section
     */
    Route::get('help-support', 'AdminHelpSupportController@index')->name('admin.help-support.index');
    Route::get('help-support/show/{id}', 'AdminHelpSupportController@show')->name('admin.help-support.show');
    Route::get('help-support/edit/{id}', 'AdminHelpSupportController@edit')->name('admin.help-support.edit');
    Route::post('help-support/edit/{id}', 'AdminHelpSupportController@update')->name('admin.help-support.edit');

    /*
     * For setting Section
     */
    Route::get('setting/home-banner', 'AdminSettingController@homeBanner')->name('admin.setting.homeBanner');

    Route::get('setting/home-banner/list', 'AdminSettingController@getHomeBanners')->name('admin.setting.homeBanner.list');

    Route::post('setting/home-banner/change-status', 'AdminSettingController@changeHomeBannerStatus')->name('admin.setting.homeBanner.changeStatus');

    Route::get('setting/homebanner/add', 'AdminSettingController@homeBannerAdd')->name('admin.setting.homeBanner.add');

    Route::post('setting/homebanner/add', 'AdminSettingController@homeBannerSave')->name('admin.setting.homeBanner.add');

    Route::get('setting/homebanner/delete/{id}', 'AdminSettingController@homeBannerDelete');

    /*
     * For setting content
     */
    Route::get('setting/content', 'AdminSettingController@content')->name('admin.setting.content');
    Route::get('setting/content/list', 'AdminSettingController@getContent')->name('admin.setting.content.list');
    Route::get('setting/content/edit/{id}', 'AdminSettingController@editContent')->name('admin.setting.content.edit');
    Route::post('setting/content/edit', 'AdminSettingController@updateContent')->name('admin.setting.content.edit');

    /*
     * For CMS section
     */
    Route::get('setting/cms', 'AdminSettingController@getCms')->name('admin.setting.cms');
    Route::get('setting/cms/show/{id}', 'AdminSettingController@showCms')->name('admin.setting.cms.show');
    Route::get('setting/cms/edit/{id}', 'AdminSettingController@editCms')->name('admin.setting.cms.edit');
    Route::post('setting/cms/update/{id}', 'AdminSettingController@updateCms')->name('admin.setting.cms.update');

    /*
     * For Notification section
     */
    Route::post('update_device_token', 'AdminNotificationController@update_device_token')->name('admin.update_device_token');
    Route::get('getAllNotification', 'AdminNotificationController@getAllNotification')->name('admin.getAllNotification');

    //------------------------------------



    /*
     * For edit profile
     */
    //Route::get('edit-profile', 'AdminUsersController@getEditProfile');
    //Route::post('edit-profile', ['as' => 'edit-profile', 'uses' => 'AdminUsersController@postEditProfile']);

    /*
     * For change password
     */
    //Route::get('change-password', 'AdminUsersController@getChangePassword');
    //Route::post('change-password', ['as' => 'change-password', 'uses' => 'AdminUsersController@postChangePassword']);

    /*
     * For description Section
     */
    // Route::get('description', 'AdminDescriptionController@index')->name('admin.description');
    // Route::get('get-description', 'AdminDescriptionController@getDescription');
    // Route::get('description/add', 'AdminDescriptionController@create')->name('admin.description.add');
    // Route::get('description/edit/{id}', 'AdminDescriptionController@edit');
    // Route::post('description/save', 'AdminDescriptionController@save')->name('description.save');
    // Route::post('description/update', 'AdminDescriptionController@update_description')->name('description.update');
    // Route::get('description/delete/{id}', 'AdminDescriptionController@delete');

    /*
     * For image Section
     */
    // Route::get('image', 'AdminImageController@index')->name('admin.image');
    // Route::get('image/add', 'AdminImageController@create')->name('admin.image.add');
    // Route::post('image/save', 'AdminImageController@save')->name('image.save');
    // Route::get('get-image', 'AdminImageController@getImage');
    // Route::get('image/delete/{id}', 'AdminImageController@delete');

    /*
     * For rsvp Section
     */

    // Route::get('rsvp', 'AdminRsvpController@index')->name('admin.rsvp');
    // Route::get('get-rsvp', 'AdminRsvpController@getRsvp');

    /*
     * For video Section
     */
    // Route::get('video', 'AdminVideoController@index')->name('admin.video');
    // Route::get('video/add', 'AdminVideoController@create')->name('admin.video.add');
    // Route::post('video/save', 'AdminVideoController@save')->name('video.save');
    // Route::get('get-video', 'AdminVideoController@getVideo');
    // Route::get('video/delete/{id}', 'AdminVideoController@delete');


    /*
     * For change home password
     */
    // Route::get('setting/change-home-password', 'AdminSettingController@getChangeHomePassword');
    // Route::post('setting/change-password', ['as' => 'change-password', 'uses' => 'AdminSettingController@postChangePassword']);

    /*
     * For Hotel Section
     */
    // Route::get('hotel', 'AdminHotelController@index')->name('admin.hotel');
    // Route::get('hotel/add', 'AdminHotelController@create')->name('admin.hotel.add');
    // Route::post('hotel/save', 'AdminHotelController@save')->name('hotel.save');
    // Route::get('get-hotel', 'AdminHotelController@getHotel');
    // Route::get('hotel/edit/{id}', 'AdminHotelController@edit');
    // Route::post('hotel/update', 'AdminHotelController@update_hotel')->name('hotel.update');
    // Route::get('hotel/delete/{id}', 'AdminHotelController@delete');


});
