input('per_page', 10), 10), 100); $users = User::query() ->latest() ->paginate($perPage) ->through(fn (User $user) => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'group' => $user->group->value, 'created_at' => $user->created_at?->toISOString(), 'editUrl' => route('users.edit', $user), 'destroyUrl' => route('users.destroy', $user), ]); return Inertia::render('users/Index', [ 'users' => $users, 'createUrl' => route('users.create'), ]); } /** * Show the form for creating a new user. */ public function create(): Response { return Inertia::render('users/Create', [ 'indexUrl' => route('users.index'), 'storeUrl' => route('users.store'), 'userGroups' => \App\Enums\UserGroup::asSelectArray(), ]); } /** * Store a newly created user in storage. */ public function store(StoreUserRequest $request): RedirectResponse { User::query()->create($request->validated()); return to_route('users.index'); } /** * Show the form for editing the specified user. */ public function edit(User $user): Response { return Inertia::render('users/Edit', [ 'user' => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'group' => $user->group->value, ], 'indexUrl' => route('users.index'), 'updateUrl' => route('users.update', $user), 'userGroups' => \App\Enums\UserGroup::asSelectArray(), ]); } /** * Update the specified user in storage. */ public function update(UpdateUserRequest $request, User $user): RedirectResponse { $data = $request->validated(); if (empty($data['password'])) { unset($data['password']); unset($data['password_confirmation']); } $user->update($data); return to_route('users.index'); } /** * Remove the specified user from storage. */ public function destroy(User $user): RedirectResponse { $user->delete(); return to_route('users.index'); } }