prefix('industrial-engineering') ->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::get('/dashboard', [DashboardController::class, 'index']); Route::get('/item-masters', [ItemMasterController::class, 'index']); Route::get('/item-masters/create', [ItemMasterController::class, 'create']); Route::post('/item-masters', [ItemMasterController::class, 'store']); Route::get('/item-masters/{id}', [ItemMasterController::class, 'show']); Route::get('/production-lines', [ProductionLineController::class, 'index']); Route::get('/production-lines/{id}/structure', [ProductionLineController::class, 'structure']); Route::post('/production-lines/{id}/live-cost', [LineOperationsController::class, 'liveCostAnalysis']); Route::get('/mrp', [MrpController::class, 'index']); Route::post('/mrp/run', [MrpController::class, 'run']); Route::post('/production-lines/{id}/run-mrp', [LineOperationsController::class, 'runMrp']); Route::post('/production-lines/{id}/sync-cmms', [LineOperationsController::class, 'syncCmms']); Route::post('/production-lines/{id}/resolve-connections', [LineOperationsController::class, 'resolveConnections']); Route::get('/bom-structure/{bomId}/tree', [BomStructureController::class, 'tree']); Route::post('/bom-structure/{bomId}/nodes', [BomStructureController::class, 'storeNode']); Route::post('/bom-structure/{bomId}/move', [BomStructureController::class, 'move']); Route::put('/bom-structure/nodes/{lineId}', [BomStructureController::class, 'updateNode']); Route::delete('/bom-structure/nodes/{lineId}', [BomStructureController::class, 'destroyNode']); Route::post('/bom-structure/{bomId}/duplicate-branch', [BomStructureController::class, 'duplicateBranch']); Route::post('/bom-structure/quick-item', [BomStructureController::class, 'quickCreateItem']); Route::get('/bom-structure/{bomId}/templates', [BomStructureController::class, 'listTemplates']); Route::post('/bom-structure/{bomId}/apply-template', [BomStructureController::class, 'applyTemplate']); Route::post('/bom-structure/{bomId}/bulk-nodes', [BomStructureController::class, 'bulkAddNodes']); Route::post('/bom-structure/templates', [BomStructureController::class, 'saveTemplate']); Route::delete('/bom-structure/templates/{id}', [BomStructureController::class, 'destroyTemplate']); Route::get('/products', [ProductHubController::class, 'index']); Route::get('/products/create', [ProductHubController::class, 'create']); Route::post('/products', [ProductHubController::class, 'store']); Route::get('/products/{id}', [ProductHubController::class, 'show']); Route::post('/products/{id}/lines', [ProductHubController::class, 'storeLine']); Route::post('/products/{platformId}/revisions/{revisionId}/machines', [ProductHubController::class, 'storeMachine']); Route::post('/products/{platformId}/bom-lines/{parentLineId}/parts', [ProductHubController::class, 'storePart']); Route::redirect('/platforms', '/industrial-engineering/products'); Route::get('/platforms/create', fn () => redirect()->action([ProductHubController::class, 'create'])); Route::post('/platforms', [ProductHubController::class, 'store']); Route::get('/platforms/{id}', fn ($id) => redirect()->action([ProductHubController::class, 'show'], $id)); Route::get('/line-revisions', [LineRevisionController::class, 'index']); Route::get('/line-revisions/create', [LineRevisionController::class, 'create']); Route::post('/line-revisions', [LineRevisionController::class, 'store']); Route::get('/line-revisions/{id}', [LineRevisionController::class, 'show']); Route::get('/engineering-changes', [EngineeringChangeOrderController::class, 'index']); Route::get('/engineering-changes/create', [EngineeringChangeOrderController::class, 'create']); Route::post('/engineering-changes', [EngineeringChangeOrderController::class, 'store']); Route::get('/engineering-changes/{id}', [EngineeringChangeOrderController::class, 'show']); Route::post('/engineering-changes/{id}/status', [EngineeringChangeOrderController::class, 'updateStatus']); Route::get('/boms', [BomController::class, 'index']); Route::get('/boms/create', [BomController::class, 'create']); Route::post('/boms', [BomController::class, 'store']); Route::get('/boms/{id}', [BomController::class, 'show']); Route::post('/boms/{id}/derive-sbom', [BomController::class, 'deriveSbom']); Route::post('/boms/{id}/lines', [BomController::class, 'storeLine']); Route::get('/cost-scenarios', [CostScenarioController::class, 'index']); Route::get('/cost-scenarios/create', [CostScenarioController::class, 'create']); Route::post('/cost-scenarios', [CostScenarioController::class, 'store']); Route::get('/cost-scenarios/{id}', [CostScenarioController::class, 'show']); Route::post('/cost-scenarios/compare', [CostScenarioController::class, 'compare']); Route::get('/release-packages', [ReleasePackageController::class, 'index']); Route::get('/release-packages/create', [ReleasePackageController::class, 'create']); Route::post('/release-packages', [ReleasePackageController::class, 'store']); Route::get('/release-packages/{id}', [ReleasePackageController::class, 'show']); Route::post('/release-packages/{id}/signoff', [ReleasePackageController::class, 'signoff']); Route::post('/release-packages/{id}/release', [ReleasePackageController::class, 'release']); Route::post('/release-packages/{id}/work-orders', [ReleasePackageController::class, 'createWorkOrder']); Route::get('/serialized-units', [SerializedUnitController::class, 'index']); Route::get('/serialized-units/create', [SerializedUnitController::class, 'create']); Route::post('/serialized-units', [SerializedUnitController::class, 'store']); Route::get('/serialized-units/{id}', [SerializedUnitController::class, 'show']); Route::post('/serialized-units/{id}/components', [SerializedUnitController::class, 'addComponent']); Route::post('/serialized-units/{id}/complete', [SerializedUnitController::class, 'completeBuild']); Route::get('/installed-assets', [InstalledAssetController::class, 'index']); Route::get('/lookup', [InstalledAssetController::class, 'lookup']); Route::get('/installed-assets/{id}', [InstalledAssetController::class, 'show']); Route::post('/installed-assets/register', [InstalledAssetController::class, 'registerFromUnit']); Route::post('/installed-assets/{id}/sync-maintenance', [InstalledAssetController::class, 'syncMaintenance']); Route::get('/sourcing', [SourcingController::class, 'index']); Route::get('/sourcing/create', [SourcingController::class, 'create']); Route::post('/sourcing', [SourcingController::class, 'store']); Route::get('/sourcing/{id}', [SourcingController::class, 'show']); Route::get('/sourcing/stock/search', [SourcingController::class, 'searchStock']); Route::get('/research', [ResearchProjectController::class, 'index']); Route::get('/research/create', [ResearchProjectController::class, 'create']); Route::post('/research', [ResearchProjectController::class, 'store']); Route::get('/research/{id}', [ResearchProjectController::class, 'show']); Route::post('/research/{id}/competitors', [ResearchProjectController::class, 'addCompetitor']); Route::get('/cpq', [CpqController::class, 'index']); Route::get('/cpq/create', [CpqController::class, 'create']); Route::get('/cpq/platforms/{platformId}/configure', [CpqController::class, 'configure']); Route::post('/cpq', [CpqController::class, 'store']); Route::get('/cpq/{id}', [CpqController::class, 'show']); Route::post('/cpq/{id}/quote', [CpqController::class, 'quote']); });