<?php
namespace JanusHercules\ExternalApplicationQuestions\Domain\Entity;
use App\Entity\RecurrentJob;
use App\Utility\DatabaseIdGenerator;
use App\Utility\DateTimeUtility;
use DateTime;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Exception;
#[ORM\Entity]
#[ORM\Table(name: 'concludis_application_form_setups')]
class ConcludisApplicationFormSetup
{
/**
* @throws Exception
*/
public function __construct(
RecurrentJob $recurrentJob,
bool $iptTitleEnabled,
bool $iptAddressEnabled,
bool $iptBirthdayEnabled,
bool $iptHomepageEnabled,
bool $iptIncentivesEnabled,
bool $iptPhonePrivateEnabled,
bool $iptPhoneMobileEnabled,
bool $iptPhoneWorkEnabled,
bool $iptFaxEnabled,
bool $iptSourceEnabled,
bool $iptOperationalAreaEnabled,
bool $iptMaritalStatusEnabled,
bool $iptCitizenshipEnabled,
bool $iptGraduationIdEnabled,
bool $iptSchoolNameEnabled,
bool $iptEmploymentTypeEnabled,
bool $iptSalaryExpectationsFixedEnabled,
bool $iptSalaryExpectationsVariableEnabled,
bool $iptSalaryNowFixedEnabled,
bool $iptSalaryNowVariableEnabled,
bool $iptWorkDestinationEnabled,
bool $iptAvailabilityStartdateEnabled,
bool $iptEmploymentDeadlineEnabled,
bool $iptLeadingPositionEnabled,
bool $iptDriversLicenseEnabled,
bool $iptDisablilityEnabled, // that's an actual typo in the Concludis API!
bool $iptDisabilityUploadEnabled,
bool $iptInternalEnabled,
bool $iptOptionalFieldEnabled,
bool $iptCheckUnderageEnabled,
bool $iptEmployeeReferralEnabled,
bool $emailRequired,
bool $cvRequired,
?string $disabilityLabel,
?string $disablilityInfo, // that's an actual typo in the Concludis API!
?string $disabilityUploadLabel,
?int $questionnaireId,
?string $questionnaireTitle,
?string $questionnaireInfo,
?string $questionnaireLocale
) {
$this->importedAt = DateTimeUtility::createDateTimeUtc();
$this->recurrentJob = $recurrentJob;
$this->iptTitleEnabled = $iptTitleEnabled;
$this->iptAddressEnabled = $iptAddressEnabled;
$this->iptBirthdayEnabled = $iptBirthdayEnabled;
$this->iptHomepageEnabled = $iptHomepageEnabled;
$this->iptIncentivesEnabled = $iptIncentivesEnabled;
$this->iptPhonePrivateEnabled = $iptPhonePrivateEnabled;
$this->iptPhoneMobileEnabled = $iptPhoneMobileEnabled;
$this->iptPhoneWorkEnabled = $iptPhoneWorkEnabled;
$this->iptFaxEnabled = $iptFaxEnabled;
$this->iptSourceEnabled = $iptSourceEnabled;
$this->iptOperationalAreaEnabled = $iptOperationalAreaEnabled;
$this->iptMaritalStatusEnabled = $iptMaritalStatusEnabled;
$this->iptCitizenshipEnabled = $iptCitizenshipEnabled;
$this->iptGraduationIdEnabled = $iptGraduationIdEnabled;
$this->iptSchoolNameEnabled = $iptSchoolNameEnabled;
$this->iptEmploymentTypeEnabled = $iptEmploymentTypeEnabled;
$this->iptSalaryExpectationsFixedEnabled = $iptSalaryExpectationsFixedEnabled;
$this->iptSalaryExpectationsVariableEnabled = $iptSalaryExpectationsVariableEnabled;
$this->iptSalaryNowFixedEnabled = $iptSalaryNowFixedEnabled;
$this->iptSalaryNowVariableEnabled = $iptSalaryNowVariableEnabled;
$this->iptWorkDestinationEnabled = $iptWorkDestinationEnabled;
$this->iptAvailabilityStartdateEnabled = $iptAvailabilityStartdateEnabled;
$this->iptEmploymentDeadlineEnabled = $iptEmploymentDeadlineEnabled;
$this->iptLeadingPositionEnabled = $iptLeadingPositionEnabled;
$this->iptDriversLicenseEnabled = $iptDriversLicenseEnabled;
$this->iptDisablilityEnabled = $iptDisablilityEnabled;
$this->iptDisabilityUploadEnabled = $iptDisabilityUploadEnabled;
$this->iptInternalEnabled = $iptInternalEnabled;
$this->iptOptionalFieldEnabled = $iptOptionalFieldEnabled;
$this->iptCheckUnderageEnabled = $iptCheckUnderageEnabled;
$this->iptEmployeeReferralEnabled = $iptEmployeeReferralEnabled;
$this->emailRequired = $emailRequired;
$this->cvRequired = $cvRequired;
$this->disabilityLabel = $disabilityLabel;
$this->disablilityInfo = $disablilityInfo;
$this->disabilityUploadLabel = $disabilityUploadLabel;
$this->questionnaireId = $questionnaireId;
$this->questionnaireTitle = $questionnaireTitle;
$this->questionnaireInfo = $questionnaireInfo;
$this->questionnaireLocale = $questionnaireLocale;
}
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
#[ORM\CustomIdGenerator(class: DatabaseIdGenerator::class)]
#[ORM\Column(
type : Types::GUID,
unique: true
)]
private ?string $id = null;
public function getId(): ?string
{
return $this->id;
}
#[ORM\ManyToOne(
targetEntity: RecurrentJob::class,
cascade : ['persist'],
inversedBy : 'concludisApplicationFormSetups'
)]
#[ORM\JoinColumn(
name : 'recurrent_jobs_id',
referencedColumnName: 'id',
nullable : true,
onDelete : 'CASCADE'
)]
private RecurrentJob $recurrentJob;
public function getRecurrentJob(): RecurrentJob
{
return $this->recurrentJob;
}
#[ORM\Column(
type : Types::DATETIME_MUTABLE,
nullable: false
)]
private DateTime $importedAt;
public function setimportedAt(DateTime $importedAt): void
{
$this->importedAt = $importedAt;
}
public function getimportedAt(): DateTime
{
return $this->importedAt;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptTitleEnabled;
public function isIptTitleEnabled(): bool
{
return $this->iptTitleEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptAddressEnabled;
public function isIptAddressEnabled(): bool
{
return $this->iptAddressEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptBirthdayEnabled;
public function isIptBirthdayEnabled(): bool
{
return $this->iptBirthdayEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptHomepageEnabled;
public function isIptHomepageEnabled(): bool
{
return $this->iptHomepageEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptIncentivesEnabled;
public function isIptIncentivesEnabled(): bool
{
return $this->iptIncentivesEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptPhonePrivateEnabled;
public function isIptPhonePrivateEnabled(): bool
{
return $this->iptPhonePrivateEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptPhoneMobileEnabled;
public function isIptPhoneMobileEnabled(): bool
{
return $this->iptPhoneMobileEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptPhoneWorkEnabled;
public function isIptPhoneWorkEnabled(): bool
{
return $this->iptPhoneWorkEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptFaxEnabled;
public function isIptFaxEnabled(): bool
{
return $this->iptFaxEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptSourceEnabled;
public function isIptSourceEnabled(): bool
{
return $this->iptSourceEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptOperationalAreaEnabled;
public function isIptOperationalAreaEnabled(): bool
{
return $this->iptOperationalAreaEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptMaritalStatusEnabled;
public function isIptMaritalStatusEnabled(): bool
{
return $this->iptMaritalStatusEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptCitizenshipEnabled;
public function isIptCitizenshipEnabled(): bool
{
return $this->iptCitizenshipEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptGraduationIdEnabled;
public function isIptGraduationIdEnabled(): bool
{
return $this->iptGraduationIdEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptSchoolNameEnabled;
public function isIptSchoolNameEnabled(): bool
{
return $this->iptSchoolNameEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptEmploymentTypeEnabled;
public function isIptEmploymentTypeEnabled(): bool
{
return $this->iptEmploymentTypeEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptSalaryExpectationsFixedEnabled;
public function isIptSalaryExpectationsFixedEnabled(): bool
{
return $this->iptSalaryExpectationsFixedEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptSalaryExpectationsVariableEnabled;
public function isIptSalaryExpectationsVariableEnabled(): bool
{
return $this->iptSalaryExpectationsVariableEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptSalaryNowFixedEnabled;
public function isIptSalaryNowFixedEnabled(): bool
{
return $this->iptSalaryNowFixedEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptSalaryNowVariableEnabled;
public function isIptSalaryNowVariableEnabled(): bool
{
return $this->iptSalaryNowVariableEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptWorkDestinationEnabled;
public function isIptWorkDestinationEnabled(): bool
{
return $this->iptWorkDestinationEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptAvailabilityStartdateEnabled;
public function isIptAvailabilityStartdateEnabled(): bool
{
return $this->iptAvailabilityStartdateEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptEmploymentDeadlineEnabled;
public function isIptEmploymentDeadlineEnabled(): bool
{
return $this->iptEmploymentDeadlineEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptLeadingPositionEnabled;
public function isIptLeadingPositionEnabled(): bool
{
return $this->iptLeadingPositionEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptDriversLicenseEnabled;
public function isIptDriversLicenseEnabled(): bool
{
return $this->iptDriversLicenseEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptDisablilityEnabled;
public function isIptDisablilityEnabled(): bool
{
return $this->iptDisablilityEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptDisabilityUploadEnabled;
public function isIptDisabilityUploadEnabled(): bool
{
return $this->iptDisabilityUploadEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptInternalEnabled;
public function isIptInternalEnabled(): bool
{
return $this->iptInternalEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptOptionalFieldEnabled;
public function isIptOptionalFieldEnabled(): bool
{
return $this->iptOptionalFieldEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptCheckUnderageEnabled;
public function isIptCheckUnderageEnabled(): bool
{
return $this->iptCheckUnderageEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $iptEmployeeReferralEnabled;
public function isIptEmployeeReferralEnabled(): bool
{
return $this->iptEmployeeReferralEnabled;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $emailRequired;
public function isEmailRequired(): bool
{
return $this->emailRequired;
}
#[ORM\Column(
type: Types::BOOLEAN,
)]
private bool $cvRequired;
public function isCvRequired(): bool
{
return $this->cvRequired;
}
#[ORM\Column(
type : Types::STRING,
length : 1024,
nullable: true
)]
private ?string $disabilityLabel;
public function getDisabilityLabel(): ?string
{
return $this->disabilityLabel;
}
#[ORM\Column(
type : Types::STRING,
length : 1024,
nullable: true
)]
private ?string $disablilityInfo;
public function getDisablilityInfo(): ?string
{
return $this->disablilityInfo;
}
#[ORM\Column(
type : Types::STRING,
length : 1024,
nullable: true
)]
private ?string $disabilityUploadLabel;
public function getDisabilityUploadLabel(): ?string
{
return $this->disabilityUploadLabel;
}
#[ORM\Column(
type : Types::SMALLINT,
nullable: true,
options : ['unsigned' => true]
)]
private ?int $questionnaireId;
public function getQuestionnaireId(): ?int
{
return $this->questionnaireId;
}
#[ORM\Column(
type : Types::STRING,
length : 1024,
nullable: true
)]
private ?string $questionnaireTitle;
public function getQuestionnaireTitle(): ?string
{
return $this->questionnaireTitle;
}
// questionnaire info
#[ORM\Column(
type : Types::STRING,
length : 1024,
nullable: true
)]
private ?string $questionnaireInfo;
public function getQuestionnaireInfo(): ?string
{
return $this->questionnaireInfo;
}
#[ORM\Column(
type : Types::STRING,
length : 8,
nullable: true
)]
private ?string $questionnaireLocale;
public function getQuestionnaireLocale(): ?string
{
return $this->questionnaireLocale;
}
}