true ]); //Artisan::call('vendor:publish'); return "Cache is cleared"; }); //Route::get("/storage/app/","files") Route::get('/artisan-optimize', function() { Artisan::call('optimize'); return "optimized"; }); Route::get('/get-token', function() { return csrf_token(); }); Route::get('/cache/{size}/{month}/{day}/{file}',function($size,$month,$day,$file){ if($size=="large") $size = 1920; if($size=="small") $size = 256; if($size=="medium") $size = 512; yonlendir(url("r.php?w=$size&p=storage/app/files/$month/$day/$file")); }); Route::get('/',"ContentsController@index"); Route::get('/logout',"AdminController@logout"); Route::get('/home',"AdminController@default"); Route::get('/ajax/{var?}',"AjaxController@index"); Route::match(['get', 'post', 'put', 'delete'],'/admin-ajax/{var?}',"AdminAjaxController@index"); // PDF Editor API Routes (Web middleware group for session auth) Route::prefix('api/pdf-editor')->group(function () { // Annotation routes Route::get('/annotations', [\App\Http\Controllers\Api\AnnotationController::class, 'index']); Route::post('/annotations', [\App\Http\Controllers\Api\AnnotationController::class, 'store']); Route::post('/annotations/sync', [\App\Http\Controllers\Api\AnnotationController::class, 'sync']); Route::post('/annotations/delete', [\App\Http\Controllers\Api\AnnotationController::class, 'deleteMultiple']); Route::get('/annotations/{annotation}', [\App\Http\Controllers\Api\AnnotationController::class, 'show']); Route::put('/annotations/{annotation}', [\App\Http\Controllers\Api\AnnotationController::class, 'update']); Route::delete('/annotations/{annotation}', [\App\Http\Controllers\Api\AnnotationController::class, 'destroy']); Route::get('/action-history', [\App\Http\Controllers\Api\AnnotationController::class, 'actionHistory']); Route::get('/version-annotations', [\App\Http\Controllers\Api\AnnotationController::class, 'versionAnnotations']); // QR Code routes Route::post('/qr-code/generate', [\App\Http\Controllers\Api\QRCodeController::class, 'generate']); Route::get('/qr-code/{shapeId}', [\App\Http\Controllers\Api\QRCodeController::class, 'generateForAnnotation']); // PDF Editor Lookup/Metadata routes Route::get('/metadata/drawing-types', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'drawingTypes']); Route::get('/metadata/drawings', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'drawings']); Route::get('/metadata/files', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'files']); Route::get('/metadata/weld-data', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'weldData']); Route::post('/metadata/document-stage', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'updateDocumentStage']); // Joint Widget / IC Log routes Route::get('/ic-log-members', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'getICLogMembers']); Route::get('/ic-log-member-details', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'getICLogMemberDetails']); Route::get('/check-existing-weldmap', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'checkExistingWeldmapData']); Route::get('/get-qualified-welders', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'getQualifiedWelders']); Route::get('/get-type-of-weld-options', [\App\Http\Controllers\Api\PdfEditorLookupController::class, 'getTypeOfWeldOptions']); Route::post('/save-joint-data', [\App\Http\Controllers\Api\AnnotationController::class, 'saveJointData']); Route::post('/update-welder-assignment', [\App\Http\Controllers\Api\AnnotationController::class, 'updateWelderAssignment']); Route::get('/get-joint-data', [\App\Http\Controllers\Api\AnnotationController::class, 'getJointData']); }); // PDF Export route Route::post('/export-pdf', [\App\Http\Controllers\Api\AnnotationController::class, 'exportPDF']); // PDFM API Routes (PDF Markup - Web middleware group for session auth) Route::prefix('api/pdfm')->group(function () { // Spools Route::get('/spools', [\App\Http\Controllers\Api\PdfmController::class, 'getSpools']); Route::post('/spools', [\App\Http\Controllers\Api\PdfmController::class, 'createSpool']); Route::get('/spools/generate-number', [\App\Http\Controllers\Api\PdfmController::class, 'generateSpoolNumber']); // Elements Route::get('/elements', [\App\Http\Controllers\Api\PdfmController::class, 'getElements']); Route::post('/elements', [\App\Http\Controllers\Api\PdfmController::class, 'createElement']); // Joints Route::get('/joints', [\App\Http\Controllers\Api\PdfmController::class, 'getJoints']); Route::post('/joints', [\App\Http\Controllers\Api\PdfmController::class, 'createJoint']); Route::get('/joints/generate-number', [\App\Http\Controllers\Api\PdfmController::class, 'generateJointNumber']); // Welders Route::get('/welders', [\App\Http\Controllers\Api\PdfmController::class, 'getWelders']); Route::post('/welders', [\App\Http\Controllers\Api\PdfmController::class, 'createWelder']); // Welder Assignments Route::post('/assign-welder', [\App\Http\Controllers\Api\PdfmController::class, 'assignWelder']); }); // Surface Area API Routes Route::prefix('api/surface-area')->middleware('auth')->group(function () { Route::get('/elements', [\App\Http\Controllers\Api\SurfaceAreaController::class, 'getElements']); Route::get('/diameters', [\App\Http\Controllers\Api\SurfaceAreaController::class, 'getDiameters']); Route::get('/mto-total', [\App\Http\Controllers\Api\SurfaceAreaController::class, 'getMtoTotal']); Route::get('/get-saved-items', [\App\Http\Controllers\Api\SurfaceAreaController::class, 'getSavedItems']); Route::post('/save-calculation', [\App\Http\Controllers\Api\SurfaceAreaController::class, 'save']); }); // Read-Only API Routes for Admin-Ajax logic Route::prefix('api/read')->middleware('auth:sanctum,web')->group(function () { Route::get('/ndt-request', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'ndtRequest']); Route::get('/ndt-calculation', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'ndtCalculation']); Route::get('/spool-area-release', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'spoolAreaRelease']); Route::get('/spool-release-detail', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'spoolReleaseDetail']); Route::get('/repair-table', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'repairTable']); Route::get('/repair-table/welder-based-repair-ratio-distribution', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'welderBasedRepairRatioDistribution']); Route::get('/repair-table/defect-type-by-welder', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'defectTypeByWelder']); Route::get('/rfi-dashboard', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'rfiDashboard']); Route::get('/welder-qualification-status', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'welderQualificationStatus']); Route::get('/punch-list', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'punchList']); Route::get('/naks-welders', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'naksWelders']); // Test Packages Route::get('/test-package/pivot', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'testPackagePivot']); Route::get('/test-package/status-pivot', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'testPackageStatusPivot']); Route::get('/test-package/summary', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'testPackageSummary']); Route::get('/test-package/summary-2', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'testPackageSummary2']); Route::get('/welder-qualification-table', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'welderQualificationTable']); Route::get('/rfi-tasks', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'rfiTasks']); Route::get('/rfi-status', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'rfiStatus']); Route::get('/ndt-release-list', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'ndtReleaseList']); Route::get('/paint-release-list', [\App\Http\Controllers\Api\ApiReadOnlyController::class, 'paintReleaseList']); // Add more as they are verified }); // Notification API Routes (Performance optimized with caching) Route::prefix('api/notifications')->middleware('auth')->group(function () { // Get user's notifications with pagination Route::get('/list', [\App\Http\Controllers\NotificationController::class, 'getUserNotifications']); // Get recent notifications for dropdown (cached) Route::get('/recent', [\App\Http\Controllers\NotificationController::class, 'getRecentNotifications']); // Get unread count (cached) Route::get('/unread-count', [\App\Http\Controllers\NotificationController::class, 'getUnreadCount']); // Get notification types with counts (for inbox sidebar) Route::get('/types', [\App\Http\Controllers\NotificationController::class, 'getNotificationTypes']); // Get notifications by type Route::get('/by-type', [\App\Http\Controllers\NotificationController::class, 'getNotificationsByType']); // Mark notification as read Route::post('/mark-read/{id}', [\App\Http\Controllers\NotificationController::class, 'markAsRead']); // Mark notification as unread Route::post('/mark-unread/{id}', [\App\Http\Controllers\NotificationController::class, 'markAsUnread']); // Mark all notifications as read Route::post('/mark-all-read', [\App\Http\Controllers\NotificationController::class, 'markAllAsRead']); // Delete notification Route::delete('/{id}', [\App\Http\Controllers\NotificationController::class, 'delete']); // Delete all read notifications Route::post('/delete-read', [\App\Http\Controllers\NotificationController::class, 'deleteReadNotifications']); }); // Yorum kaydetme rotası - AdminAjaxController'dan bağımsız Route::post('/api/column-comment', [\App\Http\Controllers\ColumnCommentController::class, 'saveComment'])->middleware('auth'); // Inspection History Routes Route::prefix('ajax/inspection-history')->middleware('auth')->group(function () { Route::post('/upload', [\App\Http\Controllers\InspectionHistoryController::class, 'upload']); Route::get('/list', [\App\Http\Controllers\InspectionHistoryController::class, 'list']); Route::delete('/delete/{id}', [\App\Http\Controllers\InspectionHistoryController::class, 'delete']); Route::post('/bulk-delete', [\App\Http\Controllers\InspectionHistoryController::class, 'bulkDelete']); }); // Register Creator rotası Route::post('/admin/register-creator/dispatch-jobs', [\App\Http\Controllers\RegisterCreatorController::class, 'dispatchJobs']); Route::post('/admin/tp-creator/dispatch-jobs', [\App\Http\Controllers\TpCreatorController::class, 'dispatchJobs']); // Notification filtered list route Route::get('/admin/notifications/filtered-list', [\App\Http\Controllers\NotificationController::class, 'showFilteredList'])->middleware('auth')->name('notifications.filtered-list'); Route::get('/admin/notifications/get-filtered-data', [\App\Http\Controllers\NotificationController::class, 'getFilteredData'])->middleware('auth')->name('notifications.get-filtered-data'); $hash="admin"; Route::group(['prefix' => $hash, 'middleware' => 'auth'], function () { Route::post('/feedback/save-statuses', function () { foreach (request('statuses') as $id => $status) { $item = \App\Models\FeedbackReport::find($id); if ($item) { $item->status = $status; $item->save(); } } return back()->with('success', 'Statuses updated'); }); }); // Önbelleğe alınmış dashboard sayfası route'u Route::get('/'.$hash.'/cached-dashboard', "AdminController@cachedDashboard"); Route::match(['get', 'post'],'/'.$hash,"AdminController@default"); Route::get("/$hash/contents","AdminController@default"); Route::match(['get', 'post', 'put', 'delete'],"/$hash/{id}","AdminController@default"); Route::get("/$hash/new/{type}","AdminController@new"); Route::get("/$hash/export/{tableName}/{fileName?}","AdminController@exportExcel"); Route::post("/$hash/import/{tableName}","AdminController@importExcel"); Route::get("/$hash/truncate/{tableName}","AdminController@truncateTable"); Route::get("/$hash/delete/{tableName}/{id}","AdminController@delete"); Route::post("/$hash/create/{tableName}","AdminController@create"); Route::get("/$hash/autocomplete/{tableName}/{columnName}","AdminController@autocomplete"); Route::match(['get', 'post'],"/$hash/autocomplete_type/{type}","AdminController@autocompleteType"); Route::get("/$hash/fuzzy-autocomplete/{tableName}/{columnName?}","AdminController@fuzzyAutocomplete")->name('fuzzy-autocomplete'); Route::get("/$hash/detail/{tableName}/{columnName}","AdminController@rowDetail"); Route::get("/$hash/to-json/{tableName}","AdminController@tableToJson"); Route::put("/$hash/save-json/{tableName}","AdminController@saveJson"); Route::post("/$hash/insert/{tableName}","AdminController@insertJson"); Route::delete("/$hash/remove/{tableName}","AdminController@removeJson"); Route::get("/$hash/get/{tableName}/{columnName}/{value}","AdminController@getDetail"); Route::get("/$hash/link-creator/{tableName}/{id}","AdminController@linkCreator"); Route::post("/$hash/clone-row/{tableName}","AdminController@cloneRow"); Route::get("/$hash/user-guide/{module?}","AdminController@userGuide"); Route::get('import-status', "AdminController@importStatus"); Route::get('glide/{path}', function($path){ $server = \League\Glide\ServerFactory::create([ 'source' => app('filesystem')->disk('public')->getDriver(), 'cache' => storage_path('glide'), ]); return $server->getImageResponse($path, Input::query()); })->where('path', '.+'); Route::match(['get', 'post'],'/admin/action/{action}/{type}',"AdminController@action2"); Route::match(['get', 'post'],"/$hash/{type}/{id}","AdminController@default"); Route::match(['get', 'post'],"/$hash/{type}/{id}/{action}","AdminController@action"); Route::get('/l-{lang?}/',"ContentsController@default_lang"); Route::get('/l-{lang?}/{slug?}',"ContentsController@default_lang"); Route::get('/l-{lang?}/',"ContentsController@index"); Route::match(['get', 'post'],'/{slug?}',"ContentsController@default"); Auth::routes(); Route::get('/home', [\App\Http\Controllers\HomeController::class, 'index'])->name('home'); Auth::routes(); Route::get('/home', [\App\Http\Controllers\HomeController::class, 'index'])->name('home');