public function getSurveyPdfCodes(ClientSurvey $id, Request $request, ClientSurveyApplicantCodesPdfMaker $pdfMaker): Response 	{ 		if (getUser()->user_id != $id->client_id || $id->survey_type == SurveyType::PPI || $id->survey_type == SurveyType::BA) { 			abort(403); 		}  		$client = getUser()->user;  		$codes = $id->getCodesForPdfGeneration();  		if (empty($codes)) { 			abort(403, (string) __('exceptions.no-codes-to-generate')); 		}  		$url = $client->domain->getQuestionnaireStartUrl(); 		$locale = $client->default_language;  		$id->update([ 			'has_downloaded_codes' => true, 		]);  		$userActivityService = new UserActivityService($request); 		$userActivityService->createCustomEntry($id, UserActivityType::Read);  		return $pdfMaker->generatePdf($codes, $id->client->authParent?->name, $url, $locale, $id->survey_type); 	}