get(); return Inertia::render('Databases/TargetDatabases', [ 'databases' => $databases, ]); } public function create() { return Inertia::render('Databases/TargetDatabaseForm', [ 'database' => null, ]); } public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'host' => 'required|string|max:255', 'port' => 'required|integer|between:1,65535', 'database' => 'required|string|max:255', 'username' => 'required|string|max:255', 'password' => 'required|string', 'driver' => 'nullable|string|max:50', 'description' => 'nullable|string', ]); $validated['driver'] = $validated['driver'] ?? 'pgsql'; $database = TargetDatabase::create($validated); return redirect()->route('databases.target.index') ->with('success', 'Target database created successfully.'); } public function edit(TargetDatabase $database) { return Inertia::render('Databases/TargetDatabaseForm', [ 'database' => $database, ]); } public function update(Request $request, TargetDatabase $database) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'host' => 'required|string|max:255', 'port' => 'required|integer|between:1,65535', 'database' => 'required|string|max:255', 'username' => 'required|string|max:255', 'password' => 'nullable|string', 'driver' => 'nullable|string|max:50', 'description' => 'nullable|string', ]); if (empty($validated['password'])) { unset($validated['password']); } $database->update($validated); return redirect()->route('databases.target.index') ->with('success', 'Target database updated successfully.'); } public function destroy(TargetDatabase $database) { $database->delete(); return redirect()->route('databases.target.index') ->with('success', 'Target database deleted successfully.'); } public function testConnection(TargetDatabase $database) { $result = $this->connectionService->testTargetConnection($database); return response()->json($result); } }