validated(); $query = LotterySetting::query()->orderBy('setting_key'); if (! empty($validated['group'])) { $query->where('group_name', $validated['group']); } $items = $query->get()->map(fn (LotterySetting $s): array => [ 'key' => $s->setting_key, 'value' => $s->value_json, 'group' => $s->group_name, 'description' => $s->description_zh, ]); return ApiResponse::success(['items' => $items]); } public function update(AdminSettingUpdateRequest $request, string $key): JsonResponse { $setting = LotterySetting::query()->where('setting_key', $key)->first(); if ($setting === null) { return ApiResponse::error('Setting not found', 404); } LotterySettings::put( $key, $request->validated('value'), $setting->group_name, $setting->description_zh, ); $fresh = LotterySetting::query()->where('setting_key', $key)->first(); return ApiResponse::success([ 'key' => $fresh->setting_key, 'value' => $fresh->value_json, 'group' => $fresh->group_name, 'description' => $fresh->description_zh, ]); } }