src/Entity/JPO.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Common\IdTrait;
  4. use DateTimeImmutable;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Component\HttpFoundation\File\File;
  7. use Symfony\Component\HttpFoundation\File\UploadedFile;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. use Vich\UploaderBundle\Entity\File as EmbeddedFile;
  10. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  11. /**
  12.  * @ORM\Entity(repositoryClass="App\Repository\JPORepository")
  13.  * @Vich\Uploadable
  14.  */
  15. class JPO
  16. {
  17.     use IdTrait;
  18.     /**
  19.      * @ORM\Column(type="datetime")
  20.      */
  21.     private $datePublidation;
  22.     /**
  23.      * @ORM\Column(type="datetime", nullable=true)
  24.      */
  25.     private $dateActualisation;
  26.     /**
  27.      * @ORM\Column(type="string", length=150)
  28.      */
  29.     private $lieu;
  30.     /**
  31.      * @ORM\Column(type="text", nullable=true)
  32.      */
  33.     private $contenu;
  34.     /**
  35.      * @ORM\ManyToOne(targetEntity="App\Entity\Etablissement", inversedBy="jPOs")
  36.      * @ORM\JoinColumn(nullable=false)
  37.      */
  38.     private $etablissement;
  39.     /**
  40.     * @ORM\Embedded(class="Vich\UploaderBundle\Entity\File")
  41.      */
  42.     private $image1;
  43.     /**
  44.     * @ORM\Embedded(class="Vich\UploaderBundle\Entity\File")
  45.      */
  46.     private $image2;
  47.     /**
  48.     * @ORM\Embedded(class="Vich\UploaderBundle\Entity\File")
  49.      */
  50.     private $image3;
  51.     /**
  52.      * @Assert\Image(
  53.      *     maxWidth=600,
  54.      *     maxHeight=400
  55.      * )
  56.      * @Vich\UploadableField(
  57.      *     mapping="jpo_image",
  58.      *     fileNameProperty="image1.name",
  59.      *     size="image1.size",
  60.      *     mimeType="image1.mimeType",
  61.      *     originalName="image1.originalName",
  62.      *     dimensions="image1.dimensions"
  63.      * )
  64.      *
  65.      * @var File
  66.      */
  67.     private $image1File;
  68.     /**
  69.      * @Assert\Image(
  70.      *     minWidth=20,
  71.      *     maxWidth=330,
  72.      *     minHeight=20,
  73.      *     maxHeight=330
  74.      * )
  75.      * @Vich\UploadableField(
  76.      *     mapping="jpo_image",
  77.      *     fileNameProperty="image2.name",
  78.      *     size="image2.size",
  79.      *     mimeType="image2.mimeType",
  80.      *     originalName="image2.originalName",
  81.      *     dimensions="image2.dimensions"
  82.      * )
  83.      *
  84.      * @var File
  85.      */
  86.     private $image2File;
  87.     /**
  88.      * @Assert\Image(
  89.      *     minWidth=20,
  90.      *     maxWidth=330,
  91.      *     minHeight=20,
  92.      *     maxHeight=330
  93.      * )
  94.      * @Vich\UploadableField(
  95.      *     mapping="jpo_image",
  96.      *     fileNameProperty="image3.name",
  97.      *     size="image3.size",
  98.      *     mimeType="image3.mimeType",
  99.      *     originalName="image3.originalName",
  100.      *     dimensions="image3.dimensions"
  101.      * )
  102.      *
  103.      * @var File
  104.      */
  105.     private $image3File;
  106.     /**
  107.      * @ORM\Column(type="datetime_immutable")
  108.      */
  109.     private $updated;
  110.     /**
  111.      * @ORM\Column(type="date")
  112.      * @Assert\GreaterThan("today")
  113.      */
  114.     private $date;
  115.     /**
  116.      * @ORM\Column(type="time", nullable=true)
  117.      */
  118.     private $heureDebut;
  119.     /**
  120.      * @ORM\Column(type="time", nullable=true)
  121.      */
  122.     private $heureFin;
  123.     /**
  124.      * @Assert\File(
  125.      *     maxSize=2000000,
  126.      *     mimeTypes={
  127.      *         "application/pdf",
  128.      *         "application/msword",
  129.      *         "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
  130.      *     },
  131.      *     mimeTypesMessage="Le type du fichier est invalide, Les types autorisées sont pdf, doc et docx"
  132.      * )
  133.      * @Vich\UploadableField(mapping="jpo_file", fileNameProperty="fileName", size="fileSize")
  134.      *
  135.      * @var File|null
  136.      */
  137.     private $jpoFile;
  138.     /**
  139.      * @ORM\Column(type="string", nullable=true)
  140.      *
  141.      * @var string|null
  142.      */
  143.     private $fileName;
  144.     /**
  145.      * @ORM\Column(type="integer", nullable=true)
  146.      *
  147.      * @var int|null
  148.      */
  149.     private $fileSize;
  150.     /**
  151.      * @ORM\Column(type="string", length=255, nullable=true)
  152.      */
  153.     private $legende;
  154.     public function __construct()
  155.     {
  156.         $this->image1 = new EmbeddedFile();
  157.         $this->image2 = new EmbeddedFile();
  158.         $this->image3 = new EmbeddedFile();
  159.         $this->date = new \DateTime();
  160.         $this->datePublidation = new \DateTime();
  161.         $this->updated = new \DateTimeImmutable();
  162.     }
  163.     public function getDatePublidation(): ?\DateTimeInterface
  164.     {
  165.         return $this->datePublidation;
  166.     }
  167.     public function setDatePublidation(\DateTimeInterface $datePublidation): self
  168.     {
  169.         $this->datePublidation $datePublidation;
  170.         return $this;
  171.     }
  172.     public function getDateActualisation(): ?\DateTimeInterface
  173.     {
  174.         return $this->dateActualisation;
  175.     }
  176.     public function setDateActualisation(\DateTimeInterface $dateActualisation): self
  177.     {
  178.         $this->dateActualisation $dateActualisation;
  179.         return $this;
  180.     }
  181.     public function getLieu(): ?string
  182.     {
  183.         return $this->lieu;
  184.     }
  185.     public function setLieu(string $lieu): self
  186.     {
  187.         $this->lieu $lieu;
  188.         return $this;
  189.     }
  190.     public function getContenu(): ?string
  191.     {
  192.         return $this->contenu;
  193.     }
  194.     public function setContenu(?string $contenu): self
  195.     {
  196.         $this->contenu $contenu;
  197.         return $this;
  198.     }
  199.     public function getEtablissement(): ?Etablissement
  200.     {
  201.         return $this->etablissement;
  202.     }
  203.     public function setEtablissement(?Etablissement $etablissement): self
  204.     {
  205.         $this->etablissement $etablissement;
  206.         return $this;
  207.     }
  208.     public function getImage1(): ?EmbeddedFile
  209.     {
  210.         return $this->image1;
  211.     }
  212.     public function setImage1(EmbeddedFile $image1): self
  213.     {
  214.         $this->image1 $image1;
  215.         return $this;
  216.     }
  217.     public function getImage2(): ?EmbeddedFile
  218.     {
  219.         return $this->image2;
  220.     }
  221.     public function setImage2(EmbeddedFile $image2): self
  222.     {
  223.         $this->image2 $image2;
  224.         return $this;
  225.     }
  226.     public function getImage3(): ?EmbeddedFile
  227.     {
  228.         return $this->image3;
  229.     }
  230.     public function setImage3(EmbeddedFile $image3): self
  231.     {
  232.         $this->image3 $image3;
  233.         return $this;
  234.     }
  235.     /**
  236.      * @param File|UploadedFile $image
  237.      */
  238.     public function setImage1File(?File $image null): void
  239.     {
  240.         $this->image1File $image;
  241.         // https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/usage.md#step-2-link-the-upload-mapping-to-an-entity
  242.         if (null !== $image) {
  243.             $this->updated = new DateTimeImmutable();
  244.         }
  245.     }
  246.     public function getImage1File(): ?File
  247.     {
  248.         return $this->image1File;
  249.     }
  250.     /**
  251.      * @param File|UploadedFile $image
  252.      */
  253.     public function setImage2File(?File $image null): void
  254.     {
  255.         $this->image2File $image;
  256.         // https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/usage.md#step-2-link-the-upload-mapping-to-an-entity
  257.         if (null !== $image) {
  258.             $this->updated = new DateTimeImmutable();
  259.         }
  260.     }
  261.     public function getImage2File(): ?File
  262.     {
  263.         return $this->image2File;
  264.     }
  265.     /**
  266.      * @param File|UploadedFile $image
  267.      */
  268.     public function setImage3File(?File $image null): void
  269.     {
  270.         $this->image3File $image;
  271.         // https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/usage.md#step-2-link-the-upload-mapping-to-an-entity
  272.         if (null !== $image) {
  273.             $this->updated = new DateTimeImmutable();
  274.         }
  275.     }
  276.     public function getImage3File(): ?File
  277.     {
  278.         return $this->image3File;
  279.     }
  280.     public function getDate(): ?\DateTimeInterface
  281.     {
  282.         return $this->date;
  283.     }
  284.     public function setDate(\DateTimeInterface $date): self
  285.     {
  286.         $this->date $date;
  287.         return $this;
  288.     }
  289.     public function getHeureDebut(): ?\DateTimeInterface
  290.     {
  291.         return $this->heureDebut;
  292.     }
  293.     public function setHeureDebut(?\DateTimeInterface $heureDebut): self
  294.     {
  295.         $this->heureDebut $heureDebut;
  296.         return $this;
  297.     }
  298.     public function getHeureFin(): ?\DateTimeInterface
  299.     {
  300.         return $this->heureFin;
  301.     }
  302.     public function setHeureFin(?\DateTimeInterface $heureFin): self
  303.     {
  304.         $this->heureFin $heureFin;
  305.         return $this;
  306.     }
  307.     /**
  308.      * If manually uploading a file (i.e. not using Symfony Form) ensure an instance
  309.      * of 'UploadedFile' is injected into this setter to trigger the update. If this
  310.      * bundle's configuration parameter 'inject_on_load' is set to 'true' this setter
  311.      * must be able to accept an instance of 'File' as the bundle will inject one here
  312.      * during Doctrine hydration.
  313.      *
  314.      * @param File|null $jpoFile
  315.      */
  316.     public function setJpoFile(?File $jpoFile null): void
  317.     {
  318.         $this->jpoFile $jpoFile;
  319.         if (null !== $jpoFile) {
  320.             // It is required that at least one field changes if you are using doctrine
  321.             // otherwise the event listeners won't be called and the file is lost
  322.             $this->updatedAt = new DateTimeImmutable();
  323.         }
  324.     }
  325.     public function getJpoFile(): ?File
  326.     {
  327.         return $this->jpoFile;
  328.     }
  329.     public function setFileName(?string $fileName): void
  330.     {
  331.         $this->fileName $fileName;
  332.     }
  333.     public function getFileName(): ?string
  334.     {
  335.         return $this->fileName;
  336.     }
  337.     public function setFileSize(?int $fileSize): void
  338.     {
  339.         $this->fileSize $fileSize;
  340.     }
  341.     public function getFileSize(): ?int
  342.     {
  343.         return $this->fileSize;
  344.     }
  345.     public function getLegende(): ?string
  346.     {
  347.         return $this->legende;
  348.     }
  349.     public function setLegende(?string $legende): self
  350.     {
  351.         $this->legende $legende;
  352.         return $this;
  353.     }
  354. }