<?php  namespace App\Services\Pdf\GeneralReport\Services;  use Illuminate\Support\Collection; use App\Contracts\DemographicDataObject; use App\Services\Pdf\GeneralReport\DataObjects\AgeDataObject; use App\Services\Pdf\GeneralReport\DataObjects\GenderDataObject; use App\Services\Pdf\GeneralReport\DataObjects\GeneralYearsWorkingDataObject; use App\Services\Pdf\GeneralReport\DataObjects\GeneralQualificationDataObject; use App\Services\Pdf\GeneralReport\DataProviders\DemographicQuestionsDataProvider;  abstract class DemographicGeneralService { 	/** 	 * @param AgeDataObject|DemographicDataObject|GenderDataObject|GeneralQualificationDataObject|GeneralYearsWorkingDataObject $dataObject 	 */ 	public function __construct(protected DemographicDataObject $dataObject, protected DemographicQuestionsDataProvider $demographicQuestionsDataProvider){}  	/** 	 * @return AgeDataObject|DemographicDataObject|GenderDataObject|GeneralQualificationDataObject|GeneralYearsWorkingDataObject 	 */ 	abstract public function calculate(array $applicants, Collection $demographicQuestions): DemographicDataObject;  	abstract public function getMetaData(): array;  	protected function fetchAnswers(array $applicants, string $question): Collection{} }