Current File : /home/tradevaly/www/routes/web.php
<?php

use App\Http\Controllers\Admin\AboutController;
use App\Http\Controllers\Admin\FeaturesController;
use App\Http\Controllers\Admin\BannerController;
use App\Http\Controllers\Admin\CategoryController;
use App\Http\Controllers\Admin\BusinessController;
use App\Http\Controllers\Admin\tagsController;
use App\Http\Controllers\Admin\PackageController;
use App\Http\Controllers\Admin\MassegesController;
use App\Http\Controllers\Admin\RoleController;
use App\Http\Controllers\Admin\TopMenuController;
use App\Http\Controllers\Admin\TradeShowController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\Frontend\ContactController;
use App\Http\Controllers\Frontend\RfqController;
use App\Http\Controllers\Frontend\FrontendController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\Admin\NewsController;
use App\Http\Controllers\Admin\EmailController;
use App\Http\Controllers\Admin\SiteSettingController;
use App\Http\Controllers\Admin\NotificationController;
use App\Http\Controllers\user\Progress;

use App\Models\Banner;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;



Route::get('/maintains', 'HomeController@maintainMode')->name('maintainMode');

Route::group(['middleware' => "maintaince"],function(){

    Route::get('/logout', function(){
   Auth::logout();
   return Redirect::to('login');
});

Route::get('/terms', function () {
    return view('frontend.pages.terms');
});
Route::get('/privacy&policy', function () {
    return view('frontend.pages.privacy&policy');
});
Route::get('/countrycheck', function () {
    return visitorip();
});
 Route::get('/clear', function() {
     \Artisan::call('config:cache');
     \Artisan::call('view:clear');
     \Artisan::call('optimize:clear');
     \Artisan::call('cache:clear');
    \Artisan::call('route:clear');
     return 'View cache cleared';
 });
  Route::group(['prefix'=> '/', 'as'=> 'front.'],function(){
    Route::group(['prefix' => '/category' ,'as' => 'category.'] ,function(){
        Route::get('/detials/{id}',[FrontendController::class,'category_details'])->name('details');
    });
 });

Route::get('payment-status-update','HomeController@payment')->name('payment');

Route::post('/stripe/create-checkout-session', 'SubscriptionController@create_checkout_session')->name('stripe.get_token');
Route::any('/stripe/payment/callback', 'StripePaymentController@callback')->name('stripe.callback');
Route::get('stripe/{slug}', 'SubscriptionController@stripe');
Route::post('subscribe/{slug}', 'SubscriptionController@stripePost')->name('stripe.post');

Route::get('/', 'HomeController@index')->name('homepage');
Route::post('/registers', 'HomeController@register')->name('user.register');
Route::get('/cronJobs', 'HomeController@cronJobs')->name('cronJobs');
Route::post('/submit_registers/{id}', 'SubscriptionController@register')->name('submit.register');
Route::get('/country', 'HomeController@country')->name('country');
Route::get('/countries', 'HomeController@countries')->name('countries');
Route::get('/about-us', 'HomeController@about_us')->name('about_us');
Route::get('/events/{slug}', 'HomeController@events')->name('events');
Route::get('/feature/{id}', 'Admin\PackageController@features')->name('package.getfeature');
Route::get('/categories/{slug}', 'HomeController@categories')->name('category');
Route::get('/all_categories', 'HomeController@all_categories')->name('allcategory');
Route::get('/buy/view_more', 'HomeController@all_categories')->name('buy.more');
Route::get('/product/view_more', 'HomeController@all_product')->name('product.more');
Route::get('/viefied/seller/products', 'HomeController@verified_products')->name('verified.products');
Route::get('/viefied/cronjobsfeature', 'HomeController@cronJobsfeature')->name('cronJobsfeature');
Route::get('/buy/offer/{slug}', 'OfferController@buy_offer')->name('buy.view');
Route::get('/product/{slug}', 'ProductController@view')->name('product.view');
Route::any('/product/inquery/{slug}', 'HomeController@inquery')->name('product.inquery')->middleware(['auth']);
Route::any('/company/inquery/{slug}', 'HomeController@inquery_contact')->name('company.inquery')->middleware(['auth']);
Route::get('/importers/{slug}', 'HomeController@list_tag')->name('list.tag');
Route::get('/products_tags/{slug}', 'ProductController@list_tag')->name('product.tag');
Route::any('/premium-services/{slug}', 'SubscriptionController@buy')->name('subscription.buy');
Route::any('/premium_services/apply/{slug}', 'SubscriptionController@apply')->name('subscription.apply');
Route::any('/premium-service', 'SubscriptionController@package')->name('packages');
Route::any('/stripe/success/{id}', 'SubscriptionController@stripe_success')->name('stripe.success');
Route::get('/region/{country}', 'HomeController@index')->name('region.change');
Route::get('/supplier/{username}', 'UserController@supplier')->name('supplier.view');
Route::get('/buyers', 'HomeController@buyers')->name('buyers');
Route::get('/products', 'HomeController@products')->name('products');
Route::get('/companies', 'HomeController@companies')->name('companies');
Route::get('/companies/initial/{a}', 'HomeController@alcompanies')->name('alcompanies');
Route::any('/company/contact/{slug}', 'HomeController@contact')->name('company.contact')->middleware(['auth']);
Route::get('/manufacturers', 'HomeController@manufacturers')->name('manufacturers');
Route::get('/search', 'HomeController@search')->name('search');
Route::any('/ajax_cat', 'HomeController@ajax_cat')->name('ajax.cat');
Route::any('/ajax_subcat', 'HomeController@ajax_subcat')->name('ajax.subcat');
Route::any('/country_code', 'HomeController@country_code')->name('country.code');
Route::get('/news/{slug}', 'NewsController@view')->name('news.view');

Route::any('/payment/success', 'SubscriptionController@payment_success')->name('payment.success');
Route::any('/payment/cancel', 'SubscriptionController@payment_cancel')->name('payment.cancel');
Route::get('/related/seller/list/', 'HomeController@related_seller_list')->name('related_seller_list')->middleware(['auth']);;
Route::get('/related/buyer/list/', 'HomeController@related_buyer_list')->name('related_buyer_list')->middleware(['auth']);;
Route::get('/get/banner/amount', 'HomeController@get_banner_amount')->name('get_banner_amount');


    Route::get('/logins', function () {
        return view('frontend.pages.login');
    });

    Route::get('/about_us', function () {
        return view('frontend.pages.contact');
});

Route::get('/company_overview', function () {
    return view('frontend.pages.company_overview');
});

Route::get('/user-login', function () {
    return view('frontend.pages.login');
});


Auth::routes(['verify' => true]);
Route::match(['get', 'post'], 'contact',[ContactController::class ,'contact'])->name('contact');
Route::match(['get', 'post'], '/help',[ContactController::class ,'help'])->name('help');
Route::match(['get', 'post'], 'rfq',[RfqController::class ,'add'])->name('rfq');

});



Route::group(['prefix' => 'b2b/' ,'as'=>'admin.','namespace' => 'Admin'] , function () {
    
    Route::get('masseges',[MassegesController::class ,'index'])->name('massege');
    Route::match(['get', 'post'], 'addProduct',[AboutController::class ,'addProduct'])->name('productAdd')->middleware('admin:admin,admin_add');
    Route::match(['get', 'post'], 'advertiser/banner',[AboutController::class ,'advertiser_banner'])->name('advertiser_banner');
    Route::match(['get','post'],'update-pass/admin', [UserController::class,'password_admin'])->name('password_admin');
    Route::get("/add-user",[aboutController::class, "addUser"])->name("addUser");
    Route::match(['get', 'post'], 'admin_login',[AdminController::class ,'login'])->name('login');
    Route::group([],function () {
    Route::match(['get', 'post'], 'logo',[AboutController::class ,'uploadLogo'])->name('logo');
        Route::get('dashboard',[AdminController::class ,'index'])->name('dashboard')->middleware('admin:admin,admin_dashboard');
        Route::get('logout',[AdminController::class ,'logout'])->name('logout');
        Route::get('secretlogin/{id}',[AdminController::class ,'secretlogin'])->name('secrretlogin');
        Route::match(['get', 'post'], 'add',[AdminController::class ,'add'])->name('add');
        Route::any('edit/pages/{id}',[AdminController::class ,'editpages'])->name('editpages');
        Route::match(['get', 'post'], 'pages',[AdminController::class ,'pages'])->name('pages');
        Route::group(['prefix' => 'package/' ,'as'=>'package.','middleware' => "admin:admin,admin_packages"] , function () {
            Route::get('index',[PackageController::class ,'index'])->name('index');
            Route::get('feature/list',[PackageController::class ,'feature_list'])->name('feature_list');
            Route::get('feature/list/show/{id}',[PackageController::class ,'feature_list_show'])->name('feature_list.show');
            Route::post('feature/list/update/{id}',[PackageController::class ,'feature_list_update'])->name('feature_list.update');
            Route::get('feature/list/status/{id}',[PackageController::class ,'feature_list_status'])->name('feature_list.status');
            Route::post('update-package-status',[PackageController::class ,'updatePackageStatus'])->name('updatePackageStatus');
            Route::match(['get', 'post'], 'edit/{id}',[PackageController::class ,'edit'])->name('edit');
            Route::match(['get', 'post'], 'add',[PackageController::class ,'add'])->name('add');
            Route::match(['get', 'post'], 'add',[PackageController::class ,'add'])->name('add');
            Route::get('delete/{id}',[PackageController::class ,'delete'])->name('delete');

            Route::get('/featured/edit/status/{id}', 'PackageController@featured_edit_status')->name('feature_edit_status');
            Route::get('/featured/{id}', 'PackageController@featured')->name('featured');
            Route::any('/featured_add/{id}', 'PackageController@featured_add')->name('addfeatured');
            Route::any('/featured_edit/{id}', 'PackageController@featured_edit')->name('editfeatured');
            Route::get('/featured_delete/{id}', 'PackageController@featured_delete')->name('deletefeatured');
        });
        Route::group(['prefix' => 'component/' ,'as'=>'component.','middleware' => "admin:admin,admin_mange_web_site"] , function () {
            Route::group(['prefix' => 'banner/' ,'as'=>'banner.'] , function () {
                Route::get('index',[BannerController::class ,'index'])->name('index');
                Route::get('buyers',[BannerController::class ,'buyers'])->name('buyers');
                Route::get('product',[BannerController::class ,'product'])->name('product');
                Route::get('contact',[BannerController::class ,'contact'])->name('contact');
                Route::get('company',[BannerController::class ,'company'])->name('company');
                Route::get('manufacture',[BannerController::class ,'manufacture'])->name('manufacture');
                Route::get('category',[BannerController::class ,'category'])->name('category');
                Route::post('update-banner-status',[BannerController::class ,'updateBannerStatus'])->name('updateBannerStatus');
                Route::match(['get', 'post'], 'edit/{id}',[BannerController::class ,'edit'])->name('edit');
                Route::match(['get', 'post'], 'home/page/edit/{id}',[BannerController::class ,'home_page_banner'])->name('home_page_banner');
                Route::match(['get', 'post'], 'add',[BannerController::class ,'add'])->name('add');
                Route::get('delete/{id}',[BannerController::class ,'delete'])->name('delete');
            });
        });

        Route::group(['prefix' => 'news/' ,'as'=>'news.','middleware' => "admin:admin,admin_mange_web_site"] , function () {
                Route::get('index',[NewsController::class ,'index'])->name('index');
                Route::match(['get', 'post'], 'edit/{id}',[NewsController::class ,'edit'])->name('edit');
                Route::match(['get', 'post'], 'add',[NewsController::class ,'add'])->name('add');
                Route::get('delete/{id}',[NewsController::class ,'delete'])->name('delete');
                Route::get('discount/edit',[NewsController::class ,'discount'])->name('discount');
                Route::post('discount/update',[NewsController::class ,'discount_update'])->name('discount_update');
        });
        Route::group(['prefix' => 'category/' ,'as'=>'category.','middleware' => "admin:admin,admin_category"] , function () {
            Route::any('index',[CategoryController::class ,'index'])->name('index');
            Route::any('subcat/{id?}',[CategoryController::class ,'subcat'])->name('subcat');
            Route::get('update-category-status/{id}',[CategoryController::class ,'updateCategoryStatus'])->name('updateCategoryStatus');
            Route::match(['get', 'post'], 'edit/{id}',[CategoryController::class ,'edit'])->name('edit');
            Route::match(['get', 'post'], 'add/{id?}',[CategoryController::class ,'add'])->name('add');
            Route::get('delete/{id}',[CategoryController::class ,'delete'])->name('delete');
        });
        Route::group(['prefix' => 'btype/' ,'as'=>'btype.','middleware' => "admin:admin,admin_category"] , function () {
            Route::any('index',[BusinessController::class ,'index'])->name('index');
            Route::post('update-category-status',[BusinessController::class ,'updateCategoryStatus'])->name('updateCategoryStatus');
            Route::match(['get', 'post'], 'edit/{id}',[BusinessController::class ,'edit'])->name('edit');
            Route::match(['get', 'post'], 'add/{id?}',[BusinessController::class ,'add'])->name('add');
            Route::match(['get', 'post'], 'subcat/{id?}',[BusinessController::class ,'subcat'])->name('subcat');
            Route::get('delete/{id}',[BusinessController::class ,'delete'])->name('delete');
        });
        Route::group(['prefix' => 'tags/' ,'as'=>'tags.','middleware' => "admin:admin,admin_tags"] , function () {
            Route::get('index',[tagsController::class ,'index'])->name('index');
            Route::match(['get', 'post'], 'add',[tagsController::class ,'add'])->name('add');
            Route::get('delete/{id}',[tagsController::class ,'delete'])->name('delete');
        });
        
        Route::group(['prefix' => 'trash/' ,'as'=>'trash.','middleware' => "admin:admin,admin_recycle_bin"] , function () {
            Route::group(['prefix' => 'users/' ,'as'=>'users.'] , function () {
                Route::match(['get', 'ajax'], 'index',[UserController::class ,'index_trash'])->name('index');
                Route::get('delete/{id}',[UserController::class ,'delete_trash'])->name('delete_trash');
                Route::get('restore/{id}',[UserController::class ,'restore_trash'])->name('restore_trash');
          });
          Route::group(['prefix' => 'category/' ,'as'=>'category.','middleware' => "admin:admin,admin_recycle_bin"] , function () {
            Route::any('index',[CategoryController::class ,'index_trash'])->name('index');
            Route::any('subcat/{id?}',[CategoryController::class ,'subcat_trash'])->name('subcat');
            Route::get('delete/{id}',[CategoryController::class ,'delete_trash'])->name('delete_trash');
            Route::get('trash_category_resore/{id}',[CategoryController::class ,'trash_category_resore'])->name('trash_category_resore');
        });
        });
        Route::group(['prefix' => 'buy_offer/' ,'as'=>'buy_offer.','middleware' => "admin:admin,admin_offers"] , function () {
            Route::get('index/{id?}',[AboutController::class ,'buy_offer'])->name('buy_offer');
            Route::get('pending',[AboutController::class ,'bpending'])->name('pending');
            Route::get('view/{id}',[AboutController::class ,'view'])->name('view');
            Route::get('approve/{id}',[AboutController::class ,'bapprove'])->name('approve');
            Route::get('reject/{id}',[AboutController::class ,'breject'])->name('reject');
        });
        Route::group(['prefix' => 'product_list/' ,'as'=>'product_list.','middleware' => "admin:admin,admin_products"] , function () {
            Route::get('index/{id?}',[AboutController::class ,'product_list'])->name('product_list');
            Route::get('pending',[AboutController::class ,'pending'])->name('pending');
        });
        Route::get('product/approve/{id}',[AboutController::class ,'approve'])->name('product.approve');
        Route::get('product/delete/{id}',[AboutController::class ,'pdelete'])->name('product.delete');
        Route::get('product/{slug}',[AboutController::class ,'pview'])->name('product.pview');


        Route::get('user/approve/{id}',[AboutController::class ,'uapprove'])->name('user.approve');


        Route::group(['prefix' => 'income_list/' ,'as'=>'income.','middleware' => "admin:admin,admin_income"] , function () {
            Route::get('index',[AboutController::class ,'income'])->name('index');
            Route::get('pending',[AboutController::class ,'pending'])->name('pending');
            Route::get('others',[AboutController::class ,'others'])->name('others');
            
            Route::get('invoice-details/{id}', [AboutController::class, 'IncomeInvoiceDetails'])->name('invoice_details');
            Route::get('money-receipt/{id}', [AboutController::class, 'IncomeMoneyReceipt'])->name('money_receipt');
            
        });
        
        Route::group(['prefix' => 'about/' ,'as'=>'about.','middleware' => "admin:admin,admin_mange_web_site"] , function () {
            Route::get('index',[AboutController::class ,'index'])->name('index');
            Route::post('update-about-status',[AboutController::class ,'updateAboutStatus'])->name('updateAboutStatus');
            Route::match(['get', 'post'], 'edit/{id}',[AboutController::class ,'edit'])->name('edit');
            Route::match(['get', 'post'], 'add',[AboutController::class ,'add'])->name('add');
            Route::get('delete/{id}',[AboutController::class ,'delete'])->name('delete');
        });
        Route::group(['prefix' => 'feature_product/' ,'as'=>'features.','middleware' => "admin:admin,admin_feature_product"] , function () {
            Route::get('index',[FeaturesController::class ,'index'])->name('index');
            Route::get('pending',[FeaturesController::class ,'pending'])->name('pending');
            Route::match(['get', 'post'], 'app/{id}',[FeaturesController::class ,'approve'])->name('approve');
            Route::match(['get', 'post'], 'delreq/{id}',[FeaturesController::class ,'delreq'])->name('delreq');
            Route::get('delete/{id}',[FeaturesController::class ,'delete'])->name('delete');
            Route::get('requestdelete/{id}',[FeaturesController::class ,'featur_request_delete'])->name('request_delete');
        });
        Route::group(['prefix' => 'feature_category/' ,'as'=>'cfeatures.','middleware' => "admin:admin,admin_feature_product"] , function () {
            Route::get('index',[FeaturesController::class ,'cindex'])->name('index');
            Route::match(['get', 'post'], 'add',[FeaturesController::class ,'cadd'])->name('add');
            Route::get('delete/{id}',[FeaturesController::class ,'cdelete'])->name('delete');
        });
        Route::group(['prefix' => 'top_menu/' ,'as'=>'top_menu.','middleware' => "admin:admin,admin_mange_web_site"] , function () {
            Route::get('index',[TopMenuController::class ,'index'])->name('index');
            Route::post('update-top_menu-status',[TopMenuController::class ,'updateTopMenuStatus'])->name('updateTopMenuStatus');
            Route::match(['get', 'post'], 'edit/{id}',[TopMenuController::class ,'edit'])->name('edit');
            Route::match(['get', 'post'], 'add',[TopMenuController::class ,'add'])->name('add');
            Route::get('delete/{id}',[TopMenuController::class ,'delete'])->name('delete');
        });
        Route::group(['prefix' => 'tradeShow/' ,'as'=>'tradeShow.','middleware' => "admin:admin,admin_mange_web_site"] , function () {
            Route::get('index',[TradeShowController::class ,'index'])->name('index');
            Route::match(['get', 'post'], 'edit/{id}',[TradeShowController::class ,'edit'])->name('edit');
            Route::match(['get', 'post'], 'add',[TradeShowController::class ,'add'])->name('add');
            Route::get('delete/{id}',[TradeShowController::class ,'delete'])->name('delete');
        });
        Route::group(['prefix' => 'contact/' ,'as'=>'top_menu.'] , function () {
            Route::get('view/{id}',[ContactController::class ,'view'])->name('view');
            Route::get('delete/{id}',[ContactController::class ,'delete'])->name('delete');
        });
        Route::group(['prefix' => 'contactus/' ,'as'=>'contuct_us.','middleware' => "admin:admin,admin_mange_web_site"] , function () {
            Route::get('index',[ContactController::class ,'index'])->name('index');
            Route::get('show/{id}',[ContactController::class ,'show'])->name('show');
            Route::get('delete/{id}',[ContactController::class ,'c_delete'])->name('delete');
        });
        Route::group(['prefix' => 'rfq/' ,'as'=>'rfq.','middleware' => "admin:admin,admin_rfqs"] , function () {
            Route::get('index',[RfqController::class ,'index'])->name('index');
            Route::get('approved/{id}',[RfqController::class ,'approved'])->name('approved');
            Route::get('show/{id}',[RfqController::class ,'show'])->name('show');
            Route::get('delete/{id}',[RfqController::class ,'delete'])->name('delete');
        });
        Route::group(['prefix' => 'user/management/' ,'as'=>'user_namagement.'] , function () {
            Route::group(['prefix' => 'admin/' ,'as'=>'admin.'] , function () {
                 Route::post('admin_store',[RoleController::class ,'admin_store'])->name('admin_store');
                 Route::get('admin_create',[RoleController::class ,'admin_create'])->name('admin_create');
                 Route::get('admin_index',[RoleController::class ,'admin_index'])->name('admin_index');
                 Route::get('admin_destroy/{id}',[RoleController::class ,'admin_destroy'])->name('admin_destroy');
            });
            
            Route::group(['prefix' => 'role/' ,'as'=>'role.'] , function () {
                 Route::get('index',[RoleController::class ,'index'])->name('index');
                 Route::get('create',[RoleController::class ,'create'])->name('create');
                 Route::post('store',[RoleController::class ,'store'])->name('store');
                 Route::put('update/{id}',[RoleController::class ,'update'])->name('update');
                 Route::get('show/{id}',[RoleController::class ,'show'])->name('show');
                 Route::get('destroy/{id}',[RoleController::class ,'destroy'])->name('destroy');
            });
        });
    });
});
Route::get('/lol', [App\Http\Controllers\HomeController::class, 'root'])->name('root');
Route::middleware('admin')->name('admin.')->group(function () {
    Route::controller('AdminController')->group(function(){
        Route::get('password', 'password')->name('password');
        Route::post('password', 'passwordUpdate')->name('password.update');

        //Notification
        Route::get('notifications','notifications')->name('notifications');
        Route::get('notification/read/{id}','notificationRead')->name('notification.read');
        Route::get('notifications/read-all','readAll')->name('notifications.readAll');

        //Report Bugs
        Route::get('request-report','requestReport')->name('request.report');
        Route::post('request-report','reportSubmit');

        Route::get('download-attachments/{file_hash}', 'downloadAttachment')->name('download.attachment');

    });

    // Users Manager
    Route::controller('ManageUsersController')->name('users.')->prefix('users')->group(function(){
        Route::get('/', 'allUsers')->name('all');
        Route::get('active', 'activeUsers')->name('active');
        Route::get('banned', 'bannedUsers')->name('banned');
        Route::get('email-verified', 'emailVerifiedUsers')->name('email.verified');
        Route::get('email-unverified', 'emailUnverifiedUsers')->name('email.unverified');
        Route::get('mobile-unverified', 'mobileUnverifiedUsers')->name('mobile.unverified');
        Route::get('kyc-unverified', 'kycUnverifiedUsers')->name('kyc.unverified');
        Route::get('kyc-pending', 'kycPendingUsers')->name('kyc.pending');
        Route::get('mobile-verified', 'mobileVerifiedUsers')->name('mobile.verified');
        Route::get('mobile-verified', 'mobileVerifiedUsers')->name('mobile.verified');
        Route::get('with-balance', 'usersWithBalance')->name('with.balance');

        Route::get('detail/{id}', 'detail')->name('detail');
        Route::get('kyc-data/{id}', 'kycDetails')->name('kyc.details');
        Route::post('kyc-approve/{id}', 'kycApprove')->name('kyc.approve');
        Route::post('kyc-reject/{id}', 'kycReject')->name('kyc.reject');
        Route::post('update/{id}', 'update')->name('update');
        Route::post('add-sub-balance/{id}', 'addSubBalance')->name('add.sub.balance');
        Route::get('send-notification/{id}', 'showNotificationSingleForm')->name('notification.single');
        Route::post('send-notification/{id}', 'sendNotificationSingle')->name('notification.single');
        Route::get('login/{id}', 'login')->name('login');
        Route::post('status/{id}', 'status')->name('status');

        Route::get('send-notification', 'showNotificationAllForm')->name('notification.all');
        Route::post('send-notification', 'sendNotificationAll')->name('notification.all.send');
        Route::get('notification-log/{id}', 'notificationLog')->name('notification.log');
    });

    // Deposit Gateway
    Route::name('gateway.')->prefix('gateway')->group(function(){

        // Automatic Gateway
        Route::controller('AutomaticGatewayController')->group(function(){
            Route::get('automatic', 'index')->name('automatic.index');
            Route::get('automatic/edit/{alias}', 'edit')->name('automatic.edit');
            Route::post('automatic/update/{code}', 'update')->name('automatic.update');
            Route::post('automatic/remove/{id}', 'remove')->name('automatic.remove');
            Route::post('automatic/activate/{code}', 'activate')->name('automatic.activate');
            Route::post('automatic/deactivate/{code}', 'deactivate')->name('automatic.deactivate');
        });


        // Manual Methods
        Route::controller('ManualGatewayController')->group(function(){
            Route::get('manual', 'index')->name('manual.index');
            Route::get('manual/new', 'create')->name('manual.create');
            Route::post('manual/new', 'store')->name('manual.store');
            Route::get('manual/edit/{alias}', 'edit')->name('manual.edit');
            Route::post('manual/update/{id}', 'update')->name('manual.update');
            Route::post('manual/activate/{code}', 'activate')->name('manual.activate');
            Route::post('manual/deactivate/{code}', 'deactivate')->name('manual.deactivate');
        });
    });


    // DEPOSIT SYSTEM
    Route::name('deposit.')->controller('DepositController')->prefix('deposit')->group(function(){
        Route::get('/', 'deposit')->name('list');
        Route::get('pending', 'pending')->name('pending');
        Route::get('rejected', 'rejected')->name('rejected');
        Route::get('approved', 'approved')->name('approved');
        Route::get('successful', 'successful')->name('successful');
        Route::get('initiated', 'initiated')->name('initiated');
        Route::get('details/{id}', 'details')->name('details');

        Route::post('reject', 'reject')->name('reject');
        Route::post('approve/{id}', 'approve')->name('approve');

    });


    // WITHDRAW SYSTEM
    Route::name('withdraw.')->prefix('withdraw')->group(function(){

        Route::controller('WithdrawalController')->group(function(){
            Route::get('pending', 'pending')->name('pending');
            Route::get('approved', 'approved')->name('approved');
            Route::get('rejected', 'rejected')->name('rejected');
            Route::get('log', 'log')->name('log');
            Route::get('details/{id}', 'details')->name('details');
            Route::post('approve', 'approve')->name('approve');
            Route::post('reject', 'reject')->name('reject');
        });


        // Withdraw Method
        Route::controller('WithdrawMethodController')->group(function(){
            Route::get('method/', 'methods')->name('method.index');
            Route::get('method/create', 'create')->name('method.create');
            Route::post('method/create', 'store')->name('method.store');
            Route::get('method/edit/{id}', 'edit')->name('method.edit');
            Route::post('method/edit/{id}', 'update')->name('method.update');
            Route::post('method/activate/{id}', 'activate')->name('method.activate');
            Route::post('method/deactivate/{id}', 'deactivate')->name('method.deactivate');
        });
    });

    //refer
    Route::controller('ReferralController')->name('referrals.')->prefix('referrals')->group(function(){
        Route::get('/', 'index')->name('index');
        Route::post('/', 'update')->name('update');
        Route::get('status/{id}', 'status')->name('status');
    });

    //Plan
    Route::get('/plan', 'PlanController@index')->name('plan.index');
    Route::post('/plan', 'PlanController@savePlan')->name('plan.save');


    //PTC ADS
    Route::controller('ManagePtcController')->name('ptc.')->prefix('ptc')->group(function(){
        Route::get('/', 'index')->name('index');
        Route::get('active', 'active')->name('active');
        Route::get('inactive', 'inactive')->name('inactive');
        Route::get('pending', 'pending')->name('pending');
        Route::get('rejected', 'rejected')->name('rejected');
        Route::get('create', 'create')->name('create');
        Route::post('store', 'store')->name('store');
        Route::get('edit/{id}', 'edit')->name('edit');
        Route::post('update/{id}', 'update')->name('update');
    });

    // Report
    Route::controller('ReportController')->name('report.')->prefix('report')->group(function(){
        Route::get('transaction', 'transaction')->name('transaction');
        Route::get('login/history', 'loginHistory')->name('login.history');
        Route::get('login/ipHistory/{ip}', 'loginIpHistory')->name('login.ipHistory');
        Route::get('notification/history', 'notificationHistory')->name('notification.history');
        Route::get('email/detail/{id}', 'emailDetails')->name('email.details');
        Route::get('ptcview', 'ptcview')->name('ptcview');
        Route::get('referral-commissions', 'commissions')->name('commissions');
    });


    // Admin Support
    Route::controller('SupportTicketController')->group(function(){
        Route::get('tickets', 'tickets')->name('ticket');
        Route::get('tickets/pending', 'pendingTicket')->name('ticket.pending');
        Route::get('tickets/closed', 'closedTicket')->name('ticket.closed');
        Route::get('tickets/answered', 'answeredTicket')->name('ticket.answered');
        Route::get('tickets/view/{id}', 'ticketReply')->name('ticket.view');
        Route::post('ticket/reply/{id}', 'replyTicket')->name('ticket.reply');
        Route::post('ticket/close/{id}', 'closeTicket')->name('ticket.close');
        Route::get('ticket/download/{ticket}', 'ticketDownload')->name('ticket.download');
        Route::post('ticket/delete/{id}', 'ticketDelete')->name('ticket.delete');
    });


    // Language Manager
    Route::controller('LanguageController')->group(function(){
        Route::get('/language', 'langManage')->name('language.manage');
        Route::post('/language', 'langStore')->name('language.manage.store');
        Route::post('/language/delete/{id}', 'langDelete')->name('language.manage.delete');
        Route::post('/language/update/{id}', 'langUpdate')->name('language.manage.update');
        Route::get('/language/edit/{id}', 'langEdit')->name('language.key');
        Route::post('/language/import', 'langImport')->name('language.import.lang');
        Route::post('language/store/key/{id}', 'storeLanguageJson')->name('language.store.key');
        Route::post('language/delete/key/{id}', 'deleteLanguageJson')->name('language.delete.key');
        Route::post('language/update/key/{id}', 'updateLanguageJson')->name('language.update.key');
    });

    Route::controller('GeneralSettingController')->group(function(){
        // General Setting
        Route::get('general-setting', 'index')->name('setting.index');
        Route::post('general-setting', 'update')->name('setting.update');

        // Logo-Icon
        Route::get('setting/logo-icon', 'logoIcon')->name('setting.logo.icon');
        Route::post('setting/logo-icon', 'logoIconUpdate')->name('setting.logo.icon');

        //Custom CSS
        Route::get('custom-css','customCss')->name('setting.custom.css');
        Route::post('custom-css','customCssSubmit');

        //Cookie
        Route::get('cookie','cookie')->name('setting.cookie');
        Route::post('cookie','cookieSubmit');

        //maintenance_mode
        Route::get('maintenance-mode','maintenanceMode')->name('maintenance.mode');
        Route::post('maintenance-mode','maintenanceModeSubmit');

        //maintenance_mode
        Route::get('ads-setting','adsSetting')->name('setting.ads');
        Route::post('ads-setting','adsSettingSubmit');

    });


    //KYC setting
    Route::controller('KycController')->group(function(){
        Route::get('kyc-setting','setting')->name('kyc.setting');
        Route::post('kyc-setting','settingUpdate');
    });

    //Notification Setting
    Route::name('setting.notification.')->controller('NotificationController')->prefix('notification')->group(function(){
        //Template Setting
        Route::get('global','global')->name('global');
        Route::post('global/update','globalUpdate')->name('global.update');
        Route::get('templates','templates')->name('templates');
        Route::get('template/edit/{id}','templateEdit')->name('template.edit');
        Route::post('template/update/{id}','templateUpdate')->name('template.update');

        //Email Setting
        Route::get('email/setting','emailSetting')->name('email');
        Route::post('email/setting','emailSettingUpdate');
        Route::post('email/test','emailTest')->name('email.test');

        //SMS Setting
        Route::get('sms/setting','smsSetting')->name('sms');
        Route::post('sms/setting','smsSettingUpdate');
        Route::post('sms/test','smsTest')->name('sms.test');
    });

    // Plugin
    Route::controller('ExtensionController')->group(function(){
        Route::get('extensions', 'index')->name('extensions.index');
        Route::post('extensions/update/{id}', 'update')->name('extensions.update');
        Route::post('extensions/status/{id}', 'status')->name('extensions.status');
    });


    //System Information
    Route::controller('SystemController')->name('system.')->prefix('system')->group(function(){
        Route::get('info','systemInfo')->name('info');
        Route::get('server-info','systemServerInfo')->name('server.info');
        Route::get('optimize', 'optimize')->name('optimize');
        Route::get('optimize-clear', 'optimizeClear')->name('optimize.clear');
    });


    // SEO
    Route::get('seo', 'FrontendController@seoEdit')->name('seo');


    // Frontend
    Route::name('frontend.')->prefix('frontend')->group(function () {

        Route::controller('FrontendController')->group(function(){
            Route::get('templates', 'templates')->name('templates');
            Route::post('templates', 'templatesActive')->name('templates.active');
            Route::get('frontend-sections/{key}', 'frontendSections')->name('sections');
            Route::post('frontend-content/{key}', 'frontendContent')->name('sections.content');
            Route::get('frontend-element/{key}/{id?}', 'frontendElement')->name('sections.element');
            Route::post('remove/{id}', 'remove')->name('remove');
        });

        // Page Builder
        Route::controller('PageBuilderController')->group(function(){
            Route::get('manage-pages', 'managePages')->name('manage.pages');
            Route::post('manage-pages', 'managePagesSave')->name('manage.pages.save');
            Route::post('manage-pages/update', 'managePagesUpdate')->name('manage.pages.update');
            Route::post('manage-pages/delete/{id}', 'managePagesDelete')->name('manage.pages.delete');
            Route::get('manage-section/{id}', 'manageSection')->name('manage.section');
            Route::post('manage-section/{id}', 'manageSectionUpdate')->name('manage.section.update');
        });

    });
});

Route::group(['prefix'=> '/cronjob', 'as'=> 'cronjob.'],function(){
    Route::get('/advertisement/{id}', 'CronjobController@advertisement')->name('advertisement');
      
});