src/Entity/CRM/MailAttachment.php line 16

  1. <?php
  2. namespace App\Entity\CRM;
  3. use App\Entity\CRM\MailTemplate;
  4. use App\Repository\MailAttachmentRepository;
  5. use DateTime;
  6. use DateTimeInterface;
  7. use Doctrine\DBAL\Types\Types;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\HttpFoundation\File\File;
  10. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  11. #[Vich\Uploadable]
  12. #[ORM\Entity(repositoryClassMailAttachmentRepository::class)]
  13. class MailAttachment
  14. {
  15.     #[ORM\Id]
  16.     #[ORM\GeneratedValue]
  17.     #[ORM\Column]
  18.     private ?int $id null;
  19.     #[ORM\Column(length255)]
  20.     private ?string $fileName null;
  21.     #[ORM\Column(typeTypes::DATETIME_MUTABLE)]
  22.     private ?DateTimeInterface $fileUploadedAt;
  23.     #[ORM\Column(typeTypes::DATETIME_MUTABLE,nullabletrue)]
  24.     private ?DateTimeInterface $fileUpdatedAt null;
  25.     #[ORM\ManyToOne(inversedBy'mailAttachments')]
  26.     #[ORM\JoinColumn(nullablefalse)]
  27.     private ?MailTemplate $mailTemplate null;
  28.     // NOTE: This is not a mapped field of entity metadata, just a simple property.
  29.     #[Vich\UploadableField(mapping'attachment'fileNameProperty'fileName'size'fileSize')]
  30.     private ?File $file null;
  31.     private $fileSize null;
  32.     public function __construct()
  33.     {
  34.         $this->fileUploadedAt = new DateTime();
  35.     }
  36.     public function __toString(): string
  37.     {
  38.         return $this->fileName;
  39.     }
  40.     public function getId(): ?int
  41.     {
  42.         return $this->id;
  43.     }
  44.     /**
  45.      * @return string|null
  46.      */
  47.     public function getFileName(): ?string
  48.     {
  49.         return $this->fileName;
  50.     }
  51.     /**
  52.      * @param string|null $fileName
  53.      */
  54.     public function setFileName(?string $fileName): void
  55.     {
  56.         $this->fileName $fileName;
  57.     }
  58.     /**
  59.      * @return null
  60.      */
  61.     public function getFileSize()
  62.     {
  63.         return $this->fileSize;
  64.     }
  65.     /**
  66.      * @param null $fileSize
  67.      */
  68.     public function setFileSize($fileSize): void
  69.     {
  70.         $this->fileSize $fileSize;
  71.     }
  72.     public function getFileUploadedAt(): ?DateTimeInterface
  73.     {
  74.         return $this->fileUploadedAt;
  75.     }
  76.     public function setFileUploadedAt(\DateTimeImmutable $fileUploadedAt): static
  77.     {
  78.         $this->fileUploadedAt $fileUploadedAt;
  79.         return $this;
  80.     }
  81.     /**
  82.      * @return DateTimeInterface|null
  83.      */
  84.     public function getFileUpdatedAt(): ?DateTimeInterface
  85.     {
  86.         return $this->fileUpdatedAt;
  87.     }
  88.     /**
  89.      * @param DateTimeInterface|null $fileUpdatedAt
  90.      */
  91.     public function setFileUpdatedAt(?DateTimeInterface $fileUpdatedAt): void
  92.     {
  93.         $this->fileUpdatedAt $fileUpdatedAt;
  94.     }
  95.     /**
  96.      * @return File|null
  97.      */
  98.     public function getFile(): ?File
  99.     {
  100.         return $this->file;
  101.     }
  102.     public function setFile(?File $file null): void
  103.     {
  104.         $this->file $file;
  105.         $this->name $file->getBasename();
  106.         if ($file !== null) {
  107.             // It is required that at least one field changes if you are using doctrine
  108.             // otherwise the event listeners won't be called and the file is lost
  109.             $this->fileUpdatedAt = new DateTime();
  110.         }
  111.     }
  112.     public function getMailTemplate(): ?MailTemplate
  113.     {
  114.         return $this->mailTemplate;
  115.     }
  116.     public function setMailTemplate(?MailTemplate $mailTemplate): static
  117.     {
  118.         $this->mailTemplate $mailTemplate;
  119.         return $this;
  120.     }
  121. }