src/Entity/Banner.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Gedmo\Mapping\Annotation as Gedmo;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. use Symfony\Component\Validator\Context\ExecutionContextInterface;
  7. /**
  8.  * @ORM\Entity(repositoryClass="App\Repository\BannerRepository")
  9.  *
  10.  * @ORM\Table(
  11.  *     name="banner",
  12.  *     indexes={
  13.  *
  14.  *         @ORM\Index(columns={"type"}),
  15.  *         @ORM\Index(columns={"localeId"})
  16.  *     }
  17.  * )
  18.  *
  19.  * @Assert\Callback("validateDates")
  20.  */
  21. class Banner
  22. {
  23.     /**
  24.      * @ORM\Id
  25.      *
  26.      * @ORM\Column(type="bigint")
  27.      *
  28.      * @ORM\GeneratedValue(strategy="AUTO")
  29.      */
  30.     protected $id;
  31.     /**
  32.      * @ORM\Column(type="string")
  33.      */
  34.     protected $alt;
  35.     /**
  36.      * @ORM\Column(type="string")
  37.      */
  38.     protected $image;
  39.     /**
  40.      * @ORM\Column(type="string", nullable=true)
  41.      */
  42.     protected $imageMobile;
  43.     /**
  44.      * @ORM\Column(type="string")
  45.      */
  46.     protected $link;
  47.     /**
  48.      * @ORM\Column(type="string")
  49.      */
  50.     protected $type;
  51.     /**
  52.      * @ORM\Column(type="string", nullable=true)
  53.      */
  54.     protected $localeId;
  55.     /**
  56.      * Locale.
  57.      *
  58.      * @Gedmo\Locale
  59.      */
  60.     protected $locale;
  61.     /**
  62.      * @ORM\Column(type="integer", nullable=true)
  63.      */
  64.     protected $priority;
  65.     /** @var array */
  66.     private $translations;
  67.     /**
  68.      * @ORM\Column(type="datetime")
  69.      */
  70.     private $startDate;
  71.     /**
  72.      * @ORM\Column(type="datetime")
  73.      */
  74.     private $endDate;
  75.     public function getId()
  76.     {
  77.         return $this->id;
  78.     }
  79.     public function getAlt()
  80.     {
  81.         return $this->alt;
  82.     }
  83.     public function setAlt($alt): void
  84.     {
  85.         $this->alt $alt;
  86.     }
  87.     public function getLink()
  88.     {
  89.         return $this->link;
  90.     }
  91.     public function setLink($link): void
  92.     {
  93.         $this->link $link;
  94.     }
  95.     public function getImage()
  96.     {
  97.         return $this->image;
  98.     }
  99.     public function setImage($image): void
  100.     {
  101.         $this->image $image;
  102.     }
  103.     public function getImageMobile()
  104.     {
  105.         return $this->imageMobile;
  106.     }
  107.     public function setImageMobile($imageMobile): void
  108.     {
  109.         $this->imageMobile $imageMobile;
  110.     }
  111.     public function getType()
  112.     {
  113.         return $this->type;
  114.     }
  115.     public function setType($type): void
  116.     {
  117.         $this->type $type;
  118.     }
  119.     public function getLocaleId()
  120.     {
  121.         return $this->localeId;
  122.     }
  123.     public function setLocaleId($localeId): void
  124.     {
  125.         $this->localeId $localeId;
  126.     }
  127.     public function getLocale()
  128.     {
  129.         return $this->locale;
  130.     }
  131.     public function setLocale($locale): void
  132.     {
  133.         $this->locale $locale;
  134.     }
  135.     public function setTranslatableLocale($locale): void
  136.     {
  137.         $this->locale $locale;
  138.     }
  139.     public function setTranslations(array $translations): void
  140.     {
  141.         $this->translations $translations;
  142.     }
  143.     public function getStartDate(): ?\DateTimeInterface
  144.     {
  145.         return $this->startDate;
  146.     }
  147.     public function setStartDate(\DateTimeInterface $startDate): self
  148.     {
  149.         $this->startDate $startDate;
  150.         return $this;
  151.     }
  152.     public function getEndDate(): ?\DateTimeInterface
  153.     {
  154.         return $this->endDate;
  155.     }
  156.     public function setEndDate(\DateTimeInterface $endDate): self
  157.     {
  158.         $this->endDate $endDate;
  159.         return $this;
  160.     }
  161.     public function getPriority()
  162.     {
  163.         return $this->priority;
  164.     }
  165.     public function setPriority($priority): void
  166.     {
  167.         $this->priority $priority;
  168.     }
  169.     public function validateDates(ExecutionContextInterface $context$payload): void
  170.     {
  171.         if ($this->startDate >= $this->endDate) {
  172.             $context->buildViolation('La date de début doit être inférieure à la date de fin!')
  173.                 ->atPath('startDate')
  174.                 ->addViolation();
  175.         }
  176.     }
  177. }