<?php

// use App\Http\Controllers\BusinessController;
// use App\Http\Controllers\Modules;
// use Illuminate\Support\Facades\Route;

Route::get('/pricing', [Modules\Superadmin\Http\Controllers\PricingController::class, 'index'])->name('pricing');

Route::middleware('web', 'auth', 'language', 'AdminSidebarMenu', 'superadmin')->prefix('superadmin')->group(function () {
    Route::get('/install', [Modules\Superadmin\Http\Controllers\InstallController::class, 'index']);
    Route::get('/install/update', [Modules\Superadmin\Http\Controllers\InstallController::class, 'update']);
    Route::get('/install/uninstall', [Modules\Superadmin\Http\Controllers\InstallController::class, 'uninstall']);

    Route::get('/', [Modules\Superadmin\Http\Controllers\SuperadminController::class, 'index']);
    Route::get('/stats', [Modules\Superadmin\Http\Controllers\SuperadminController::class, 'stats']);

    Route::get('/{business_id}/toggle-active/{is_active}', [Modules\Superadmin\Http\Controllers\BusinessController::class, 'toggleActive']);

    Route::get('/users/{business_id}', [Modules\Superadmin\Http\Controllers\BusinessController::class, 'usersList']);
    Route::post('/update-password', [Modules\Superadmin\Http\Controllers\BusinessController::class, 'updatePassword']);

    Route::resource('/business', Modules\Superadmin\Http\Controllers\BusinessController::class);
    Route::get('/business/{id}/destroy', [Modules\Superadmin\Http\Controllers\BusinessController::class, 'destroy']);

    Route::resource('/packages', 'Modules\Superadmin\Http\Controllers\PackagesController');
    Route::get('/packages/{id}/destroy', [Modules\Superadmin\Http\Controllers\PackagesController::class, 'destroy']);

    Route::get('/settings', [Modules\Superadmin\Http\Controllers\SuperadminSettingsController::class, 'edit']);
    Route::put('/settings', [Modules\Superadmin\Http\Controllers\SuperadminSettingsController::class, 'update']);
    Route::get('/edit-subscription/{id}', [Modules\Superadmin\Http\Controllers\SuperadminSubscriptionsController::class, 'editSubscription']);
    Route::post('/update-subscription', [Modules\Superadmin\Http\Controllers\SuperadminSubscriptionsController::class, 'updateSubscription']);
    Route::resource('/superadmin-subscription', 'Modules\Superadmin\Http\Controllers\SuperadminSubscriptionsController');

    Route::get('/communicator', [Modules\Superadmin\Http\Controllers\CommunicatorController::class, 'index']);
    Route::post('/communicator/send', [Modules\Superadmin\Http\Controllers\CommunicatorController::class, 'send']);
    Route::get('/communicator/get-history', [Modules\Superadmin\Http\Controllers\CommunicatorController::class, 'getHistory']);

    Route::resource('/frontend-pages', 'Modules\Superadmin\Http\Controllers\PageController');
});

Route::middleware('web', 'SetSessionData', 'auth', 'language', 'timezone', 'AdminSidebarMenu')->group(function () {
    //Routes related to paypal checkout
    Route::get('/subscription/{package_id}/paypal-express-checkout', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'paypalExpressCheckout']);

    Route::get('/subscription/post-flutterwave-payment', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'postFlutterwavePaymentCallback']);

    Route::post('/subscription/initiate-onekhusa-payment', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'initiateOneKhusaPayment']);

    Route::post('/superadmin/subscription/initiate-onekhusa-ajax', [\Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'initiateOneKhusaPayment']);

    Route::post('/subscription/initiate-onekhusa-payment', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'initiateOneKhusaPayment'])
    ->name('subscription.initiate-onekhusa-payment')
    ->middleware(['web', 'auth']);

    Route::post('/subscription/pay-stack', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'getRedirectToPaystack']);
    Route::get('/subscription/post-payment-pay-stack-callback', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'postPaymentPaystackCallback']);

    //Routes related to pesapal checkout
    Route::get('/subscription/{package_id}/pesapal-callback', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'pesapalCallback'])->name('pesapalCallback');

    Route::get('/subscription/{package_id}/pay', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'pay']);
    Route::any('/subscription/{package_id}/confirm', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'confirm'])->name('subscription-confirm');
    Route::get('/all-subscriptions', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'allSubscriptions']);

    Route::get('/subscription/{package_id}/register-pay', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'registerPay'])->name('register-pay');

    Route::resource('/subscription', 'Modules\Superadmin\Http\Controllers\SubscriptionController');
});

// Route::group(['middleware' => ['auth', 'superadmin'], 'prefix' => 'superadmin'], function () {
//     // OneKhusa payment routes
//     Route::post('/initiate-onekhusa-payment', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'initiateOneKhusaPayment'])
//         ->name('superadmin.onekhusa.initiate');
    
//     Route::get('/onekhusa-checkout', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'oneKhusaCheckout'])
//         ->name('superadmin.onekhusa.payment.checkout');
    
//     Route::get('/onekhusa-payment-success/{reference?}', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'oneKhusaPaymentSuccess'])
//         ->name('superadmin.onekhusa.payment.success');
    
//     Route::get('/onekhusa-payment-failed', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'oneKhusaPaymentFailed'])
//         ->name('superadmin.onekhusa.payment.failed');
    
//     Route::post('/onekhusa-webhook', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'postOneKhusaPaymentCallback'])
//         ->name('superadmin.onekhusa.webhook');
// });

// Add these routes inside your superadmin middleware group
Route::group(['middleware' => ['auth', 'superadmin'], 'prefix' => 'superadmin'], function () {
    // OneKhusa payment routes
    Route::post('/initiate-onekhusa-payment', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'initiateOneKhusaPayment'])
        ->name('superadmin.onekhusa.initiate');
    
    Route::get('/onekhusa-payment-success/{reference?}', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'oneKhusaPaymentSuccess'])
        ->name('superadmin.onekhusa.payment.success');
    
    Route::get('/onekhusa-payment-failed', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'oneKhusaPaymentFailed'])
        ->name('superadmin.onekhusa.payment.failed');
    
    Route::post('/onekhusa-webhook', [Modules\Superadmin\Http\Controllers\SubscriptionController::class, 'postOneKhusaPaymentCallback'])
        ->name('superadmin.onekhusa.webhook');
});

Route::get('/page/{slug}', [Modules\Superadmin\Http\Controllers\PageController::class, 'showPage'])->name('frontend-pages');
