src/Entity/DevisAttachment.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\DevisAttachmentRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Doctrine\ORM\Mapping\JoinColumn;
  6. use Symfony\Component\HttpFoundation\File\File;
  7. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. use Symfony\Component\HttpFoundation\File\UploadedFile;
  10. use DateTime;
  11. use DateTimeZone;
  12. /**
  13.  * @ORM\Entity(repositoryClass=DevisAttachmentRepository::class)
  14.  * @Vich\Uploadable
  15.  */
  16. class DevisAttachment
  17. {
  18.     /**
  19.      * @ORM\Id
  20.      * @ORM\GeneratedValue
  21.      * @ORM\Column(type="integer")
  22.      */
  23.     private $id;
  24.     /**
  25.      * @ORM\Column(type="string", length=255, nullable=true)
  26.      */
  27.     private $fileName;
  28.     /**
  29.      * @ORM\Column(type="string", length=255, nullable=true)
  30.      */
  31.     private $originalName;
  32.     /**
  33.      * @Vich\UploadableField(mapping="devis_attachments", fileNameProperty="fileName")
  34.      * 
  35.      * @var File|null
  36.      */
  37.     private $attachFile;
  38.     /**
  39.      * @ORM\Column(type="string", length=255, nullable=true)
  40.      */
  41.     private $size;
  42.     /**
  43.      * @ORM\ManyToOne(targetEntity=Devis::class, inversedBy="attachments")
  44.      */
  45.     private $devis;
  46.     /**
  47.      * @ORM\Column(type="datetime", nullable=true)
  48.      */
  49.     private $createdAt;
  50.     /**
  51.      * @ORM\Column(type="datetime", nullable=true)
  52.      */
  53.     private $updatedAt;
  54.     public function __construct()
  55.     {
  56.         $this->createdAt = new DateTime('now', new DateTimeZone('Europe/Paris'));
  57.     }
  58.     public function getId(): ?int
  59.     {
  60.         return $this->id;
  61.     }
  62.     public function getFileName(): ?string
  63.     {
  64.         return $this->fileName;
  65.     }
  66.     public function setFileName(?string $fileName): self
  67.     {
  68.         $this->fileName $fileName;
  69.         return $this;
  70.     }
  71.     public function getOriginalName(): ?string
  72.     {
  73.         return $this->originalName;
  74.     }
  75.     public function setOriginalName(?string $originalName): self
  76.     {
  77.         $this->originalName $originalName;
  78.         return $this;
  79.     }
  80.     
  81.     public function getAttachFile(): ?File
  82.     {
  83.         return $this->attachFile;
  84.     }
  85.     /**
  86.      * @param File|UploadedFile|null $attachFile
  87.      */
  88.     public function setAttachFile(?File $attachFile null): void
  89.     {
  90.         $this->attachFile $attachFile;
  91.         if ($attachFile) {
  92.             $parisTimezone = new DateTimeZone('Europe/Paris');
  93.             $this->updatedAt = new DateTime('now'$parisTimezone);
  94.             if ($attachFile instanceof UploadedFile) {
  95.                 $this->originalName $attachFile->getClientOriginalName();
  96.                 $this->size $attachFile->getSize();
  97.             }
  98.             if ($this->createdAt === null) {
  99.                 $this->createdAt = new DateTime('now'$parisTimezone);
  100.             }
  101.         }
  102.     }
  103.     public function getSize(): ?string
  104.     {
  105.         return $this->size;
  106.     }
  107.     public function setSize(?string $size): self
  108.     {
  109.         $this->size $size;
  110.         return $this;
  111.     }
  112.     public function getDevis(): ?Devis
  113.     {
  114.         return $this->devis;
  115.     }
  116.     public function setDevis(?Devis $devis): self
  117.     {
  118.         $this->devis $devis;
  119.         return $this;
  120.     }
  121.     public function getCreatedAt(): ?\DateTimeInterface
  122.     {
  123.         return $this->createdAt;
  124.     }
  125.     public function setCreatedAt(?\DateTimeInterface $createdAt): self
  126.     {
  127.         $this->createdAt $createdAt;
  128.         return $this;
  129.     }
  130.     public function getUpdatedAt(): ?\DateTimeInterface
  131.     {
  132.         return $this->updatedAt;
  133.     }
  134.     public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
  135.     {
  136.         $this->updatedAt $updatedAt;
  137.         return $this;
  138.     }
  139.     /**
  140.      * __serialize() : cela signifie simplement que nous convertissons les données ou l'état d'un objet en 
  141.      * une forme de stockage (comme un tableau) pour qu'il puisse être sauvegardé ou transmis.
  142.      */
  143.     public function __serialize(): array
  144.     {
  145.         return [
  146.             'id' => $this->id,
  147.             'fileName' => $this->fileName,
  148.             'originalName' => $this->originalName,
  149.             'size' => $this->size,
  150.             'createdAt' => $this->createdAt,
  151.             'updatedAt' => $this->updatedAt,
  152.         ];
  153.     }
  154.     /**
  155.      * __unserialize() : cela signifie que l'on reconstruit un objet à partir des données qui ont été 
  156.      * précédemment sérialisées, pour qu'il puisse être utilisé à nouveau dans le programme
  157.      */
  158.     public function __unserialize(array $data): void
  159.     {
  160.         $this->id $data['id'];
  161.         $this->fileName $data['fileName'];
  162.         $this->originalName $data['originalName'];
  163.         $this->size $data['size'];
  164.         $this->createdAt $data['createdAt'];
  165.         $this->updatedAt $data['updatedAt'];
  166.     }
  167. }