src/Entity/Um6p/Event.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Um6p;
  3. use App\Repository\Um6p\EventRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use App\Utils\Utils;
  8. use Gedmo\Mapping\Annotation as Gedmo;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. use Symfony\Component\HttpFoundation\File\File;
  11. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  12. use Knp\DoctrineBehaviors\Contract\Entity\TranslatableInterface;
  13. use Knp\DoctrineBehaviors\Model\Translatable\TranslatableTrait;
  14. use Symfony\Component\PropertyAccess\PropertyAccess
  15. /**
  16.  * @ORM\Entity(repositoryClass=EventRepository::class)
  17.  * @Vich\Uploadable
  18.  */
  19. class Event implements TranslatableInterface
  20.     use TranslatableTrait;
  21.     /**
  22.      * @ORM\Id
  23.      * @ORM\GeneratedValue
  24.      * @ORM\Column(type="integer")
  25.      */
  26.     private $id;
  27.     /**
  28.      * @ORM\Column(type="string", length=255, nullable=true)
  29.      */
  30.     private $image;
  31.     /**
  32.      * @Assert\NotBlank(message="slug Obligatoire")
  33.      * @ORM\Column(type="string", length=255, unique=true)
  34.      */
  35.     private $slug;
  36.     /**
  37.      * @ORM\Column(type="string", length=255, nullable=true)
  38.      */
  39.     private $link;
  40.     /**
  41.      * @ORM\Column(type="string", length=255, nullable=true)
  42.      */
  43.     private $location;
  44.     /**
  45.      * @ORM\Column(type="integer", nullable=true)
  46.      */
  47.     private $position;
  48.     /**
  49.      * @ORM\Column(type="boolean", nullable=true)
  50.      */
  51.     private $publier;
  52.     /**
  53.      * @ORM\Column(type="boolean", nullable=true)
  54.      */
  55.     private $encours;
  56.     /**
  57.      * @ORM\OneToMany(targetEntity=BlockEvent::class, mappedBy="event", cascade={"persist","remove"})
  58.      * @ORM\OrderBy({"position" = "ASC"})
  59.      */
  60.     private $blocks;
  61.     /**
  62.      * @ORM\OneToMany(targetEntity=MediaEvent::class, mappedBy="event", cascade={"persist","remove"})
  63.      * @ORM\OrderBy({"position" = "ASC"})
  64.      */
  65.     private $medias;
  66.     /**
  67.      * @ORM\ManyToMany(targetEntity=Speaker::class, inversedBy="events")
  68.      * @ORM\OrderBy({"position" = "ASC"})
  69.      */
  70.     private $speakers;
  71.     /**
  72.      * @Gedmo\Timestampable(on="create")
  73.      * @ORM\Column(type="datetime", nullable=true)
  74.      */
  75.     private $created_at;
  76.     /**
  77.      * @Gedmo\Timestampable(on="update")
  78.      * @ORM\Column(type="datetime", nullable=true)
  79.      */
  80.     private $updated_at;
  81.     /**
  82.      * @Vich\UploadableField(mapping="event_image", fileNameProperty="image")
  83.      * @var File
  84.      */
  85.     private $imageFile
  86.     /**
  87.      * @ORM\Column(type="datetime", nullable=true)
  88.      */
  89.     private $datePublier;
  90.     /**
  91.      * @ORM\Column(type="datetime", nullable=true)
  92.      */
  93.     private $date_final;
  94.     protected $translations;
  95.     public  function __toString(){
  96.         return $this->getTitre();
  97.     }
  98.     public function getDtitre(){
  99.         return $this->getTitre();
  100.     }
  101.     public function __construct()
  102.     {
  103.         $this->blocks       = new ArrayCollection();
  104.         $this->medias       = new ArrayCollection();
  105.         $this->speakers     = new ArrayCollection(); 
  106.     }
  107.     public function getId(): ?int
  108.     {
  109.         return $this->id;
  110.     }
  111.     public function getImage(): ?string
  112.     {
  113.         return $this->image;
  114.     }
  115.     public function setImage(?string $image): self
  116.     {
  117.         $this->image $image;
  118.         return $this;
  119.     }
  120.     public function getSlug(): ?string
  121.     {
  122.         return $this->slug;
  123.     }
  124.     public function setSlug(string $slug): self
  125.     {
  126.         $this->slug $slug;
  127.         return $this;
  128.     }
  129.     public function getLink(): ?string
  130.     {
  131.         return $this->link;
  132.     }
  133.     public function setLink(?string $link): self
  134.     {
  135.         $this->link $link;
  136.         return $this;
  137.     }
  138.     public function getLocation(): ?string
  139.     {
  140.         return $this->location;
  141.     }
  142.     public function setLocation(?string $location): self
  143.     {
  144.         $this->location $location;
  145.         return $this;
  146.     }
  147.     public function getPosition(): ?int
  148.     {
  149.         return $this->position;
  150.     }
  151.     public function setPosition(?int $position): self
  152.     {
  153.         $this->position $position;
  154.         return $this;
  155.     }
  156.     public function isPublier(): ?bool
  157.     {
  158.         return $this->publier;
  159.     }
  160.     public function setPublier(?bool $publier): self
  161.     {
  162.         $this->publier $publier;
  163.         return $this;
  164.     }
  165.     public function isEncours(): ?bool
  166.     {
  167.         return $this->encours;
  168.     }
  169.     public function setEncours(?bool $encours): self
  170.     {
  171.         $this->encours $encours;
  172.         return $this;
  173.     }
  174.     
  175.     /**
  176.      * @return Collection|BlockEvent[]
  177.      */
  178.     public function getBlocks(): Collection
  179.     {
  180.         return $this->blocks;
  181.     }
  182.     public function addBlock(BlockEvent $block): self
  183.     {
  184.         if (!$this->blocks->contains($block)) {
  185.             $this->blocks[] = $block;
  186.             $block->setEvent($this);
  187.         }
  188.         return $this;
  189.     }
  190.     public function removeBlock(BlockEvent $block): self
  191.     {
  192.         if ($this->blocks->removeElement($block)) {
  193.             // set the owning side to null (unless already changed)
  194.             if ($block->getEvent() === $this) {
  195.                 $block->setEvent(null);
  196.             }
  197.         }
  198.         return $this;
  199.     }
  200.     
  201.     /**
  202.      * @return Collection|MediaEvent[]
  203.      */
  204.     public function getMedias(): Collection
  205.     
  206.         return $this->medias;
  207.     }
  208.     public function addMedia(MediaEvent $media): self
  209.     {
  210.         if (!$this->medias->contains($media)) {
  211.             $this->medias[] = $media;
  212.             $media->setEvent($this);
  213.         }
  214.         return $this;
  215.     }
  216.     public function removeMedia(MediaEvent $media): self
  217.     {
  218.         if ($this->medias->removeElement($media)) { 
  219.             if ($media->getEvent() === $this) {
  220.                 $media->setEvent(null);
  221.             }
  222.         }
  223.         return $this;
  224.     }
  225.     /**
  226.      * @return Collection|Speaker[]
  227.      */
  228.     public function getSpeakers(): Collection
  229.     {
  230.         return $this->speakers;
  231.     }
  232.     public function addSpeaker(Speaker $speaker): self
  233.     {
  234.         if (!$this->speakers->contains($speaker)) {
  235.             $this->speakers[] = $speaker;
  236.             $speaker->addElement($this);
  237.         }
  238.         return $this;
  239.     }
  240.     public function removeSpeaker(Speaker $speaker): self
  241.     {
  242.         if ($this->speakers->removeElement($speaker)) {
  243.             $speaker->removeElement($this);
  244.         }
  245.         return $this;
  246.     }
  247.     public function setImageFile(?File $image null)
  248.     {
  249.         $this->imageFile $image;
  250.         if ($image) {
  251.             $this->updated_at = new \DateTime('now');
  252.         }
  253.         return $this;
  254.     }
  255.     public function getImageFile()
  256.     {
  257.         return $this->imageFile;
  258.     }
  259.     public function getCreatedAt(): ?\DateTimeInterface
  260.     {
  261.         return $this->created_at;
  262.     }
  263.     public function setCreatedAt(?\DateTimeInterface $created_at): self
  264.     {
  265.         $this->created_at $created_at;
  266.         return $this;
  267.     }
  268.     public function getUpdatedAt(): ?\DateTimeInterface
  269.     {
  270.         return $this->updated_at;
  271.     }
  272.     public function setUpdatedAt(?\DateTimeInterface $updated_at): self
  273.     {
  274.         $this->updated_at $updated_at;
  275.         return $this;
  276.     }
  277.  
  278.  
  279.   
  280.     public function getDatePublier(): ?\DateTimeInterface
  281.     {
  282.         return $this->datePublier;
  283.     }
  284.     public function setDatePublier(?\DateTimeInterface $datePublier): self
  285.     {
  286.         $this->datePublier $datePublier;
  287.         return $this;
  288.     }
  289.     
  290.     public function getDateFinal(): ?\DateTimeInterface
  291.     {
  292.         return $this->date_final;
  293.     }
  294.     public function setDateFinal(?\DateTimeInterface $date_final): self
  295.     {
  296.         $this->date_final $date_final;
  297.         return $this;
  298.     }
  299.     
  300.     public function getDateFormat($local="en")
  301.     {
  302.         return Utils::getDateFormatingsansday($this->date_final->format('Y-m-d'),$local);
  303.     }
  304.  
  305.    
  306.     public function __call($method$arguments)
  307.     {
  308.         return PropertyAccess::createPropertyAccessor()->getValue($this->translate(), $method);
  309.     }
  310. }