public function exportBasicReportPdf(Reportable $survey, string $locale): array 	{ 		$client_survey_service = new ClientSurveyService; 		$enps_service = new IzzPdfEnpsCalculationService; 		$engagement_service = new IzzPdfEngagementCalculationService; 		$categories_with_best_score = []; 		$categories_with_worst_score = []; 		$bg_sides_categories_number = 3; 		$client_survey_comments_per_page = 10; 		$bg_category_sides_questions_number = 6;  		$categories = $survey->getCategories(); 		$applicants = $survey->getApplicants();  		// ENPS 		$enps_score = $enps_service->calculateEnpsGrade($survey); 		$enps_percentage_data = $enps_service->calculatePercentageDataForEnpsGradeCalculation($survey);  		// ENGAGEMENT 		$applicant_engagement_percentages = $engagement_service->calculateApplicantEngagementPercentages($survey);  		// QUESTION & APPLICANTS IDs 		$questions_ids = $categories->pluck('questions')->flatten()->pluck('id')->toArray();  		$applicant_ids = $applicants->pluck('id')->toArray();  		// QUESTIONS & CATEGORIES AVG SCORE 		$categories_with_avg_score = $this->getCategoriesAverageScore($categories, $locale, $applicant_ids);  		$questions_answers = $client_survey_service->calculateClientSurveyQuestionsAverageScore($questions_ids, $applicant_ids); 		$questions_with_score_and_title = $this->getQuestionsWithAverageScoreAndTitle($questions_answers, $locale);  		// QUESTIONS (CATEGORIES BEST & WORST) SIDES 		$questions_sort_by_score = collect($questions_with_score_and_title)->sortBy([['score', 'asc']])->toArray(); 		$questions_with_worst_score = array_slice($questions_sort_by_score, 0, $bg_category_sides_questions_number);  		$questions_sort_by_score = collect($questions_with_score_and_title)->sortBy([['score', 'desc']])->toArray(); 		$questions_with_best_score = array_slice($questions_sort_by_score, 0, $bg_category_sides_questions_number);  		// CATEGORIES (BEST & WORST) SIDES 		$categories_sort_by_score = collect($categories_with_avg_score)->sortBy([['score', 'asc']])->toArray(); 		$categories_with_worst_score = array_slice($categories_sort_by_score, 0, $bg_sides_categories_number);  		$categories_sort_by_score = collect($categories_with_avg_score)->sortBy([['score', 'desc']])->toArray(); 		$categories_with_best_score = array_slice($categories_sort_by_score, 0, $bg_sides_categories_number); 		$applicant_notes = []; 		$array_of_applicants = [];  		// CLIENT SURVEY COMMENTS 		if ($survey->showReportableComments()) { 			$applicant_notes = $applicants->whereNotNull('applicant_note')->toArray(); 			$array_of_applicants = array_chunk($applicant_notes, $client_survey_comments_per_page); 		}  		$category_pages = $categories->count();  		$headerLogoUrl = $this->getHeaderLogoUrl($locale);  		return [$survey, $categories, $category_pages, $categories_with_avg_score, $categories_with_best_score, $questions_with_best_score, $categories_with_worst_score, $questions_with_worst_score, $array_of_applicants, $enps_score, $enps_percentage_data, $applicant_engagement_percentages, $headerLogoUrl]; 	}