lotteryAdmin(); /** @var RiskCapVersion $version */ $version = RiskCapVersion::query()->whereKey($id)->firstOrFail(); if ($version->status !== ConfigVersionStatus::Draft->value) { return ApiResponse::error( 'version is not draft', ErrorCode::ConfigVersionNotDraft->value, null, 400, ); } $data = $request->validate([ 'items' => ['required', 'array', 'min:1'], 'items.*.draw_id' => ['sometimes', 'nullable', 'integer', 'exists:draws,id'], 'items.*.normalized_number' => ['required', 'string', 'size:4', 'regex:/^[0-9]{4}$/'], 'items.*.cap_amount' => ['required', 'integer', 'min:0'], 'items.*.cap_type' => ['required', 'string', 'max:16'], ]); $service->replaceItems($version, $data['items'], $admin); return ApiResponse::success( AdminConfigPresenter::riskCapVersionDetail($version->fresh()->load('items')), ); } }