124 lines
6.0 KiB
PHP
124 lines
6.0 KiB
PHP
<?php
|
|
/**
|
|
* Application Routes
|
|
*/
|
|
|
|
use App\Core\Router;
|
|
use App\Controllers\AuthController;
|
|
use App\Controllers\DashboardController;
|
|
use App\Controllers\AssetController;
|
|
use App\Controllers\InventoryController;
|
|
use App\Controllers\ReportController;
|
|
use App\Controllers\UserController;
|
|
use App\Controllers\CategoryController;
|
|
use App\Controllers\LocationController;
|
|
use App\Controllers\DepartmentController;
|
|
use App\Controllers\FileController;
|
|
use App\Controllers\ExportController;
|
|
use App\Controllers\ImportController;
|
|
|
|
$router = Router::getInstance();
|
|
|
|
// Authentication routes
|
|
$router->get('/login', [AuthController::class, 'showLogin']);
|
|
$router->post('/login', [AuthController::class, 'login']);
|
|
$router->post('/logout', [AuthController::class, 'logout']);
|
|
$router->get('/password/forgot', [AuthController::class, 'showForgotPassword']);
|
|
$router->post('/password/forgot', [AuthController::class, 'forgotPassword']);
|
|
$router->get('/password/reset', [AuthController::class, 'showResetPassword']);
|
|
$router->post('/password/reset', [AuthController::class, 'resetPassword']);
|
|
|
|
// Protected routes (require authentication)
|
|
$router->group(['middleware' => 'auth'], function($router) {
|
|
// Dashboard
|
|
$router->get('/', [DashboardController::class, 'index']);
|
|
$router->get('/dashboard', [DashboardController::class, 'index']);
|
|
|
|
// Assets
|
|
$router->get('/assets', [AssetController::class, 'index']);
|
|
$router->get('/assets/create', [AssetController::class, 'create']);
|
|
$router->post('/assets', [AssetController::class, 'store']);
|
|
$router->get('/assets/{id}', [AssetController::class, 'show']);
|
|
$router->get('/assets/{id}/edit', [AssetController::class, 'edit']);
|
|
$router->post('/assets/{id}', [AssetController::class, 'update']);
|
|
$router->post('/assets/{id}/delete', [AssetController::class, 'delete']);
|
|
$router->post('/assets/{id}/assign', [AssetController::class, 'assign']);
|
|
$router->post('/assets/{id}/checkout', [AssetController::class, 'checkout']);
|
|
$router->post('/assets/{id}/checkin', [AssetController::class, 'checkin']);
|
|
|
|
// Asset files
|
|
$router->post('/assets/{id}/files', [FileController::class, 'upload']);
|
|
$router->get('/files/{id}/download', [FileController::class, 'download']);
|
|
$router->post('/files/{id}/delete', [FileController::class, 'delete']);
|
|
|
|
// Inventory
|
|
$router->get('/inventories', [InventoryController::class, 'index']);
|
|
$router->get('/inventories/create', [InventoryController::class, 'create']);
|
|
$router->post('/inventories', [InventoryController::class, 'store']);
|
|
$router->get('/inventories/{id}', [InventoryController::class, 'show']);
|
|
$router->post('/inventories/{id}/close', [InventoryController::class, 'close']);
|
|
$router->post('/inventories/{id}/scan', [InventoryController::class, 'scan']);
|
|
$router->get('/inventories/{id}/report', [InventoryController::class, 'report']);
|
|
|
|
// Reports
|
|
$router->get('/reports', [ReportController::class, 'index']);
|
|
$router->get('/reports/assets', [ReportController::class, 'assets']);
|
|
$router->get('/reports/warranty', [ReportController::class, 'warranty']);
|
|
$router->get('/reports/retired', [ReportController::class, 'retired']);
|
|
$router->get('/reports/location', [ReportController::class, 'location']);
|
|
$router->get('/reports/category', [ReportController::class, 'category']);
|
|
|
|
// Exports
|
|
$router->get('/exports/csv', [ExportController::class, 'csv']);
|
|
$router->get('/exports/xlsx', [ExportController::class, 'xlsx']);
|
|
$router->get('/exports/labels', [ExportController::class, 'labels']);
|
|
|
|
// Imports
|
|
$router->get('/imports/csv', [ImportController::class, 'show']);
|
|
$router->post('/imports/csv', [ImportController::class, 'import']);
|
|
|
|
// Master data
|
|
$router->get('/categories', [CategoryController::class, 'index']);
|
|
$router->get('/categories/create', [CategoryController::class, 'create']);
|
|
$router->post('/categories', [CategoryController::class, 'store']);
|
|
$router->get('/categories/{id}/edit', [CategoryController::class, 'edit']);
|
|
$router->post('/categories/{id}', [CategoryController::class, 'update']);
|
|
$router->post('/categories/{id}/delete', [CategoryController::class, 'delete']);
|
|
|
|
$router->get('/locations', [LocationController::class, 'index']);
|
|
$router->get('/locations/create', [LocationController::class, 'create']);
|
|
$router->post('/locations', [LocationController::class, 'store']);
|
|
$router->get('/locations/{id}/edit', [LocationController::class, 'edit']);
|
|
$router->post('/locations/{id}', [LocationController::class, 'update']);
|
|
$router->post('/locations/{id}/delete', [LocationController::class, 'delete']);
|
|
|
|
$router->get('/departments', [DepartmentController::class, 'index']);
|
|
$router->get('/departments/create', [DepartmentController::class, 'create']);
|
|
$router->post('/departments', [DepartmentController::class, 'store']);
|
|
$router->get('/departments/{id}/edit', [DepartmentController::class, 'edit']);
|
|
$router->post('/departments/{id}', [DepartmentController::class, 'update']);
|
|
$router->post('/departments/{id}/delete', [DepartmentController::class, 'delete']);
|
|
|
|
// Admin routes
|
|
$router->group(['middleware' => 'admin'], function($router) {
|
|
$router->get('/users', [UserController::class, 'index']);
|
|
$router->get('/users/create', [UserController::class, 'create']);
|
|
$router->post('/users', [UserController::class, 'store']);
|
|
$router->get('/users/{id}/edit', [UserController::class, 'edit']);
|
|
$router->post('/users/{id}', [UserController::class, 'update']);
|
|
$router->post('/users/{id}/delete', [UserController::class, 'delete']);
|
|
$router->post('/users/{id}/toggle', [UserController::class, 'toggleStatus']);
|
|
});
|
|
});
|
|
|
|
// Error routes
|
|
$router->get('/404', function() {
|
|
http_response_code(404);
|
|
require APP_PATH . '/Views/errors/404.php';
|
|
});
|
|
|
|
$router->get('/500', function() {
|
|
http_response_code(500);
|
|
require APP_PATH . '/Views/errors/500.php';
|
|
});
|