name('dashboard'); // Redirect /databases to source databases Route::redirect('/databases', '/databases/source'); // Source Databases Route::prefix('databases/source')->name('databases.source.')->group(function () { Route::get('/', [SourceDatabaseController::class, 'index'])->name('index'); Route::get('/create', [SourceDatabaseController::class, 'create'])->name('create'); Route::post('/', [SourceDatabaseController::class, 'store'])->name('store'); Route::get('/{database}/edit', [SourceDatabaseController::class, 'edit'])->name('edit'); Route::put('/{database}', [SourceDatabaseController::class, 'update'])->name('update'); Route::delete('/{database}', [SourceDatabaseController::class, 'destroy'])->name('destroy'); Route::get('/{database}/test', [SourceDatabaseController::class, 'testConnection'])->name('test'); Route::post('/{database}/sync', [SourceDatabaseController::class, 'sync'])->name('sync'); }); // Target Databases Route::prefix('databases/target')->name('databases.target.')->group(function () { Route::get('/', [TargetDatabaseController::class, 'index'])->name('index'); Route::get('/create', [TargetDatabaseController::class, 'create'])->name('create'); Route::post('/', [TargetDatabaseController::class, 'store'])->name('store'); Route::get('/{database}/edit', [TargetDatabaseController::class, 'edit'])->name('edit'); Route::put('/{database}', [TargetDatabaseController::class, 'update'])->name('update'); Route::delete('/{database}', [TargetDatabaseController::class, 'destroy'])->name('destroy'); Route::get('/{database}/test', [TargetDatabaseController::class, 'testConnection'])->name('test'); }); // Schemas Route::prefix('schemas')->name('schemas.')->group(function () { Route::get('/', [SchemaController::class, 'index'])->name('index'); Route::get('/{database}', [SchemaController::class, 'show'])->name('show'); Route::post('/{database}/sync', [SchemaController::class, 'sync'])->name('sync'); Route::get('/{database}/check-changes', [SchemaController::class, 'checkChanges'])->name('check-changes'); Route::get('/tables/{table}', [SchemaController::class, 'tableDetail'])->name('table.detail'); Route::put('/columns/{column}', [SchemaController::class, 'updateColumn'])->name('columns.update'); Route::get('/pending-changes', [SchemaController::class, 'pendingChanges'])->name('pending-changes'); Route::post('/changes/{change}/apply', [SchemaController::class, 'applyChange'])->name('changes.apply'); }); // Migration Schedules Route::prefix('migrations')->name('migrations.')->group(function () { Route::get('/', [MigrationScheduleController::class, 'index'])->name('index'); Route::get('/create', [MigrationScheduleController::class, 'create'])->name('create'); Route::post('/', [MigrationScheduleController::class, 'store'])->name('store'); Route::get('/{schedule}', [MigrationScheduleController::class, 'show'])->name('show'); Route::get('/{schedule}/edit', [MigrationScheduleController::class, 'edit'])->name('edit'); Route::put('/{schedule}', [MigrationScheduleController::class, 'update'])->name('update'); Route::delete('/{schedule}', [MigrationScheduleController::class, 'destroy'])->name('destroy'); Route::post('/{schedule}/run', [MigrationScheduleController::class, 'runNow'])->name('run'); Route::post('/{schedule}/toggle', [MigrationScheduleController::class, 'toggle'])->name('toggle'); });