Files
ERP-upgrade/routes/web.php

172 lines
11 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\SenderIdController;
// Route::get('test', function () {
// \Log::info('foo bar');
// dd("foo bar");
// // return view('clients.index');
// });
//bd8f75cc-0f63-4707-9a2e-361800a0d94c
Auth::routes([
'register' => false,
]);
// If your method is in LoginController
Route::post('/login', [App\Http\Controllers\Auth\LoginController::class, 'authenticate'])->name('login.post');
Route::get('/verify-otp', [App\Http\Controllers\OtpController::class, 'show'])->name('otp.verify');
Route::post('/verify-otp', [App\Http\Controllers\OtpController::class, 'verify'])->name('otp.verify.post');
Route::post('/resend-otp', [App\Http\Controllers\OtpController::class, 'resend'])->name('otp.resend');
Route::middleware(['auth'])->group(function () {
Route::get('/', [App\Http\Controllers\DashboardController::class, 'index'])->name('dashboard');
Route::get('home', [App\Http\Controllers\DashboardController::class, 'index'])->name('home');
#Clients
Route::put('/clients/notes/{id}', [App\Http\Controllers\ClientsController::class, 'update_notes']);
Route::post('/clients/shortcodes/{id}', [App\Http\Controllers\ClientsController::class, 'update_short_code']);
Route::put('/clients/payments/{id}', [App\Http\Controllers\ClientsController::class, 'update_payment']);
// Notes
Route::put('/client-notes/{id}', [App\Http\Controllers\ClientsController::class, 'update_notes']);
Route::delete('/client-notes/{id}', [App\Http\Controllers\ClientsController::class, 'destroy_notes']);
// Payments
Route::put('/client-payments/{id}', [App\Http\Controllers\ClientsController::class, 'update_payment']);
Route::delete('/client-payments/{id}', [App\Http\Controllers\ClientsController::class, 'destroy_payment']);
// Shortcodes
Route::put('/shortcodes/{id}', [App\Http\Controllers\ClientsController::class, 'update_short_code']);
Route::delete('/shortcodes/{id}', [App\Http\Controllers\ClientsController::class, 'destroy_short_code']);
Route::get('/clients/data', [App\Http\Controllers\ClientsController::class, 'fetchData'])->name('clients.data');
Route::get('/clients/export', [App\Http\Controllers\ClientsController::class, 'export'])->name('clients.export');
Route::get('/clients/{id}/json', [App\Http\Controllers\ClientsController::class, 'getClientJson']);
Route::put('/clients/{id}', [App\Http\Controllers\ClientsController::class, 'update'])->name('clients.update');
Route::post('/clients/shortcodes-store', [App\Http\Controllers\ClientsController::class, 'shortcodeStore'])->name('shortcodes.store');
Route::post('/clients/payments-store', [App\Http\Controllers\ClientsController::class, 'paymentsStore'])->name('client-payments.store');
Route::post('/clients/files-store', [App\Http\Controllers\ClientsController::class, 'storeDocument'])->name('client-files.store');
Route::post('/clients/notes-store', [App\Http\Controllers\ClientsController::class, 'storeNote'])->name('client-notes.store');
Route::get('/client-files/download/{id}', [App\Http\Controllers\ClientsController::class, 'clientFiledownload'])->name('client-files.download');
Route::resource('clients', App\Http\Controllers\ClientsController::class);
#MNOs mnos.store
Route::get('/mnos/json/{id}', [App\Http\Controllers\NetworkOperatorsController::class, 'getJson'])->name('mnos.json');
Route::post('/mnos/{operatorId}/documents', [App\Http\Controllers\NetworkOperatorsController::class, 'storeDocument'])->name('mnos.documents.store');
Route::delete('/mnos/documents/{id}', [App\Http\Controllers\NetworkOperatorsController::class, 'destroyDocument'])->name('mnos.documents.destroy');
Route::post('/mnos/{id}/connections', [App\Http\Controllers\NetworkOperatorsController::class, 'storeConnection'])->name('mnos.connections.store');
Route::delete('/mnos/connections/{id}', [App\Http\Controllers\NetworkOperatorsController::class, 'destroyConnection'])->name('mnos.connections.destroy');
Route::get('/mnos/{id}', [App\Http\Controllers\NetworkOperatorsController::class, 'show'])->name('mnos.show');
Route::get('/mnos', [App\Http\Controllers\NetworkOperatorsController::class, 'index'])->name('mnos.index');
Route::post('/mnos', [App\Http\Controllers\NetworkOperatorsController::class, 'store'])->name('mnos.store');
Route::get('/mnos/{id}/json', [App\Http\Controllers\NetworkOperatorsController::class, 'getJson']);
Route::put('/mnos/{id}', [App\Http\Controllers\NetworkOperatorsController::class, 'update'])->name('mnos.update');
// Route::get('/staff', [App\Http\Controllers\StaffController::class, 'index'])->name('home');
Route::get('/staff/{id}/details', [App\Http\Controllers\StaffMembersController::class, 'showDetails'])->name('staff.details');
Route::resource('staff', App\Http\Controllers\StaffMembersController::class)->except(['create', 'show', 'edit']);
//Route::get('/documents', [App\Http\Controllers\DocumentsVaultController::class, 'index'])->name('documents.index');
// Route::get('/senderids', [App\Http\Controllers\SenderidsController::class, 'index']);
Route::get('/senderids/export/excel', [App\Http\Controllers\SenderidsController::class, 'exportExcel'])->name('senderids.export.excel');
Route::get('/senderids/export/pdf', [App\Http\Controllers\SenderidsController::class, 'exportPdf'])->name('senderids.export.pdf');
Route::resource('senderids', App\Http\Controllers\SenderidsController::class)->except(['create', 'show', 'edit']);
Route::resource('shortcodes', App\Http\Controllers\ShortCodesController::class)->except(['create', 'show', 'edit']);
Route::prefix('leave-requests')->name('leave.')->group(function () {
Route::get('/', [App\Http\Controllers\LeaveRequestController::class, 'index'])->name('index');
Route::get('/my-leave', [App\Http\Controllers\LeaveRequestController::class, 'myLeave'])->name('my_leave');
Route::post('/store', [App\Http\Controllers\LeaveRequestController::class, 'store'])->name('store');
Route::put('/{id}/status', [App\Http\Controllers\LeaveRequestController::class, 'updateStatus'])->name('status');
});
Route::prefix('profile')->name('profile.')->group(function () {
Route::get('/', [App\Http\Controllers\ProfileController::class, 'index'])->name('index');
Route::put('/update', [App\Http\Controllers\ProfileController::class, 'update'])->name('update');
Route::post('/dependents', [App\Http\Controllers\ProfileController::class, 'storeDependent'])->name('dependent.store');
Route::put('/dependents/{id}', [App\Http\Controllers\ProfileController::class, 'updateDependent'])->name('dependent.update');
Route::delete('/dependents/{id}', [App\Http\Controllers\ProfileController::class, 'destroyDependent'])->name('dependent.destroy');
});
Route::prefix('documents')->name('documents.')->group(function () {
Route::get('/', [App\Http\Controllers\DocumentsController::class, 'index'])->name('index');
Route::post('/store', [App\Http\Controllers\DocumentsController::class, 'store'])->name('store');
Route::delete('/{id}', [App\Http\Controllers\DocumentsController::class, 'destroy'])->name('destroy');
});
Route::prefix('offices')->name('offices.')->group(function () {
Route::get('/', [App\Http\Controllers\OfficeLocationController::class, 'index'])->name('index');
Route::post('/store', [App\Http\Controllers\OfficeLocationController::class, 'store'])->name('store');
Route::put('/{id}', [App\Http\Controllers\OfficeLocationController::class, 'update'])->name('update');
Route::delete('/{id}', [App\Http\Controllers\OfficeLocationController::class, 'destroy'])->name('destroy');
Route::get('/{id}/documents', [App\Http\Controllers\OfficeLocationController::class, 'showDocuments'])->name('documents');
Route::post('/{id}/documents/store', [App\Http\Controllers\OfficeLocationController::class, 'storeDocument'])->name('documents.store');
Route::delete('/documents/delete/{docId}', [App\Http\Controllers\OfficeLocationController::class, 'destroyDocument'])->name('documents.destroy');
});
Route::get('/api/services', [App\Http\Controllers\ServicesController::class, 'getServicesJson']);
Route::get('/api/countries', [App\Http\Controllers\HelperController::class, 'getCountriesJson']);
// Staff Daily Reports
Route::get('/reports', [App\Http\Controllers\DailyReportController::class, 'index'])->name('reports.index');
Route::post('/reports', [App\Http\Controllers\DailyReportController::class, 'store'])->name('reports.store');
// Management Report Overrides
Route::post('/overrides', [App\Http\Controllers\ReportOverrideController::class, 'store'])->name('overrides.store');
// Fetch holidays for a specific office
Route::get('offices/{office}/holidays', [App\Http\Controllers\PublicHolidaysController::class, 'index']);
// Import holidays from the Nager.Date API
Route::post('offices/{office}/holidays/import', [App\Http\Controllers\PublicHolidaysController::class, 'importFromApi']);
// Add a manual/custom holiday
Route::post('holidays', [App\Http\Controllers\PublicHolidaysController::class, 'store']);
// Management Dashboard
Route::get('/management', [App\Http\Controllers\ManagementDashboardController::class, 'index'])->name('management.index');
Route::put('/management/leaves/{id}', [App\Http\Controllers\ManagementDashboardController::class, 'updateLeaveStatus'])->name('management.leaves.update');
// Delete a holiday
Route::delete('holidays/{holiday}', [App\Http\Controllers\PublicHolidaysController::class, 'destroy']);
Route::resource('servers', App\Http\Controllers\ServerController::class);
// OTP Security Routes
Route::post('/servers/{server}/request-otp', [App\Http\Controllers\ServerCredentialController::class, 'requestOtp'])->name('servers.request-otp');
Route::post('/servers/{server}/verify-otp', [App\Http\Controllers\ServerCredentialController::class, 'verifyOtp'])->name('servers.verify-otp');
Route::get('/vpns/standard-template', [App\Http\Controllers\VpnConfigController::class, 'downloadStandardTemplate'])->name('vpns.standard-template');
Route::resource('vpns', App\Http\Controllers\VpnConfigController::class);
Route::get('/vpns/{vpn}/template', [App\Http\Controllers\VpnConfigController::class, 'generateTemplate'])->name('vpns.template');
Route::post('/vpns/download', [App\Http\Controllers\VpnConfigController::class, 'download'])->name('vpns.download');
Route::post('/mnos/{operatorId}/notes', [App\Http\Controllers\NetworkOperatorsController::class, 'storeNote'])->name('mnos.notes.store');
Route::delete('/mnos/notes/{id}', [App\Http\Controllers\NetworkOperatorsController::class, 'destroyNote'])->name('mnos.notes.destroy');
Route::get('/activity-logs', [App\Http\Controllers\ActivityLogController::class, 'index'])->name('activity-logs.index');
Route::post('/logout', [App\Http\Controllers\AuthController::class, 'logout'])->name('logout');
});