restore composer.json, add mysqli extension

This commit is contained in:
2026-04-15 17:02:52 +05:00
commit 77cf56a348
4317 changed files with 1397107 additions and 0 deletions

127
routes/api.php Executable file
View File

@@ -0,0 +1,127 @@
<?php
use App\Http\Controllers\API\AuthController;
use App\Http\Controllers\API\BranchController;
use App\Http\Controllers\API\BrandController;
use App\Http\Controllers\API\CartController;
use App\Http\Controllers\API\CategoryController;
use App\Http\Controllers\API\CompanyController;
use App\Http\Controllers\API\OrderController;
use App\Http\Controllers\API\CompilationController;
use App\Http\Controllers\API\FavoriteController;
use App\Http\Controllers\API\FeedbackController;
use App\Http\Controllers\API\FirebaseController;
use App\Http\Controllers\API\PageController;
use App\Http\Controllers\API\PartnerController;
use App\Http\Controllers\API\PaymentSystemController;
use App\Http\Controllers\API\ProductController;
use App\Http\Controllers\API\ServiceController;
use App\Http\Controllers\API\SliderController;
use App\Http\Controllers\API\UsefulInfoController;
use App\Http\Controllers\API\RequestsController;
use App\Http\Controllers\API\SupportController;
use App\Http\Controllers\API\UserController;
use Illuminate\Support\Facades\Route;
// //
Route::prefix('oauth')->group(function () {
Route::post('/', [AuthController::class, 'auth']);
Route::post('/verify', [AuthController::class, 'verify']);
Route::post('/register', [AuthController::class, 'register']);
Route::post('/resend', [AuthController::class, 'resend']);
});
Route::middleware('auth:sanctum')->group(function () {
Route::post('/oauth/logout', [AuthController::class, 'logout']);
Route::delete('/user/me', [UserController::class, 'delete']);
Route::get('/user/me', [UserController::class, 'me']);
Route::put('/user/language', [UserController::class, 'changeLang']);
Route::put('/user/me', [UserController::class, 'update']);
Route::get('/user/orders', [OrderController::class, 'list']);
Route::get('/user/orders/{order_id}', [OrderController::class, 'show']);
Route::get('/favorites', [FavoriteController::class, 'index']);
Route::get('/user/requests', [RequestsController::class, 'getServiceRequests']);
Route::get('/user/requests/partner', [RequestsController::class, 'getPartnerRequests']);
Route::get('/user/requests/{service_request_id}', [RequestsController::class, 'show']);
// Route::post('/checkout/delivery-price', [OrderController::class, 'delivery_price']);
// Route::post('/checkout/installation-price', [OrderController::class, 'installation_price']);
Route::post('/checkout', [OrderController::class, 'checkout']);
Route::post('/checkout-preview', [OrderController::class, 'preview']);
Route::post('/order/{order_id}/payment-check-status', [OrderController::class, 'checkPaymentStatus']);
// Route::get('/favorites', [FavoriteController::class, 'index']);
Route::get('/products/{product_id}/favorites', [FavoriteController::class, 'store']);
Route::delete('/products/{product_id}/favorites', [FavoriteController::class, 'destroy']);
Route::post('/partners', [PartnerController::class, 'store']);
});
Route::get('/payment-systems/{type}', [PaymentSystemController::class, 'legal']);
Route::get('/branches', [BranchController::class, 'index']);
Route::get('/regions', [PageController::class, 'regions']);
Route::get('/powers', [PageController::class, 'powers']);
Route::get('/feedback', [FeedbackController::class, 'get']);
Route::get('/company', [CompanyController::class, 'get']);
Route::post("/support", [SupportController::class, 'store']);
Route::prefix('page')->group(function () {
Route::get('/about', [PageController::class, 'about']);
Route::get('/policy', [PageController::class, 'policy']);
});
Route::get('/brands', [BrandController::class, 'index']);
Route::prefix('sliders')->group(function () {
Route::get('/', [SliderController::class, 'index']);
Route::get('/{slider_id}', [SliderController::class, 'show']);
});
Route::get('/compilations/{id}', [CompilationController::class, 'show']);
Route::get('/compilations', [CompilationController::class, 'index']);
Route::prefix('useful-information')->group(function () {
Route::get('/', [UsefulInfoController::class, 'index']);
Route::get('/{id}', [UsefulInfoController::class, 'items']);
Route::get('/{id}/items/{item_id}', [UsefulInfoController::class, 'itemShow']);
});
Route::prefix('partners')->group(function () {
Route::get('/', [PartnerController::class, 'index']);
Route::get('/{partner_id}', [PartnerController::class, 'show']);
});
Route::get('problems', [ServiceController::class, 'getProblems']);
Route::prefix('services')->group(function () {
Route::get('/', [ServiceController::class, 'index']);
Route::get('/{esrvice_id}', [ServiceController::class, 'show']);
Route::post('/', [ServiceController::class, 'store'])->middleware('auth:sanctum');
});
Route::prefix('categories')->group(function () {
Route::get('/', [CategoryController::class, 'index']);
Route::get('/{category_id}/products', [CategoryController::class, 'products']);
Route::get('/{category_id}/filter', [CategoryController::class, 'filter']);
});
Route::get('/{brand_id}/products', [ProductController::class, 'productsByBrand']);
Route::get('/products/{product_id}', [ProductController::class, 'show']);
Route::get('/search', [ProductController::class, 'search']);
Route::post('/device', [FirebaseController::class, 'store']);
Route::prefix('cart')->group(function () {
Route::get('/', [CartController::class, 'getCart']);
Route::post('/', [CartController::class, 'addToCart']);
Route::delete('/{cart_id}', [CartController::class, 'delete']);
Route::put('/{cart}/add', [CartController::class, 'add']);
Route::put('/{cart}/decrease', [CartController::class, 'decrease']);
});
Route::any('/handle/{paysys}', function ($paysys) {
(new Goodoneuz\PayUz\PayUz)->driver($paysys)->handle();
});

18
routes/channels.php Executable file
View File

@@ -0,0 +1,18 @@
<?php
use Illuminate\Support\Facades\Broadcast;
/*
|--------------------------------------------------------------------------
| Broadcast Channels
|--------------------------------------------------------------------------
|
| Here you may register all of the event broadcasting channels that your
| application supports. The given channel authorization callbacks are
| used to check if an authenticated user can listen to the channel.
|
*/
Broadcast::channel('App.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});

8
routes/console.php Executable file
View File

@@ -0,0 +1,8 @@
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote')->hourly();

338
routes/web.php Executable file
View File

@@ -0,0 +1,338 @@
<?php
//use App\Http\Controllers\Apelsin\Controller as ApelsinController;
use App\Http\Controllers\Dashboard\AuthController;
use App\Http\Controllers\Dashboard\Controller as DashboardController;
use App\Http\Controllers\Dashboard\User\Controller as UserController;
use App\Http\Controllers\Dashboard\Role\Controller as RoleController;
use App\Http\Controllers\Dashboard\Product\Controller as ProductController;
use App\Http\Controllers\Dashboard\Compilation\Controller as CompilationController;
use App\Http\Controllers\Dashboard\Orders\Controller as OrdersController;
use App\Http\Controllers\Dashboard\Brand\Controller as BrandController;
use App\Http\Controllers\Dashboard\Post\Controller as PostController;
use App\Http\Controllers\Dashboard\Slider\Controller as SliderController;
use App\Http\Controllers\Dashboard\Category\Controller as CategoryController;
use App\Http\Controllers\Dashboard\SpecialOffer\Controller as SpecialOfferController;
use App\Http\Controllers\Dashboard\Page\Controller as PageController;
use App\Http\Controllers\Dashboard\Feedback\Controller as FeedbackController;
use App\Http\Controllers\Dashboard\Comment\Controller as CommentController;
use App\Http\Controllers\Dashboard\Billing\Controller as BillingController;
use App\Http\Controllers\Dashboard\Region\Controller as RegionController;
use App\Http\Controllers\Dashboard\City\Controller as CityController;
use App\Http\Controllers\Dashboard\Branch\Controller as BranchController;
use App\Http\Controllers\Dashboard\Company\CompanyController;
use App\Http\Controllers\Dashboard\ContractTemplate\ContractTemplateController;
use App\Http\Controllers\Dashboard\PaymentSystem\PaymentSystemItemController;
use App\Http\Controllers\Dashboard\PaymentSystem\PaymentSystemController;
use App\Http\Controllers\Dashboard\Notification\Controller as NotificationController;
use App\Http\Controllers\Dashboard\Log\Controller as LogController;
use App\Http\Controllers\Dashboard\Setting\Controller as SettingController;
use App\Http\Controllers\Dashboard\Currency\Controller as CurrencyController;
use App\Http\Controllers\Dashboard\Measurement\MeasurementController;
use App\Http\Controllers\Dashboard\Partner\Controller as PartnerController;
use App\Http\Controllers\Dashboard\PartnerRequest\Controller as PartnerRequestController;
use App\Http\Controllers\Dashboard\ServiceRequest\Controller as ServiceRequestController;
use App\Http\Controllers\Dashboard\Service\Controller as ServiceController;
use App\Http\Controllers\Dashboard\UsefulInfoController\Controller as UsefulInfoController;
use App\Http\Controllers\Dashboard\UsefulInfoItemController\Controller as UsefulInfoItemController;
use App\Http\Controllers\Dashboard\Power\PowerController;
use App\Http\Controllers\Dashboard\Problem\ProblemController;
use App\Http\Controllers\Dashboard\Status\StatusController;
use App\Http\Middleware\LocaleMiddleware;
//use App\Http\Controllers\Site\LocaleController as SiteLocaleController;
//use App\Http\Controllers\Site\PageController as SitePageController;
//use App\Http\Controllers\Site\ProductController as SiteProductController;
//use App\Http\Controllers\Site\FavoriteController as SiteFavoriteController;
//use App\Http\Controllers\Site\MainPageController as SiteMainPageController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::middleware('locale')->group(function () {
// Route::get('/', [SiteMainPageController::class, 'index'])->name('site.main.page');
// Route::get('locale/{lang}', [SiteLocaleController::class, 'setLocale'])->name('site.setLocale');
// Route::get('pages/{slug}', [SitePageController::class, 'getPage'])->name('site.default-page');
// Route::get('search', [SiteProductController::class, 'search'])->name('search');
// Route::middleware('authProfile')->group(function () {
// Route::get('favorites', [SiteFavoriteController::class, 'index'])->name('favorites');
// Route::get('favorites/store/{product}', [SiteFavoriteController::class, 'store']);
// Route::get('favorites/delete/{product}', [SiteFavoriteController::class, 'delete']);
// });
Route::prefix('category')->group(function () {
Route::get('/', 'CategoryController@all')->name('categories');
Route::get('/{category}', 'CategoryController@index')->name('category.view');
Route::get('/{category}/{Category}', 'CategoryController@show')->name('category.show');
Route::get('/{category}/{slug}/{Category}', 'CategoryController@showCatalog')->name('category.showParent');
Route::post('/filter/{category}', 'CategoryController@filter')->name('category.filter');
});
});
// Route::get('/sitemap.xml', 'Site\MainPageController@sitemap')->name('sitemap');
// Route::get('/payment/apelsin/{billing}', 'Apelsin\Controller@paymentOrder')->name('merchant.apelsin');
// Route::post('/payment/apelsin', 'Apelsin\Controller@payment');
// Route::match(['post', 'get'], 'pay/check/{order}', 'Site\CheckoutController@check')->name('pay_check');
Route::any('/pay/{paysys}/{key}/{amount}', function ($paysys, $key, $amount) {
$billing = App\Models\Billing::find($key);
$model = Goodoneuz\PayUz\Services\PaymentService::convertKeyToModel($key);
$url = route('pay_check', $billing->order_id); //request('redirect_url','/');
$pay_uz = new Goodoneuz\PayUz\PayUz;
$pay_uz
->driver($paysys)
->redirect($model, $amount, 860, $url);
})->name('payment.merchant');
Route::middleware([
LocaleMiddleware::class,
])->group(function () {
Route::get('login', [AuthController::class, 'showLoginForm'])->name('login');
Route::post('login', [AuthController::class, 'login'])->name('login');
Route::get('logout', [AuthController::class, 'logout'])->name('logout');
});
// Route::group(['prefix' => 'credit/apelsin/handle', 'namespace' => 'Apelsin'], function () {
// Route::post('confirm', [ApelsinController::class, 'confirm']);
// Route::post('confirm/status', 'Controller@status');
// // Route::post('send/test', 'Controller@test');
// Route::post('comment', 'Controller@comment');
// });
// Route::get('/testt/{order}', 'Apelsin\Controller@delivered');
Route::middleware(['blocked'])->get('/test', function () {
return 'This route uses the blocked middleware';
});
Route::middleware([
'auth:staff',
LocaleMiddleware::class,
'web',
// 'blocked'
])
->prefix('dashboard')
->group(function () {
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
Route::post('/count', [DashboardController::class, 'count'])->name('dashboard.count');
Route::get('change-lang/{lang}', [DashboardController::class, 'changeLang'])->name('dashboard.change-lang');
Route::resource('statuses', StatusController::class)->names('dashboard.statuses');
Route::resource('companies', CompanyController::class)->names('dashboard.companies')->only(['index', 'update']);
Route::resource('{paymentSystemId}/payment-system-items', PaymentSystemItemController::class)->names('dashboard.payment-system-items');
Route::resource('payment-systems', PaymentSystemController::class)->names('dashboard.payment-systems');
Route::resource('contract-templates', ContractTemplateController::class)->names('dashboard.contract-templates');
Route::resource('measurements', MeasurementController::class)->names('dashboard.measurements');
Route::resource('problems', ProblemController::class)->names('dashboard.problems');
Route::resource('powers', PowerController::class)->names('dashboard.powers');
Route::resource('partners', PartnerController::class)->names('dashboard.partners');
Route::resource('services', ServiceController::class)->names('dashboard.services');
Route::resource('usefulinfos', UsefulInfoController::class)->names('dashboard.usefulinfos');
Route::resource('{usefulinfos}/usefulinfoitems', UsefulInfoItemController::class)->names('dashboard.usefulinfoitems');
Route::resource('partner/requests', PartnerRequestController::class)
->names('dashboard.partner_requests')->only(['index', 'show', 'update']);
Route::resource('service/requests', ServiceRequestController::class)
->names('dashboard.service_requests')->only(['index', 'show', 'update']);
Route::group(['prefix' => 'users'], function () {
Route::get('/', [UserController::class, 'index'])->name('dashboard.users');
Route::get('/import', [UserController::class, 'import']);
Route::get('/export', [UserController::class, 'export'])->name('dashboard.users.export');
Route::get('add/hours', [UserController::class, 'addHours'])->name('dashboard.users.add.hours');
//Route::match(['get', 'post'], 'update/{user}', 'Controller@edit')->name('dashboard.users.update');
});
Route::group(['prefix' => 'logs'], function () {
Route::get('/', [LogController::class, 'index'])->name('dashboard.logs');
});
Route::prefix('staffs')->group(function () {
Route::get('/', [UserController::class, 'getStaffs'])->name('dashboard.staffs');
Route::match(['get', 'post'], 'store', [UserController::class, 'store'])->name('dashboard.staffs.store');
Route::match(['get', 'post'], 'update/{staff}', [UserController::class, 'update'])->name('dashboard.staffs.update');
Route::get('block/{staff}', [UserController::class, 'block'])->name('dashboard.staffs.block');
});
// Route::namespace('Notification')->prefix('notifications')->group(function () {
// Route::get('/', 'Controller@index')->name('dashboard.notifications');
// Route::post('/store', 'Controller@store')->name('dashboard.notifications.store');
// });
Route::group(['prefix' => 'orders'], function () {
Route::get('/', [OrdersController::class, 'index'])->name('dashboard.orders');
Route::get('/invoice/{order}', [OrdersController::class, 'invoice_print'])->name('dashboard.invoice_print');
Route::get('/view/{order}', [OrdersController::class, 'view'])->name('dashboard.orders.view');
Route::get('/search', [OrdersController::class, 'search'])->name('dashboard.orders.search');
Route::match(['get', 'post'], '/update/{order}', [OrdersController::class, 'update'])->name('dashboard.orders.edit');
Route::get('/filter', [OrdersController::class, 'filter'])->name('dashboard.orders.filter');
Route::get('/archive/{order}', [OrdersController::class, 'archive'])->name('dashboard.orders.archive');
Route::post('/archive', [OrdersController::class, 'mass_archived'])->name('dashboard.orders.mass_archived');
Route::get('/export', [OrdersController::class, 'export'])->name('dashboard.orders.export');
Route::get('/products/{product}', [OrdersController::class, 'product']);
Route::post('/product/search', [OrdersController::class, 'search_update']);
Route::post('/product/info/{product}', [OrdersController::class, 'product_info']);
Route::get('/status/{order}/{status}', [OrdersController::class, 'change_status'])->name('dashboard.orders.change-status');
Route::get('/payment-status/{order}/{status}', [OrdersController::class, 'changePaymentStatus'])->name('dashboard.orders.change-payment-status');
Route::post('/status', [OrdersController::class, 'comments'])->name('dashboard.orders.comments_status');
});
Route::group(['prefix' => 'brands'], function () {
Route::get('/', [BrandController::class, 'index'])->name('dashboard.brands');
Route::match(['get', 'post'], '/update/{brand}', [BrandController::class, 'update'])->name('dashboard.brand.update');
Route::match(['get', 'post'], '/store', [BrandController::class, 'store'])->name('dashboard.brand.store');
Route::get('/delete/{brand}', [BrandController::class, 'delete'])->name('dashboard.brand.delete');
});
Route::group(['prefix' => 'posts'], function () {
Route::get('/{lang}', [PostController::class, 'index'])->name('dashboard.posts');
Route::match(['get', 'post'], '/update/{lang}/{post}', [PostController::class, 'update'])->name('dashboard.post.update');
Route::match(['get', 'post'], '/store/{lang}', [PostController::class, 'store'])->name('dashboard.post.store');
Route::get('/delete/{post}', [PostController::class, 'delete'])->name('dashboard.post.delete');
Route::post('upload/image', [PostController::class, 'image_upload'])->name('dashboard.posts.image_upload');
});
Route::group(['prefix' => 'sliders'], function () {
Route::get('/', [SliderController::class, 'index'])->name('dashboard.sliders');
Route::match(['get', 'post'], '/update/{slider}', [SliderController::class, 'update'])->name('dashboard.slider.update');
Route::match(['get', 'post'], '/store', [SliderController::class, 'store'])->name('dashboard.slider.store');
Route::get('/delete/{slider}', [SliderController::class, 'delete'])->name('dashboard.slider.delete');
Route::post('position', [SliderController::class, 'position']);
});
Route::group(['prefix' => 'currency'], function () {
Route::get('/', [CurrencyController::class, 'index'])->name('dashboard.currency');
Route::match(['get', 'post'], '/store', [CurrencyController::class, 'store'])->name('dashboard.currency.store');
});
Route::group(['prefix' => 'branches'], function () {
Route::get('/', [BranchController::class, 'index'])->name('dashboard.branches');
Route::get('/preview/{branch}', [BranchController::class, 'show'])->name('dashboard.branches.show');
Route::match(['get', 'post'], '/store', [BranchController::class, 'store'])->name('dashboard.branches.store');
Route::match(['get', 'post'], '/update/{branch}', [BranchController::class, 'update'])->name('dashboard.branches.update');
Route::get('delete/{branch}', [BranchController::class, 'destroy'])->name('dashboard.branches.delete');
});
Route::group(['prefix' => 'specialOffers'], function () {
Route::get('/', [SpecialOfferController::class, 'index'])->name('dashboard.specialOffers');
Route::get('/preview/{specialOffer}', [SpecialOfferController::class, 'show'])->name('dashboard.specialOffers.show');
Route::match(['get', 'post'], '/store', [SpecialOfferController::class, 'store'])->name('dashboard.specialOffers.store');
Route::match(['get', 'post'], '/update/{specialOffer}', [SpecialOfferController::class, 'update'])->name('dashboard.specialOffers.update');
Route::get('delete/{specialOffer}', [SpecialOfferController::class, 'delete'])->name('dashboard.specialOffers.delete');
});
Route::group(['prefix' => 'settings'], function () {
Route::get('/', [SettingController::class, 'index'])->name('dashboard.settings');
Route::post('/update/{setting}', [SettingController::class, 'update'])->name('dashboard.settings.update');
Route::match(['get', 'post'], '/delivery', [SettingController::class, 'delivery'])->name('dashboard.settings.delivery');
});
Route::group(['prefix' => 'compilations'], function () {
Route::get('/', [CompilationController::class, 'index'])->name('dashboard.compilations');
Route::match(['get', 'post'], '/store', [CompilationController::class, 'store'])->name('dashboard.compilations.store');
Route::match(['get', 'post'], '/update/{compilation}', [CompilationController::class, 'update'])->name('dashboard.compilations.update');
Route::post('/product/search', [CompilationController::class, 'search']);
Route::get('/delete/{compilation}', [CompilationController::class, 'delete'])->name('dashboard.compilations.delete');
});
// Route::group(['prefix' => 'files', 'namespace' => 'File'], function () {
// Route::get('/', 'Controller@index')->name('dashboard.files');
// Route::post('/store', 'Controller@store')->name('dashboard.file.store');
// Route::get('/delete/{file}', 'Controller@delete')->name('dashboard.file.delete');
// });
Route::group(['prefix' => 'products'], function () {
Route::get('/', [ProductController::class, 'index'])->name('dashboard.products');
Route::match(['get', 'post'], '/import', [ProductController::class, 'import'])->name('dashboard.products.import');
Route::get('/export', [ProductController::class, 'export'])->name('dashboard.products.export');
Route::post('/preview/store', [ProductController::class, 'previewStore'])->name('dashboard.products.preview.store');
Route::match(['get', 'post'], '/store', [ProductController::class, 'store'])->name('dashboard.product.store');
Route::match(['get', 'post'], '/update/{product}', [ProductController::class, 'update'])->name('dashboard.product.update');
Route::get('/delete/{product}', [ProductController::class, 'delete'])->name('dashboard.product.delete');
Route::post('/delete/screen/{screen}', [ProductController::class, 'delete_screen'])->name('dashboard.product.screen.delete');
Route::get('/search', [ProductController::class, 'search'])->name('dashboard.product.search');
Route::get('/characteristics/{id}', [ProductController::class, 'characteristics'])->name('dashboard.product.characteristics');
Route::post('/mass/action', [ProductController::class, 'massAction'])->name('dashboard.products.mass.action');
});
Route::group(['prefix' => 'categories'], function () {
Route::get('/', [CategoryController::class, 'index'])->name('dashboard.categories');
Route::get('/json', [CategoryController::class, 'json']);
Route::match(['get', 'post'], '/store', [CategoryController::class, 'store'])->name('dashboard.categories.store');
Route::match(['get', 'post'], '/update/{category}', [CategoryController::class, 'update'])->name('dashboard.categories.update');
Route::get('/delete/{category}', [CategoryController::class, 'delete'])->name('dashboard.categories.delete');
Route::post('/position', [CategoryController::class, 'position_save']);
Route::get('/test', [CategoryController::class, 'test']);
});
// Route::group(['prefix' => 'colors', 'namespace' => 'Color'], function () {
// Route::get('/', 'Controller@index')->name('dashboard.colors');
// Route::match(['get', 'post'], '/store', 'Controller@store')->name('dashboard.colors.store');
// Route::match(['get', 'post'], '/update/{color}', 'Controller@update')->name('dashboard.colors.update');
// Route::get('/delete/{color}', 'Controller@delete')->name('dashboard.colors.delete');
// });
Route::group(['prefix' => 'pages'], function () {
Route::match(['get', 'post'], '/store', [PageController::class, 'store'])->name('dashboard.pages.store');
Route::match(['get', 'post'], '/update/{page}', [PageController::class, 'update'])->name('dashboard.pages.update');
Route::get('/delete/{page}', [PageController::class, 'destroy'])->name('dashboard.pages.destroy');
Route::post('upload/image', [PageController::class, 'image_upload'])->name('dashboard.pages.image_upload');
});
Route::group(['prefix' => 'feedback'], function () {
Route::get('/', [FeedbackController::class, 'index'])->name('dashboard.feedback.index');
Route::get('{feedback}', [FeedbackController::class, 'show'])->name('dashboard.feedback.show');
Route::get('delete/{feedback}', [FeedbackController::class, 'destroy'])->name('dashboard.feedback.delete');
});
Route::group(['prefix' => 'comments'], function () {
Route::get('/', [CommentController::class, 'index'])->name('dashboard.comments');
Route::get('/view/{comment}', [CommentController::class, 'update'])->name('dashboard.comment.update');
Route::get('/publish/{comment}', [CommentController::class, 'publish'])->name('dashboard.comment.publish');
Route::get('/delete/{comment}', [CommentController::class, 'delete'])->name('dashboard.comment.delete');
});
Route::group(['prefix' => 'billings'], function () {
Route::get('/', [BillingController::class, 'index'])->name('billing');
Route::get('/search', [BillingController::class, 'search'])->name('billing.search');
});
Route::group(['prefix' => 'regions'], function () {
Route::get('/', [RegionController::class, 'index'])->name('dashboard.regions');
Route::match(['get', 'post'], '/store', [RegionController::class, 'store'])->name('dashboard.region.store');
Route::match(['get', 'post'], '/update/{region}', [RegionController::class, 'update'])->name('dashboard.region.update');
Route::get('/delete/{region}', [RegionController::class, 'delete'])->name('dashboard.region.delete');
});
Route::group(['prefix' => 'notification'], function () {
Route::get('/', [NotificationController::class, 'notification_available'])->name('dashboard.notification_available');
Route::get('/view/{product}', [NotificationController::class, 'notification_available_view'])->name('dashboard.notification_available.view');
});
Route::resource('notifications', NotificationController::class)->names('dashboard.notifications');
Route::group(['prefix' => 'cities'], function () {
Route::get('/', [CityController::class, 'index'])->name('dashboard.cities');
Route::match(['get', 'post'], '/store', [CityController::class, 'store'])->name('dashboard.city.store');
Route::match(['get', 'post'], '/update/{city}', [CityController::class, 'update'])->name('dashboard.city.update');
Route::get('/delete/{city}', [CityController::class, 'delete'])->name('dashboard.city.delete');
});
Route::group(['prefix' => 'roles'], function () {
Route::get('/', [RoleController::class, 'index'])->name('dashboard.roles');
Route::match(['get', 'post'], '/store', [RoleController::class, 'store'])->name('dashboard.role.store');
Route::match(['get', 'post'], '/update/{role}', [RoleController::class, 'update'])->name('dashboard.role.update');
Route::get('/delete/{role}', [RoleController::class, 'delete'])->name('dashboard.role.delete');
});
});