Commune::withCount('commandes', 'contrats')->get(), ]); } public function store(Request $request): RedirectResponse { $validated = $request->validate([ 'nom' => 'required|string|max:100|unique:communes,nom', 'code_postal' => 'nullable|string|max:10', ]); Commune::create($validated); return back()->with('success', 'Commune créée.'); } public function update(Request $request, Commune $commune): RedirectResponse { $validated = $request->validate([ 'nom' => 'required|string|max:100|unique:communes,nom,' . $commune->id, 'code_postal' => 'nullable|string|max:10', ]); $commune->update($validated); return back()->with('success', 'Commune mise à jour.'); } public function destroy(Commune $commune): RedirectResponse { if ($commune->commandes()->exists() || $commune->contrats()->exists()) { return back()->with('error', 'Impossible de supprimer une commune liée à des commandes ou des contrats.'); } $commune->delete(); return back()->with('success', 'Commune supprimée.'); } }