ultimatepos/Modules/Portal/Routes/web.php

102 lines
9.1 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use Modules\Portal\Http\Controllers\Customer;
use Modules\Portal\Http\Controllers\Supplier;
use Modules\Portal\Http\Controllers\Marketer;
use Modules\Portal\Http\Controllers\InstallController;
use Modules\Portal\Http\Controllers\PwaController;
Route::get('portal/sw.js', [PwaController::class, 'serviceWorker']);
Route::middleware('web', 'authh', 'SetSessionData', 'auth', 'language', 'timezone')->group(function () {
Route::get('portal/manifest/{type}', [PwaController::class, 'manifest'])->where('type', 'customer|supplier|marketer');
Route::get('contact/contact-dashboard', function () {
return redirect('/customer/dashboard');
});
Route::prefix('customer')->name('customer.')->middleware(['SetPortalLocale', 'CheckCustomerPortal', 'SharePortalNavigation:customer', 'CustomerSidebarMenu'])->group(function () {
Route::get('dashboard', [Customer\DashboardController::class, 'index'])->name('dashboard');
Route::get('profile', [Customer\ProfileController::class, 'getProfile'])->name('profile');
Route::post('profile-update', [Customer\ProfileController::class, 'updateProfile'])->name('profile.update');
Route::post('password-update', [Customer\ProfileController::class, 'updatePassword'])->name('password.update');
Route::get('sells', [Customer\SellController::class, 'getSellList'])->name('sells');
Route::get('ledger', [Customer\LedgerController::class, 'index'])->name('ledger');
Route::get('get-ledger', [Customer\LedgerController::class, 'getLedger'])->name('ledger.data');
Route::get('projects', [Customer\ProjectController::class, 'index'])->name('projects.index');
Route::get('projects/{id}', [Customer\ProjectController::class, 'show'])->name('projects.show');
Route::get('maintenance', [Customer\MaintenanceHubController::class, 'index'])->name('maintenance');
Route::get('production-lines', [Customer\ProductionLineController::class, 'index'])->name('production_lines.index');
Route::get('production-lines/{id}', [Customer\ProductionLineController::class, 'show'])->name('production_lines.show');
Route::get('equipment', [Customer\EquipmentController::class, 'index'])->name('equipment.index');
Route::get('equipment/{id}', [Customer\EquipmentController::class, 'show'])->name('equipment.show');
Route::get('periodic-services', [Customer\PreventiveScheduleController::class, 'index'])->name('periodic_services.index');
Route::get('periodic-services/{id}', [Customer\PreventiveScheduleController::class, 'show'])->name('periodic_services.show');
Route::get('work-orders', [Customer\WorkOrderController::class, 'index'])->name('work_orders.index');
Route::get('work-orders/{id}', [Customer\WorkOrderController::class, 'show'])->name('work_orders.show');
Route::get('service-requests', [Customer\ServiceRequestController::class, 'index'])->name('service_requests.index');
Route::get('service-requests/create', [Customer\ServiceRequestController::class, 'create'])->name('service_requests.create');
Route::post('service-requests', [Customer\ServiceRequestController::class, 'store'])->name('service_requests.store');
Route::get('field-missions', [Customer\FieldMissionController::class, 'index'])->name('field_missions.index');
Route::get('field-missions/{id}', [Customer\FieldMissionController::class, 'show'])->name('field_missions.show');
Route::get('shipments', [Customer\ShipmentController::class, 'index'])->name('shipments.index');
Route::get('shipments/{id}', [Customer\ShipmentController::class, 'show'])->name('shipments.show');
Route::get('repairs', [Customer\RepairController::class, 'index'])->name('repairs.index');
Route::get('repairs/{id}', [Customer\RepairController::class, 'show'])->name('repairs.show');
Route::get('proposals', [Customer\ProposalController::class, 'index'])->name('proposals.index');
Route::get('proposals/{id}', [Customer\ProposalController::class, 'show'])->name('proposals.show');
Route::get('communications', [Customer\CommunicationController::class, 'index'])->name('communications.index');
Route::get('communications/presence', [Customer\CommunicationController::class, 'presence'])->name('communications.presence');
Route::get('communications/specialists/{specialist_id}/presence', [Customer\CommunicationController::class, 'specialistPresence'])->name('communications.specialist_presence');
Route::post('communications/heartbeat', [Customer\CommunicationController::class, 'heartbeat'])->name('communications.heartbeat');
Route::get('communications/chat/{specialist_id}', [Customer\CommunicationController::class, 'chat'])->name('communications.chat');
Route::get('communications/rooms/{room_id}/messages', [Customer\CommunicationController::class, 'messages'])->name('communications.messages');
Route::post('communications/rooms/{room_id}/messages', [Customer\CommunicationController::class, 'sendMessage'])->name('communications.send');
Route::post('communications/rooms/{room_id}/read', [Customer\CommunicationController::class, 'markRead'])->name('communications.read');
Route::resource('order-request', Customer\OrderRequestController::class)->except(['edit', 'update', 'destroy']);
Route::resource('bookings', Customer\BookingController::class)->except(['edit', 'update', 'destroy']);
Route::get('products/list', [\App\Http\Controllers\ProductController::class, 'getProducts']);
Route::get('order-request/get_product_row/{variation_id}/{location_id}', [Customer\OrderRequestController::class, 'getProductRow']);
});
Route::prefix('supplier')->name('supplier.')->middleware(['SetPortalLocale', 'CheckSupplierPortal', 'SharePortalNavigation:supplier', 'SupplierSidebarMenu'])->group(function () {
Route::get('dashboard', [Supplier\DashboardController::class, 'index'])->name('dashboard');
Route::get('profile', [Supplier\ProfileController::class, 'getProfile'])->name('profile');
Route::post('profile-update', [Supplier\ProfileController::class, 'updateProfile'])->name('profile.update');
Route::post('password-update', [Supplier\ProfileController::class, 'updatePassword'])->name('password.update');
Route::get('purchases', [Supplier\PurchaseController::class, 'getPurchaseList'])->name('purchases');
Route::get('purchase-orders', [Supplier\PurchaseOrderController::class, 'index'])->name('purchase_orders.index');
Route::get('purchase-orders/{id}', [Supplier\PurchaseOrderController::class, 'show'])->name('purchase_orders.show');
Route::post('purchase-orders/{id}/acknowledge', [Supplier\PurchaseOrderController::class, 'acknowledge'])->name('purchase_orders.acknowledge');
Route::get('payments', [Supplier\PaymentController::class, 'index'])->name('payments');
Route::get('purchase-returns', [Supplier\PurchaseReturnController::class, 'index'])->name('purchase_returns');
Route::get('documents', [Supplier\DocumentController::class, 'index'])->name('documents');
Route::get('ledger', [Supplier\LedgerController::class, 'index'])->name('ledger');
Route::get('get-ledger', [Supplier\LedgerController::class, 'getLedger'])->name('ledger.data');
});
Route::prefix('marketer')->name('marketer.')->middleware(['SetPortalLocale', 'CheckMarketerPortal', 'SharePortalNavigation:marketer', 'MarketerSidebarMenu'])->group(function () {
Route::get('dashboard', [Marketer\DashboardController::class, 'index'])->name('dashboard');
Route::get('sells', [Marketer\SellController::class, 'index'])->name('sells');
Route::get('commission', [Marketer\CommissionController::class, 'index'])->name('commission');
Route::get('leads', [Marketer\LeadController::class, 'index'])->name('leads');
Route::get('follow-ups', [Marketer\FollowUpController::class, 'index'])->name('follow_ups');
Route::get('expenses', [Marketer\ExpenseController::class, 'index'])->name('expenses');
Route::get('profile', [Marketer\ProfileController::class, 'getProfile'])->name('profile');
Route::post('profile-update', [Marketer\ProfileController::class, 'updateProfile'])->name('profile.update');
Route::post('password-update', [Marketer\ProfileController::class, 'updatePassword'])->name('password.update');
});
Route::prefix('portal')->group(function () {
Route::get('install', [InstallController::class, 'index']);
Route::post('install', [InstallController::class, 'install']);
Route::get('install/uninstall', [InstallController::class, 'uninstall']);
Route::get('install/update', [InstallController::class, 'update']);
});
Route::middleware('AdminSidebarMenu', 'CheckUserLogin')->prefix('portal/admin')->name('portal.admin.')->group(function () {
Route::get('settings', [\Modules\Portal\Http\Controllers\SettingsController::class, 'index'])->name('settings');
Route::post('settings', [\Modules\Portal\Http\Controllers\SettingsController::class, 'update'])->name('settings.update');
});
});