<?php
namespace App\Entity;
use App\Repository\ProfileRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: ProfileRepository::class)]
#[ORM\HasLifecycleCallbacks]
class Profile
{
const PERCENT_STEP_1 = 25;
const PERCENT_STEP_2 = 50;
const FORMATION_TYPE_INITIAL = 1;
const FORMATION_TYPE_ALTERNANCE = 2;
const QCM_LOCAL = 1;
const QCM_ONLINE = 2;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'profiles', cascade: ['persist'])]
private ?\App\Entity\User $user = null;
#[ORM\ManyToMany(targetEntity: Program::class, inversedBy: 'profiles')]
private Collection $programs;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $schoolName = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $diplomaName = null;
#[ORM\ManyToOne(targetEntity: StudyLevel::class, inversedBy: 'profiles')]
private ?\App\Entity\StudyLevel $studyLevel = null;
#[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'profiles')]
private ?\App\Entity\User $commercial = null;
#[ORM\ManyToOne(targetEntity: EnglishLevel::class, inversedBy: 'profiles')]
private ?\App\Entity\EnglishLevel $englishLevel = null;
#[ORM\OneToMany(targetEntity: ProfileFile::class, mappedBy: 'profile', orphanRemoval: true, cascade: ['persist', 'remove'])]
private Collection $profileFiles;
#[ORM\ManyToOne(targetEntity: Jury::class, inversedBy: 'profiles')]
private ?\App\Entity\Jury $jury = null;
#[ORM\ManyToOne(targetEntity: Oraux::class, inversedBy: 'profiles')]
private ?\App\Entity\Oraux $oraux = null;
#[ORM\ManyToOne(targetEntity: Status::class, inversedBy: 'profiles')]
private ?\App\Entity\Status $status = null;
#[ORM\ManyToOne(targetEntity: Campaign::class, inversedBy: 'profiles')]
private ?\App\Entity\Campaign $campaign = null;
#[ORM\OneToMany(targetEntity: AppointmentPerson::class, mappedBy: 'profile', orphanRemoval: true)]
private Collection $appointmentPerson;
#[ORM\ManyToOne(targetEntity: Program::class, inversedBy: 'selectedProfiles')]
private ?\App\Entity\Program $selectedProgram = null;
#[ORM\Column(type: 'json', nullable: true)]
private ?array $juryResult = [];
#[ORM\Column(type: 'date', nullable: true)]
private ?\DateTimeInterface $juryDate = null;
#[ORM\Column(type: 'json', nullable: true)]
private ?array $orauxResult = [];
#[ORM\Column(type: 'date', nullable: true)]
private ?\DateTimeInterface $orauxDate = null;
#[ORM\OneToMany(targetEntity: ProfileNote::class, mappedBy: 'profile', orphanRemoval: true, cascade: ['persist', 'remove'])]
private Collection $profileNotes;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $year = null;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $percent = null;
#[ORM\Column(type: 'json', nullable: true)]
private ?array $information = [];
#[ORM\Column(type: 'json', nullable: true)]
private ?array $marketing = [];
#[ORM\ManyToOne(targetEntity: MediaChannel::class, inversedBy: 'profiles')]
private ?\App\Entity\MediaChannel $mediaChannel = null;
#[ORM\ManyToOne(targetEntity: Landingpage::class, inversedBy: 'profiles')]
private ?\App\Entity\Landingpage $landingpage = null;
#[ORM\OneToMany(targetEntity: ProfileQcm::class, mappedBy: 'profile', orphanRemoval: true)]
private Collection $profileQcms;
#[ORM\Column(type: 'smallint', nullable: true)]
private ?int $typeFormation = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $hostCompany = null;
#[ORM\OneToMany(targetEntity: OpenDayPerson::class, mappedBy: 'profile', orphanRemoval: true)]
private Collection $openDayPeople;
#[ORM\ManyToOne(targetEntity: Campus::class, inversedBy: 'profiles')]
private ?\App\Entity\Campus $campus = null;
#[ORM\ManyToOne(targetEntity: Task::class, inversedBy: 'profiles')]
private ?\App\Entity\Task $task = null;
#[ORM\Column(type: 'date', nullable: true)]
private ?\DateTimeInterface $taskDate = null;
#[ORM\Column(type: 'integer', nullable: true, options: ['default' => 0])]
private ?int $taskStatus = null;
#[ORM\ManyToOne(targetEntity: Campus::class)]
private ?\App\Entity\Campus $campus1 = null;
#[ORM\ManyToOne(targetEntity: Campus::class)]
private ?\App\Entity\Campus $campus2 = null;
#[ORM\ManyToOne(targetEntity: Campus::class)]
private ?\App\Entity\Campus $campus3 = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileCv = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileLetter = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileReportCard1 = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileReportCard2 = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileReportCard3 = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileIdentity = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileResidencePermit = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $filePhoto = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileHandicap = null;
#[ORM\Column(type: 'date', nullable: true)]
private ?\DateTimeInterface $expireIdentity = null;
#[ORM\Column(type: 'date', nullable: true)]
private ?\DateTimeInterface $expireResidencePermit = null;
#[ORM\Column(type: 'text', nullable: true)]
private ?string $motivation = null;
#[ORM\Column(type: 'text', nullable: true)]
private ?string $admissionMessage = null;
#[ORM\ManyToOne(targetEntity: Cursus::class)]
private ?\App\Entity\Cursus $cursus = null;
#[ORM\Column(type: 'boolean', nullable: true)]
private ?bool $isHandicap = null;
#[ORM\Column(type: 'text', nullable: true)]
private ?string $handicapInfo = null;
public function __construct()
{
$this->programs = new ArrayCollection();
$this->profileFiles = new ArrayCollection();
$this->appointmentPerson = new ArrayCollection();
$this->profileNotes = new ArrayCollection();
$this->profileQcms = new ArrayCollection();
$this->openDayPeople = new ArrayCollection();
$this->notifications = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
/**
* @return Collection<int, Program>
*/
public function getPrograms(): Collection
{
return $this->programs;
}
public function addProgram(Program $program): self
{
if (!$this->programs->contains($program)) {
$this->programs[] = $program;
}
return $this;
}
public function removeProgram(Program $program): self
{
$this->programs->removeElement($program);
return $this;
}
public function getSchoolName(): ?string
{
return $this->schoolName;
}
public function setSchoolName(?string $schoolName): self
{
$this->schoolName = $schoolName;
return $this;
}
public function getDiplomaName(): ?string
{
return $this->diplomaName;
}
public function setDiplomaName(?string $diplomaName): self
{
$this->diplomaName = $diplomaName;
return $this;
}
public function getStudyLevel(): ?StudyLevel
{
return $this->studyLevel;
}
public function setStudyLevel(?StudyLevel $studyLevel): self
{
$this->studyLevel = $studyLevel;
return $this;
}
public function getCommercial(): ?User
{
return $this->commercial;
}
public function setCommercial(?User $user): self
{
$this->commercial = $user;
return $this;
}
public function getEnglishLevel(): ?EnglishLevel
{
return $this->englishLevel;
}
public function setEnglishLevel(?EnglishLevel $englishLevel): self
{
$this->englishLevel = $englishLevel;
return $this;
}
/**
* @return Collection<int, ProfileFile>
*/
public function getProfileFiles(): Collection
{
return $this->profileFiles;
}
public function addProfileFile(ProfileFile $profileFile): self
{
if (!$this->profileFiles->contains($profileFile)) {
$this->profileFiles[] = $profileFile;
$profileFile->setProfile($this);
}
return $this;
}
public function removeProfileFile(ProfileFile $profileFile): self
{
if ($this->profileFiles->removeElement($profileFile)) {
// set the owning side to null (unless already changed)
if ($profileFile->getProfile() === $this) {
$profileFile->setProfile(null);
}
}
return $this;
}
public function getJury(): ?Jury
{
return $this->jury;
}
public function setJury(?Jury $jury): self
{
$this->jury = $jury;
return $this;
}
public function getOraux(): ?Oraux
{
return $this->oraux;
}
public function setOraux(?Oraux $oraux): self
{
$this->oraux = $oraux;
return $this;
}
public function getStatus(): ?Status
{
return $this->status;
}
public function setStatus(?Status $status): self
{
$this->status = $status;
return $this;
}
public function getCampaign(): ?Campaign
{
return $this->campaign;
}
public function setCampaign(?Campaign $campaign): self
{
$this->campaign = $campaign;
return $this;
}
/**
* @return Collection<int, AppointmentPerson>
*/
public function getAppointmentPerson(): Collection
{
return $this->appointmentPerson;
}
public function addAppointmentPerson(AppointmentPerson $appointmentPerson): self
{
if (!$this->appointmentPerson->contains($appointmentPerson)) {
$this->appointmentPerson[] = $appointmentPerson;
$appointmentPerson->setProfile($this);
}
return $this;
}
public function removeAppointmentPerson(AppointmentPerson $appointmentPerson): self
{
if ($this->appointmentPerson->removeElement($appointmentPerson)) {
// set the owning side to null (unless already changed)
if ($appointmentPerson->getProfile() === $this) {
$appointmentPerson->setProfile(null);
}
}
return $this;
}
public function getSelectedProgram(): ?Program
{
return $this->selectedProgram;
}
public function setSelectedProgram(?Program $selectedProgram): self
{
$this->selectedProgram = $selectedProgram;
return $this;
}
public function getJuryResult(): ?array
{
return $this->juryResult;
}
public function setJuryResult(?array $juryResult): self
{
$this->juryResult = $juryResult;
return $this;
}
public function getJuryDate(): ?\DateTimeInterface
{
return $this->juryDate;
}
public function setJuryDate(?\DateTimeInterface $juryDate): self
{
$this->juryDate = $juryDate;
return $this;
}
public function getOrauxResult(): ?array
{
return $this->orauxResult;
}
public function setOrauxResult(?array $orauxResult): self
{
$this->orauxResult = $orauxResult;
return $this;
}
public function getOrauxDate(): ?\DateTimeInterface
{
return $this->orauxDate;
}
public function setOrauxDate(?\DateTimeInterface $orauxDate): self
{
$this->orauxDate = $orauxDate;
return $this;
}
/**
* @return Collection<int, ProfileNote>
*/
public function getProfileNotes(): Collection
{
return $this->profileNotes;
}
public function addProfileNote(ProfileNote $profileNote): self
{
if (!$this->profileNotes->contains($profileNote)) {
$this->profileNotes[] = $profileNote;
$profileNote->setProfile($this);
}
return $this;
}
public function removeProfileNote(ProfileNote $profileNote): self
{
if ($this->profileNotes->removeElement($profileNote)) {
// set the owning side to null (unless already changed)
if ($profileNote->getProfile() === $this) {
$profileNote->setProfile(null);
}
}
return $this;
}
public function getYear(): ?string
{
return $this->year;
}
public function setYear(?string $year): self
{
$this->year = $year;
return $this;
}
public function getPercent(): ?int
{
return $this->percent;
}
public function setPercent(?int $percent): self
{
$this->percent = $percent;
return $this;
}
public function getInformation(): ?array
{
return $this->information;
}
public function setInformation(?array $information): self
{
$this->information = $information;
return $this;
}
public function getMarketing(): ?array
{
return $this->marketing;
}
public function setMarketing(?array $marketing): self
{
$this->marketing = $marketing;
return $this;
}
public function getMediaChannel(): ?MediaChannel
{
return $this->mediaChannel;
}
public function setMediaChannel(?MediaChannel $mediaChannel): self
{
$this->mediaChannel = $mediaChannel;
return $this;
}
public function getLandingpage(): ?Landingpage
{
return $this->landingpage;
}
public function setLandingpage(?Landingpage $landingpage): self
{
$this->landingpage = $landingpage;
return $this;
}
/**
* @return Collection<int, ProfileQcm>
*/
public function getProfileQcms(): Collection
{
return $this->profileQcms;
}
public function addProfileQcm(ProfileQcm $profileQcm): self
{
if (!$this->profileQcms->contains($profileQcm)) {
$this->profileQcms[] = $profileQcm;
$profileQcm->setProfile($this);
}
return $this;
}
public function removeProfileQcm(ProfileQcm $profileQcm): self
{
if ($this->profileQcms->removeElement($profileQcm)) {
// set the owning side to null (unless already changed)
if ($profileQcm->getProfile() === $this) {
$profileQcm->setProfile(null);
}
}
return $this;
}
public function getTypeFormation(): ?int
{
return $this->typeFormation;
}
public function setTypeFormation(?int $typeFormation): self
{
$this->typeFormation = $typeFormation;
return $this;
}
public function getHostCompany(): ?string
{
return $this->hostCompany;
}
public function setHostCompany(?string $hostCompany): self
{
$this->hostCompany = $hostCompany;
return $this;
}
/**
* @return Collection<int, OpenDayPerson>
*/
public function getOpenDayPeople(): Collection
{
return $this->openDayPeople;
}
public function addOpenDayPerson(OpenDayPerson $openDayPerson): self
{
if (!$this->openDayPeople->contains($openDayPerson)) {
$this->openDayPeople[] = $openDayPerson;
$openDayPerson->setProfile($this);
}
return $this;
}
public function removeOpenDayPerson(OpenDayPerson $openDayPerson): self
{
if ($this->openDayPeople->removeElement($openDayPerson)) {
// set the owning side to null (unless already changed)
if ($openDayPerson->getProfile() === $this) {
$openDayPerson->setProfile(null);
}
}
return $this;
}
public function getCampus(): ?Campus
{
return $this->campus;
}
public function setCampus(?Campus $campus): self
{
$this->campus = $campus;
return $this;
}
public function getTask(): ?Task
{
return $this->task;
}
public function setTask(?Task $task): self
{
$this->task = $task;
return $this;
}
public function getTaskDate(): ?\DateTimeInterface
{
return $this->taskDate;
}
public function setTaskDate(?\DateTimeInterface $taskDate): self
{
$this->taskDate = $taskDate;
return $this;
}
public function getTaskStatus(): ?int
{
return $this->taskStatus;
}
public function setTaskStatus(?int $taskStatus): self
{
$this->taskStatus = $taskStatus;
return $this;
}
public function getCampus1(): ?Campus
{
return $this->campus1;
}
public function setCampus1(?Campus $campus1): self
{
$this->campus1 = $campus1;
return $this;
}
public function getCampus2(): ?Campus
{
return $this->campus2;
}
public function setCampus2(?Campus $campus2): self
{
$this->campus2 = $campus2;
return $this;
}
public function getCampus3(): ?Campus
{
return $this->campus3;
}
public function setCampus3(?Campus $campus3): self
{
$this->campus3 = $campus3;
return $this;
}
public function getFileCv(): ?Media
{
return $this->fileCv;
}
public function setFileCv(?Media $fileCv): self
{
$this->fileCv = $fileCv;
return $this;
}
public function getFileLetter(): ?Media
{
return $this->fileLetter;
}
public function setFileLetter(?Media $fileLetter): self
{
$this->fileLetter = $fileLetter;
return $this;
}
public function getFileReportCard1(): ?Media
{
return $this->fileReportCard1;
}
public function setFileReportCard1(?Media $fileReportCard1): self
{
$this->fileReportCard1 = $fileReportCard1;
return $this;
}
public function getFileReportCard2(): ?Media
{
return $this->fileReportCard2;
}
public function setFileReportCard2(?Media $fileReportCard2): self
{
$this->fileReportCard2 = $fileReportCard2;
return $this;
}
public function getFileReportCard3(): ?Media
{
return $this->fileReportCard3;
}
public function setFileReportCard3(?Media $fileReportCard3): self
{
$this->fileReportCard3 = $fileReportCard3;
return $this;
}
public function getFileIdentity(): ?Media
{
return $this->fileIdentity;
}
public function setFileIdentity(?Media $fileIdentity): self
{
$this->fileIdentity = $fileIdentity;
return $this;
}
public function getFileResidencePermit(): ?Media
{
return $this->fileResidencePermit;
}
public function setFileResidencePermit(?Media $fileResidencePermit): self
{
$this->fileResidencePermit = $fileResidencePermit;
return $this;
}
public function getFilePhoto(): ?Media
{
return $this->filePhoto;
}
public function setFilePhoto(?Media $filePhoto): self
{
$this->filePhoto = $filePhoto;
return $this;
}
public function getFileHandicap(): ?Media
{
return $this->fileHandicap;
}
public function setFileHandicap(?Media $fileHandicap): self
{
$this->fileHandicap = $fileHandicap;
return $this;
}
public function getExpireIdentity(): ?\DateTimeInterface
{
return $this->expireIdentity;
}
public function setExpireIdentity(?\DateTimeInterface $expireIdentity): self
{
$this->expireIdentity = $expireIdentity;
return $this;
}
public function getExpireResidencePermit(): ?\DateTimeInterface
{
return $this->expireResidencePermit;
}
public function setExpireResidencePermit(?\DateTimeInterface $expireResidencePermit): self
{
$this->expireResidencePermit = $expireResidencePermit;
return $this;
}
public function getMotivation(): ?string
{
return $this->motivation;
}
public function setMotivation(?string $motivation): self
{
$this->motivation = $motivation;
return $this;
}
public function getAdmissionMessage(): ?string
{
return $this->admissionMessage;
}
public function setAdmissionMessage(?string $admissionMessage): self
{
$this->admissionMessage = $admissionMessage;
return $this;
}
public function getCursus(): ?Cursus
{
return $this->cursus;
}
public function setCursus(?Cursus $cursus): self
{
$this->cursus = $cursus;
return $this;
}
public function getIsHandicap(): ?bool
{
return $this->isHandicap;
}
public function setIsHandicap(?bool $isHandicap): self
{
$this->isHandicap = $isHandicap;
return $this;
}
public function getHandicapInfo(): ?string
{
return $this->handicapInfo;
}
public function setHandicapInfo(?string $handicapInfo): self
{
$this->handicapInfo = $handicapInfo;
return $this;
}
public function calculateProfilePercent()
{
$percent = 25;
$info = $this->getInformation();
if (
!empty($this->getStudyLevel())
|| (!empty($info)
&& (!empty($info['previousSchool'])
|| !empty($info['previousDegree'])
|| !empty($info['previousDegreeYear'])
|| !empty($info['previousDegreeDescription'])
|| !empty($info['currentDegree'])
|| !empty($info['currentDegreeYear'])
|| !empty($info['currentDegreeDescription'])
)
)
) {
$percent += 25;
}
if (!empty($this->getFileCv())) {
$percent += 25;
}
if (
!empty($this->getFileReportCard1())
|| !empty($this->getFileReportCard2())
|| !empty($this->getFileReportCard3())
|| !empty($this->getFileIdentity())
|| !empty($this->getFileResidencePermit())
|| !empty($this->getFilePhoto())
|| !empty($this->getFileHandicap())
|| !empty($this->getFileReportCard2())
|| !empty($this->getFileReportCard2())
) {
$percent += 25;
}
$this->setPercent($percent);
}
#[ORM\Column(type: 'datetime', nullable: true)]
private \DateTimeInterface|null|\DateTime $createdDate = null;
#[ORM\Column(type: 'datetime', nullable: true)]
private $updatedDate;
#[ORM\Column(type: 'json', nullable: true)]
private ?array $entreprise = [];
#[ORM\Column(type: 'json', nullable: true)]
private ?array $contract = [];
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $ficheEmail = null;
#[ORM\OneToMany(targetEntity: Notification::class, mappedBy: 'profile', orphanRemoval: true, cascade: ['persist', 'remove'])]
private Collection $notifications;
#[ORM\Column(type: 'json', nullable: true)]
private ?array $qcmResults = [];
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $qcmToken = null;
#[ORM\Column(type: 'boolean', nullable: true)]
private ?bool $isDuplicate = null;
#[ORM\Column(type: 'boolean', nullable: true)]
private ?bool $repay = null;
#[ORM\Column(type: 'datetime', nullable: true)]
private ?\DateTimeInterface $abandonDate = null;
#[ORM\Column(type: 'text', nullable: true)]
private ?string $abandonNote = null;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $paymentMethod = null;
#[ORM\Column(type: 'datetime', nullable: true)]
private ?\DateTimeInterface $paymentDate = null;
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $qcmMethod = null;
#[ORM\OneToOne(targetEntity: Media::class, cascade: ['persist', 'remove'])]
private ?\App\Entity\Media $fileDiplome = null;
#[ORM\Column(nullable: true)]
private ?bool $isSent = null;
public function getCreatedDate(): ?\DateTimeInterface
{
return $this->createdDate;
}
public function setCreatedDate(?\DateTimeInterface $createdDate): self
{
$this->createdDate = $createdDate;
return $this;
}
public function getUpdatedDate(): ?\DateTimeInterface
{
return $this->updatedDate;
}
public function setUpdatedDate(?\DateTimeInterface $updatedDate): self
{
$this->updatedDate = $updatedDate;
return $this;
}
/**
* Gets triggered only on insert
*/
#[ORM\PrePersist]
public function onPrePersist()
{
if (!$this->createdDate) {
$this->createdDate = new \DateTime('now');
}
if (!$this->updatedDate) {
$this->updatedDate = $this->createdDate;
}
$this->calculateProfilePercent();
}
/**
* Gets triggered every time on update
*/
#[ORM\PreUpdate]
public function onPreUpdate()
{
$this->updatedDate = new \DateTime("now");
$this->calculateProfilePercent();
}
public function getEntreprise(): ?array
{
return $this->entreprise;
}
public function setEntreprise(?array $entreprise): self
{
$this->entreprise = $entreprise;
return $this;
}
public function getContract(): ?array
{
return $this->contract;
}
public function setContract(?array $contract): self
{
$this->contract = $contract;
return $this;
}
public function getFicheEmail(): ?string
{
return $this->ficheEmail;
}
public function setFicheEmail(?string $ficheEmail): self
{
$this->ficheEmail = $ficheEmail;
return $this;
}
/**
* @return Collection<int, Notification>
*/
public function getNotifications(): Collection
{
return $this->notifications;
}
public function addNotification(Notification $notification): self
{
if (!$this->notifications->contains($notification)) {
$this->notifications[] = $notification;
$notification->setProfile($this);
}
return $this;
}
public function removeNotification(Notification $notification): self
{
if ($this->notifications->removeElement($notification)) {
// set the owning side to null (unless already changed)
if ($notification->getProfile() === $this) {
$notification->setProfile(null);
}
}
return $this;
}
public function getQcmResults(): ?array
{
return $this->qcmResults;
}
public function setQcmResults(?array $qcmResults): self
{
$this->qcmResults = $qcmResults;
return $this;
}
public function getQcmToken(): ?string
{
return $this->qcmToken;
}
public function setQcmToken(?string $qcmToken): self
{
$this->qcmToken = $qcmToken;
return $this;
}
public function getIsDuplicate(): ?bool
{
return $this->isDuplicate;
}
public function setIsDuplicate(?bool $isDuplicate): self
{
$this->isDuplicate = $isDuplicate;
return $this;
}
public function getRepay(): ?bool
{
return $this->repay;
}
public function setRepay(?bool $repay): self
{
$this->repay = $repay;
return $this;
}
public function getAbandonDate(): ?\DateTimeInterface
{
return $this->abandonDate;
}
public function setAbandonDate(?\DateTimeInterface $abandonDate): self
{
$this->abandonDate = $abandonDate;
return $this;
}
public function getAbandonNote(): ?string
{
return $this->abandonNote;
}
public function setAbandonNote(?string $abandonNote): self
{
$this->abandonNote = $abandonNote;
return $this;
}
public function getPaymentMethod(): ?int
{
return $this->paymentMethod;
}
public function setPaymentMethod(?int $paymentMethod): self
{
$this->paymentMethod = $paymentMethod;
return $this;
}
public function getPaymentDate(): ?\DateTimeInterface
{
return $this->paymentDate;
}
public function setPaymentDate(?\DateTimeInterface $paymentDate): self
{
$this->paymentDate = $paymentDate;
return $this;
}
public function getQcmMethod(): ?int
{
return $this->qcmMethod;
}
public function setQcmMethod(?int $qcmMethod): self
{
$this->qcmMethod = $qcmMethod;
return $this;
}
public function getFileDiplome(): ?Media
{
return $this->fileDiplome;
}
public function setFileDiplome(?Media $fileDiplome): self
{
$this->fileDiplome = $fileDiplome;
return $this;
}
public function isIsSent(): ?bool
{
return $this->isSent;
}
public function setIsSent(?bool $isSent): static
{
$this->isSent = $isSent;
return $this;
}
}