group(function () { Route::get('/login', function () { return Inertia('Auth/Login'); })->name('login'); Route::prefix('auth')->group(function () { Route::post('/login', [AuthController::class, 'login']); }); }); // Тестовые маршруты — только в локальной среде if (app()->isLocal()) { Route::prefix('test')->group(function () { Route::get('/', [TestController::class, 'testMigrations']); Route::get('/i', [TestController::class, 'testIndex']); }); } Route::prefix('api')->group(function () { Route::get('/auth/login', [\App\Http\Controllers\Api\AuthController::class, 'login']); }); Route::prefix('admin')->middleware(['auth'])->group(function () { Route::get('/', [\App\Http\Controllers\Web\Admin\AdminController::class, 'index']); Route::prefix('users')->group(function () { Route::get('/', [\App\Http\Controllers\Web\Admin\UserController::class, 'index']); Route::get('/new', [\App\Http\Controllers\Web\Admin\UserController::class, 'create']); Route::post('/new', [\App\Http\Controllers\Web\Admin\UserController::class, 'store']); Route::prefix('{user}')->group(function () { Route::get('/', [\App\Http\Controllers\Web\Admin\UserController::class, 'show']); Route::put('/', [\App\Http\Controllers\Web\Admin\UserController::class, 'update']); Route::put('/password', [\App\Http\Controllers\Web\Admin\UserController::class, 'resetPassword']); }); }); Route::prefix('metrics')->group(function () { Route::get('/', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'index']); Route::get('/groups/new', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'createGroup']); Route::post('/groups/new', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'storeGroup']); Route::get('/groups/{group}', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'showGroup']); Route::put('/groups/{group}', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'updateGroup']); Route::get('/items/new', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'createItem']); Route::post('/items/new', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'storeItem']); Route::get('/items/{item}', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'showItem']); Route::put('/items/{item}', [\App\Http\Controllers\Web\Admin\MetrikaController::class, 'updateItem']); }); Route::prefix('replication')->group(function () { Route::get('/', [\App\Http\Controllers\Web\Admin\ReplicationController::class, 'index']); Route::post('/run', [\App\Http\Controllers\Web\Admin\ReplicationController::class, 'run']); Route::post('/schedules', [\App\Http\Controllers\Web\Admin\ReplicationController::class, 'storeSchedule']); Route::put('/schedules/{schedule}', [\App\Http\Controllers\Web\Admin\ReplicationController::class, 'updateSchedule']); Route::delete('/schedules/{schedule}', [\App\Http\Controllers\Web\Admin\ReplicationController::class, 'destroySchedule']); }); }); Route::prefix('statistic')->middleware(['auth'])->group(function () { Route::get('/', [\App\Http\Controllers\Web\StatisticController::class, 'index']); Route::get('/report', [\App\Http\Controllers\Web\StatisticController::class, 'report']); Route::get('/headquarters', [\App\Http\Controllers\Web\HeadquartersController::class, 'index']); }); Route::prefix('reports')->middleware(['auth'])->group(function () { Route::get('/', [\App\Http\Controllers\Web\ReportsController::class, 'index'])->name('reports.index'); Route::get('/new', [\App\Http\Controllers\Web\ReportsController::class, 'create'])->name('reports.create'); Route::post('/run', [\App\Http\Controllers\Web\ReportsController::class, 'run'])->name('reports.run'); Route::post('/measures', [\App\Http\Controllers\Web\ReportsController::class, 'storeMeasure'])->name('reports.measures.store'); Route::post('/export/excel', [\App\Http\Controllers\Web\ReportsController::class, 'exportExcel'])->name('reports.export.excel'); Route::post('/export/pdf', [\App\Http\Controllers\Web\ReportsController::class, 'exportPdf'])->name('reports.export.pdf'); Route::post('/', [\App\Http\Controllers\Web\ReportsController::class, 'store'])->name('reports.store'); Route::get('/{document}', [\App\Http\Controllers\Web\ReportsController::class, 'show'])->name('reports.show'); Route::put('/{document}', [\App\Http\Controllers\Web\ReportsController::class, 'update'])->name('reports.update'); Route::delete('/{document}', [\App\Http\Controllers\Web\ReportsController::class, 'destroy'])->name('reports.destroy'); Route::post('/{document}/duplicate', [\App\Http\Controllers\Web\ReportsController::class, 'duplicate'])->name('reports.duplicate'); }); Route::get('/logout', [\App\Http\Controllers\AuthController::class, 'logout']) ->middleware(['auth']) ->name('logout'); // Route::get('/dashboard', [\App\Http\Controllers\Web\IndexController::class, 'index']) // ->middleware(['auth']) // ->name('dashboard'); Route::get('/report', [\App\Http\Controllers\Web\DutyReportController::class, 'index']) ->middleware(['auth']) ->name('report'); Route::get('/report/export', [\App\Http\Controllers\Web\ReportController::class, 'export']) ->middleware(['auth']) ->name('report.export'); Route::post('/report', [\App\Http\Controllers\Web\ReportController::class, 'store']) ->middleware(['auth']) ->name('report.store'); Route::post('/user/role/change', [\App\Http\Controllers\AuthController::class, 'changeRole']) ->middleware(['auth']) ->name('user.role.change'); Route::get('/path/patient', function () { return \Inertia\Inertia::render('Path/Patient'); }) ->middleware(['auth']) ->name('path.patient'); Route::get('/', [\App\Http\Controllers\Web\IndexController::class, 'start']) ->middleware(['auth']) ->name('start'); Route::prefix('nurse')->middleware(['auth'])->group(function () { Route::prefix('report')->group(function () { Route::get('/', [\App\Http\Controllers\Web\NurseReportController::class, 'index']); Route::post('/save', [\App\Http\Controllers\Web\NurseReportController::class, 'store']); }); }); Route::prefix('duty')->middleware(['auth'])->group(function () { Route::prefix('report')->group(function () { Route::get('/', [\App\Http\Controllers\Web\DutyReportController::class, 'index']); Route::post('/save', [\App\Http\Controllers\Web\DutyReportController::class, 'store']); }); });