authorize('viewAny', Zone::class); $zones = Zone::withCount('devices')->orderBy('name')->get(); return Inertia::render('Zones/Index', [ 'zones' => ZoneResource::collection($zones)->resolve(), ]); } public function create() { $this->authorize('create', Zone::class); return Inertia::render('Zones/Create'); } public function store(ZoneRequest $request) { $request->user()->zones()->create($request->validated()); return redirect()->route('zones.index')->with('status', 'Зона создана.'); } public function edit(Zone $zone) { $this->authorize('update', $zone); return Inertia::render('Zones/Edit', [ 'zone' => (new ZoneResource($zone))->resolve(), ]); } public function update(ZoneRequest $request, Zone $zone) { $zone->update($request->validated()); return redirect()->route('zones.index')->with('status', 'Зона обновлена.'); } public function destroy(Zone $zone) { $this->authorize('delete', $zone); $zone->delete(); return redirect()->route('zones.index')->with('status', 'Зона удалена.'); } }