prefix('maintenance') ->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('/health', [HealthController::class, 'index']); Route::post('/health/repair', [HealthController::class, 'repair']); // Equipment Route::get('/equipment', [EquipmentController::class, 'index']); Route::get('/equipment/create', [EquipmentController::class, 'create']); Route::post('/equipment', [EquipmentController::class, 'store']); Route::get('/equipment/{id}', [EquipmentController::class, 'show']); Route::get('/equipment/{id}/edit', [EquipmentController::class, 'edit']); Route::put('/equipment/{id}', [EquipmentController::class, 'update']); Route::delete('/equipment/{id}', [EquipmentController::class, 'destroy']); Route::get('/dropdowns/assets', [EquipmentController::class, 'assetsDropdown']); // Equipment parts (BOM) Route::get('/equipment/{equipment_id}/parts/create', [EquipmentPartController::class, 'create']); Route::post('/equipment/{equipment_id}/parts', [EquipmentPartController::class, 'store']); Route::get('/equipment/{equipment_id}/parts/{id}/edit', [EquipmentPartController::class, 'edit']); Route::put('/equipment/{equipment_id}/parts/{id}', [EquipmentPartController::class, 'update']); Route::delete('/equipment/{equipment_id}/parts/{id}', [EquipmentPartController::class, 'destroy']); // Settings Route::get('/settings', [SettingsController::class, 'index']); Route::put('/settings', [SettingsController::class, 'update']); // CRM contact integration API Route::get('/contacts/{contact_id}/equipment', [ContactMaintenanceController::class, 'equipment']); // Categories Route::get('/equipment-categories', [EquipmentCategoryController::class, 'index']); Route::get('/equipment-categories/create', [EquipmentCategoryController::class, 'create']); Route::post('/equipment-categories', [EquipmentCategoryController::class, 'store']); Route::get('/equipment-categories/{id}/edit', [EquipmentCategoryController::class, 'edit']); Route::put('/equipment-categories/{id}', [EquipmentCategoryController::class, 'update']); Route::delete('/equipment-categories/{id}', [EquipmentCategoryController::class, 'destroy']); // Production lines Route::get('/production-lines', [ProductionLineController::class, 'index']); Route::get('/production-lines/create', [ProductionLineController::class, 'create']); Route::post('/production-lines', [ProductionLineController::class, 'store']); Route::get('/production-lines/{id}/edit', [ProductionLineController::class, 'edit']); Route::put('/production-lines/{id}', [ProductionLineController::class, 'update']); Route::delete('/production-lines/{id}', [ProductionLineController::class, 'destroy']); // Part catalogs Route::get('/part-catalogs', [PartCatalogController::class, 'index']); Route::get('/part-catalogs/create', [PartCatalogController::class, 'create']); Route::post('/part-catalogs', [PartCatalogController::class, 'store']); Route::get('/part-catalogs/{id}/edit', [PartCatalogController::class, 'edit']); Route::put('/part-catalogs/{id}', [PartCatalogController::class, 'update']); Route::delete('/part-catalogs/{id}', [PartCatalogController::class, 'destroy']); // Service providers Route::get('/service-providers', [ServiceProviderController::class, 'index']); Route::get('/service-providers/create', [ServiceProviderController::class, 'create']); Route::post('/service-providers', [ServiceProviderController::class, 'store']); Route::get('/service-providers/{id}/edit', [ServiceProviderController::class, 'edit']); Route::put('/service-providers/{id}', [ServiceProviderController::class, 'update']); Route::delete('/service-providers/{id}', [ServiceProviderController::class, 'destroy']); // Preventive schedules Route::get('/preventive-schedules', [PreventiveScheduleController::class, 'index']); Route::get('/preventive-schedules/create', [PreventiveScheduleController::class, 'create']); Route::post('/preventive-schedules', [PreventiveScheduleController::class, 'store']); Route::get('/preventive-schedules/{id}/edit', [PreventiveScheduleController::class, 'edit']); Route::put('/preventive-schedules/{id}', [PreventiveScheduleController::class, 'update']); Route::delete('/preventive-schedules/{id}', [PreventiveScheduleController::class, 'destroy']); // Overhauls Route::get('/overhauls', [OverhaulController::class, 'index']); Route::get('/overhauls/create', [OverhaulController::class, 'create']); Route::post('/overhauls', [OverhaulController::class, 'store']); Route::get('/overhauls/{id}', [OverhaulController::class, 'show']); Route::get('/overhauls/{id}/edit', [OverhaulController::class, 'edit']); Route::put('/overhauls/{id}', [OverhaulController::class, 'update']); Route::delete('/overhauls/{id}', [OverhaulController::class, 'destroy']); // Rebuilds Route::get('/rebuilds', [RebuildController::class, 'index']); Route::get('/rebuilds/create', [RebuildController::class, 'create']); Route::post('/rebuilds', [RebuildController::class, 'store']); Route::get('/rebuilds/{id}', [RebuildController::class, 'show']); Route::get('/rebuilds/{id}/edit', [RebuildController::class, 'edit']); Route::put('/rebuilds/{id}', [RebuildController::class, 'update']); Route::post('/rebuilds/{id}/start', [RebuildController::class, 'start']); Route::post('/rebuilds/{id}/advance', [RebuildController::class, 'advancePhase']); Route::post('/rebuilds/{id}/hold', [RebuildController::class, 'hold']); Route::post('/rebuilds/{id}/cancel', [RebuildController::class, 'cancel']); Route::delete('/rebuilds/{id}', [RebuildController::class, 'destroy']); // Work orders Route::get('/work-orders', [WorkOrderController::class, 'index']); Route::get('/work-orders/create', [WorkOrderController::class, 'create']); Route::post('/work-orders', [WorkOrderController::class, 'store']); Route::get('/work-orders/{id}', [WorkOrderController::class, 'show']); Route::get('/work-orders/{id}/edit', [WorkOrderController::class, 'edit']); Route::put('/work-orders/{id}', [WorkOrderController::class, 'update']); Route::post('/work-orders/{id}/consume-part', [WorkOrderController::class, 'consumePart']); Route::delete('/work-orders/{id}', [WorkOrderController::class, 'destroy']); // Material lists (parts procurement for overhaul/rebuild/work orders) Route::get('/material-lists/{source_type}/{source_id}/panel', [MaterialListController::class, 'panel']); Route::post('/material-lists/{source_type}/{source_id}/destination', [MaterialListController::class, 'updateDestination']); Route::post('/material-lists/{source_type}/{source_id}/lines', [MaterialListController::class, 'storeLine']); Route::post('/material-lists/{source_type}/{source_id}/import-bom', [MaterialListController::class, 'importBom']); Route::post('/material-lists/{source_type}/{source_id}/purchase-requisition', [MaterialListController::class, 'createPurchaseRequisition']); Route::post('/material-lists/{source_type}/{source_id}/purchase-orders', [MaterialListController::class, 'createPurchaseOrders']); Route::post('/material-lines/{line_id}/transfer', [MaterialListController::class, 'requestTransfer']); Route::delete('/material-lines/{line_id}', [MaterialListController::class, 'destroyLine']); Route::get('/material-lines/{line_id}/supplier-suggestions', [MaterialListController::class, 'supplierSuggestions']); // Field missions (crew dispatch) Route::get('/field-missions', [FieldMissionController::class, 'index']); Route::get('/field-missions/{id}', [FieldMissionController::class, 'show']); Route::post('/field-missions/{source_type}/{source_id}/create', [FieldMissionController::class, 'createForSource']); Route::post('/field-missions/{id}/crew', [FieldMissionController::class, 'storeCrew']); Route::put('/field-missions/crew/{crew_id}', [FieldMissionController::class, 'updateCrew']); Route::delete('/field-missions/crew/{crew_id}', [FieldMissionController::class, 'destroyCrew']); Route::post('/field-missions/{id}/items', [FieldMissionController::class, 'storeItem']); Route::delete('/field-missions/items/{item_id}', [FieldMissionController::class, 'destroyItem']); Route::post('/field-missions/{id}/dispatch', [FieldMissionController::class, 'dispatchMission']); Route::post('/field-missions/{id}/returns', [FieldMissionController::class, 'recordReturns']); Route::post('/field-missions/{id}/close', [FieldMissionController::class, 'closeMission']); Route::post('/field-missions/{id}/expenses', [FieldMissionController::class, 'storeExpense']); Route::delete('/field-missions/expenses/{expense_id}', [FieldMissionController::class, 'destroyExpense']); // Repair dispatch routes (internal holding / external) Route::get('/repair-dispatches', [RepairDispatchController::class, 'index']); Route::get('/repair-dispatches/org-units', [RepairDispatchController::class, 'orgUnits']); Route::get('/repair-dispatches/{id}', [RepairDispatchController::class, 'show']); Route::post('/repair-dispatches/line/{line_id}', [RepairDispatchController::class, 'store']); Route::post('/repair-dispatches/{id}/advance', [RepairDispatchController::class, 'advance']); Route::post('/repair-dispatches/{id}/cancel', [RepairDispatchController::class, 'cancel']); // Spare parts Route::get('/spare-parts', [SparePartController::class, 'index']); Route::get('/spare-parts/create', [SparePartController::class, 'create']); Route::post('/spare-parts', [SparePartController::class, 'store']); Route::get('/spare-parts/{id}/edit', [SparePartController::class, 'edit']); Route::put('/spare-parts/{id}', [SparePartController::class, 'update']); Route::delete('/spare-parts/{id}', [SparePartController::class, 'destroy']); // Checklists Route::get('/checklists', [ChecklistController::class, 'index']); Route::get('/checklists/create', [ChecklistController::class, 'create']); Route::post('/checklists', [ChecklistController::class, 'store']); Route::get('/checklists/{id}/edit', [ChecklistController::class, 'edit']); Route::put('/checklists/{id}', [ChecklistController::class, 'update']); Route::delete('/checklists/{id}', [ChecklistController::class, 'destroy']); // Service records Route::get('/service-records', [ServiceRecordController::class, 'index']); Route::get('/service-records/create', [ServiceRecordController::class, 'create']); Route::post('/service-records', [ServiceRecordController::class, 'store']); Route::get('/service-records/{id}', [ServiceRecordController::class, 'show']); Route::get('/service-records/{id}/edit', [ServiceRecordController::class, 'edit']); Route::put('/service-records/{id}', [ServiceRecordController::class, 'update']); Route::delete('/service-records/{id}', [ServiceRecordController::class, 'destroy']); // Part replacements Route::get('/part-replacements', [PartReplacementController::class, 'index']); Route::get('/part-replacements/create', [PartReplacementController::class, 'create']); Route::post('/part-replacements', [PartReplacementController::class, 'store']); Route::get('/part-replacements/equipment/{equipment_id}/parts', [PartReplacementController::class, 'equipmentParts']); Route::get('/part-replacements/{id}/edit', [PartReplacementController::class, 'edit']); Route::put('/part-replacements/{id}', [PartReplacementController::class, 'update']); Route::delete('/part-replacements/{id}', [PartReplacementController::class, 'destroy']); // Tool crib Route::get('/tools', [ToolController::class, 'index']); Route::get('/tools/create', [ToolController::class, 'create']); Route::post('/tools', [ToolController::class, 'store']); Route::get('/tools/{id}/edit', [ToolController::class, 'edit']); Route::put('/tools/{id}', [ToolController::class, 'update']); Route::delete('/tools/{id}', [ToolController::class, 'destroy']); Route::get('/tools/{id}/checkout', [ToolController::class, 'checkoutForm']); Route::post('/tools/{id}/checkout', [ToolController::class, 'checkout']); Route::post('/tools/{id}/return', [ToolController::class, 'returnTool']); // Inspection visits Route::get('/inspection-visits', [InspectionVisitController::class, 'index']); Route::get('/inspection-visits/create', [InspectionVisitController::class, 'create']); Route::post('/inspection-visits', [InspectionVisitController::class, 'store']); Route::get('/inspection-visits/{id}', [InspectionVisitController::class, 'show']); Route::get('/inspection-visits/{id}/edit', [InspectionVisitController::class, 'edit']); Route::put('/inspection-visits/{id}', [InspectionVisitController::class, 'update']); Route::delete('/inspection-visits/{id}', [InspectionVisitController::class, 'destroy']); // Failure reports Route::get('/failure-reports', [FailureReportController::class, 'index']); Route::get('/failure-reports/create', [FailureReportController::class, 'create']); Route::post('/failure-reports', [FailureReportController::class, 'store']); Route::get('/failure-reports/{id}/edit', [FailureReportController::class, 'edit']); Route::put('/failure-reports/{id}', [FailureReportController::class, 'update']); Route::delete('/failure-reports/{id}', [FailureReportController::class, 'destroy']); // Dispatch board & service contracts Route::get('/dispatch-board', [DispatchBoardController::class, 'index']); Route::post('/dispatch-board', [DispatchBoardController::class, 'store']); Route::put('/dispatch-board/{id}', [DispatchBoardController::class, 'update']); Route::get('/service-contracts', [ServiceContractController::class, 'index']); Route::get('/service-contracts/create', [ServiceContractController::class, 'create']); Route::post('/service-contracts', [ServiceContractController::class, 'store']); Route::get('/service-contracts/{id}/edit', [ServiceContractController::class, 'edit']); Route::put('/service-contracts/{id}', [ServiceContractController::class, 'update']); Route::delete('/service-contracts/{id}', [ServiceContractController::class, 'destroy']); // Reports & calendar Route::get('/reports', [ReportController::class, 'index']); Route::get('/reports/export', [ReportController::class, 'export']); Route::get('/calendar', [CalendarController::class, 'index']); Route::get('/calendar/events', [CalendarController::class, 'events']); Route::get('/iot', [IotController::class, 'index']); Route::post('/iot/devices', [IotController::class, 'storeDevice']); Route::post('/iot/rules', [IotController::class, 'storeRule']); Route::post('/iot/ingest', [IotController::class, 'ingest']); });