orderBy('name') ->get(); return view('network.segments.index', compact('segments')); } public function create(): View { return view('network.segments.create'); } public function store(Request $request): RedirectResponse { $validated = $request->validate([ 'name' => ['required', 'string', 'max:100'], 'subnet' => ['required', 'string', 'max:50'], 'vlan_id' => ['nullable', 'integer', 'min:1', 'max:4094'], 'active' => ['boolean'], 'description' => ['nullable', 'string', 'max:500'], ]); $validated['active'] = $request->boolean('active', true); $validated['created_by'] = auth()->id(); NetworkSegment::create($validated); return redirect()->route('network.segments.index') ->with('success', "Segment \"{$validated['name']}\" angelegt."); } public function show(NetworkSegment $segment): View { $scans = $segment->scans()->latest()->paginate(20); $latestScan = $segment->scans()->latest()->first(); return view('network.segments.show', compact('segment', 'scans', 'latestScan')); } public function edit(NetworkSegment $segment): View { return view('network.segments.edit', compact('segment')); } public function update(Request $request, NetworkSegment $segment): RedirectResponse { $validated = $request->validate([ 'name' => ['required', 'string', 'max:100'], 'subnet' => ['required', 'string', 'max:50'], 'vlan_id' => ['nullable', 'integer', 'min:1', 'max:4094'], 'active' => ['boolean'], 'description' => ['nullable', 'string', 'max:500'], ]); $validated['active'] = $request->boolean('active', true); $segment->update($validated); return redirect()->route('network.segments.index') ->with('success', "Segment \"{$segment->name}\" aktualisiert."); } public function destroy(NetworkSegment $segment): RedirectResponse { $name = $segment->name; $segment->delete(); return redirect()->route('network.segments.index') ->with('success', "Segment \"{$name}\" gelöscht."); } }