<?php
namespace App\Entity\ImmediateApplication;
use App\Entity\User;
use App\Entity\UserUploadedFile;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Exception;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity()
*
* @ORM\Table(
* name="immediate_application_contact_message_cv_files",
* uniqueConstraints={
*
* @ORM\UniqueConstraint(name="file_name_unique_idx", columns={"file_name"})
* },
* indexes={
*
* @ORM\Index(name="batch_id_idx", columns={"batch_id"}),
* }
* )
*
* @Vich\Uploadable
*/
class ContactMessageCvFile extends UserUploadedFile
{
/**
* @var string
*
* @ORM\GeneratedValue(strategy="CUSTOM")
*
* @ORM\CustomIdGenerator(class="App\Utility\DatabaseIdGenerator")
*
* @ORM\Column(name="id", type="guid")
*
* @ORM\Id
*/
protected $id;
/**
* @var ContactMessage
*
* @ORM\ManyToOne(targetEntity="App\Entity\ImmediateApplication\ContactMessage", inversedBy="contactMessageCvFiles", cascade={"persist"})
*
* @ORM\JoinColumn(name="immediate_application_contact_messages_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
protected $contactMessage;
/**
* @var \Symfony\Component\HttpFoundation\File\File|null
*
* @Vich\UploadableField(mapping="immediate_application_contact_message_cv_file", fileNameProperty="fileName")
*/
protected $file;
/**
* @var string|null
*
* @ORM\Column(name="file_name", type="string", length=255, nullable=false)
*/
protected $fileName;
public function getFileName(): string
{
if (is_null($this->fileName)) {
return '';
}
return $this->fileName;
}
/**
* @var string
*
* @ORM\Column(name="original_file_name", type="string", length=255, nullable=false)
*/
protected $originalFileName;
/**
* @var string
*
* @ORM\Column(name="mime_type", type="string", length=255, nullable=false)
*/
protected $mimeType;
/**
* @var string
*
* @ORM\Column(name="batch_id", type="string", length=64, nullable=false)
*/
protected $batchId;
/**
* @var bool
*
* @ORM\Column(name="is_primary", type="boolean", nullable=false)
*/
protected $isPrimary;
public function setIsPrimary(bool $isPrimary): void
{
$this->isPrimary = $isPrimary;
}
/**
* @var DateTime
*
* @ORM\Column(name="updated_at", type="datetime", nullable=false)
*/
protected $updatedAt;
public function setContactMessage(ContactMessage $contactMessage): void
{
$this->contactMessage = $contactMessage;
}
/** @throws Exception */
public function getUser(): User
{
if (is_null($this->contactMessage->getUser())) {
throw new Exception("Connected contact message {$this->contactMessage->getId()} does not have a user set.");
}
return $this->contactMessage->getUser();
}
}