<?php  namespace App\Services\Pdf\BrandAwarenessReport;  use App\Models\Question; use App\Models\Applicant; use App\Models\Profession; use App\Enums\QuestionType; use App\Models\ClientSurvey; use App\Contracts\Reportable; use Illuminate\Support\Collection; use App\Enums\AvailableAnswerPositivity; use App\Contracts\BaReportGeneratorService; use App\Services\Applicants\IzzPdfEnpsCalculationService; use App\Services\ClientSurveys\ExportBaPublicReportService; use App\Services\Pdf\BrandAwarenessReport\Pages\BasicQuestions; use App\Services\Pdf\BrandAwarenessReport\Pages\ExtraQuestions; use App\Services\Pdf\BrandAwarenessReport\DataObjects\BaPublicDTO; use App\Services\Pdf\BrandAwarenessReport\DataObjects\EnpsDataObject; use App\Services\Pdf\BrandAwarenessReport\DataObjects\BaReportDataObject; use App\Services\Pdf\BrandAwarenessReport\DataObjects\GradingBasedOnDemographyDto;  class BaPublicReportGeneratorService implements BaReportGeneratorService { 	private ?ClientSurvey $baSurvey = null; 	private ?ClientSurvey $ppiSurvey = null;  	public function __construct( 		protected BaReportDataObject $baReportDataObject, 		protected ExtraQuestions $extraQuestions, 		protected BasicQuestions $basicQuestions, 		protected IzzPdfEnpsCalculationService $enpsService 	{}  	public function generate(Reportable $survey, string $locale, array $extras = []): BaReportDataObject{}  	public function setSurveys(Collection $applicants, string $locale): void{}  	public function setProfessions(string $locale): void{}  	public function setUpEnpsGrade(int $promoters_score, int $critics_score): void{}  	public function setUpDemographicQuestionsByEnpsGroups(Reportable $survey, Collection $applicants, string $locale): void{}  	public function setGenderedDataByPromoterType(Collection $applicantsByPromoterType, string $locale, ExportBaPublicReportService $exportBaPublicReportService): Collection{}  	public function setCompanyPositivityQuestion(Collection $applicants, string $locale): void{}  	public function setUpApplicantPositivityInRegardsToCompanyView(string $locale): void{}  	public function setUpApplicantPerceptionQuestionGroups(Reportable $survey, Collection $applicants, ExportBaPublicReportService $exportBaPublicReportService): void{}  	public function setUpDemographicQuestionsData(Collection $applicants, string $locale): void{}  	public function setUpBestAndWorstOverallGradedQuestionsByGender(Collection $applicants, string $locale): void{}  	public function getFilteredDemographicDataCollection(?Question $demographicQuestion, Collection $applicants, Collection $questions, ExportBaPublicReportService $exportBaPublicReportService, array $questionIds, string $locale): Collection{}  	public function setPercentageOfApplicantsWithoutSufficientData(): void{}  	protected function getEnpsCount(Collection $applicants): array{}  	protected function setUpEnpsCountByAnswerValue(Reportable $survey, Collection $applicants): void{} }