src/Entity/EmailAddress.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Classes\Hasher;
  4. use DateTime;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. /**
  11.  * Class EmailAddress
  12.  *
  13.  * @ORM\Entity(repositoryClass="App\Repository\EmailAddressRepository")
  14.  * @ORM\Table(name="malys_email_address")
  15.  * @package App\Entity
  16.  * @UniqueEntity(fields={"address"}, message="Cette adresse email existe déjà")
  17.  * @ORM\HasLifecycleCallbacks()
  18.  */
  19. class EmailAddress
  20. {
  21.     /**
  22.      * @var integer
  23.      *
  24.      * @ORM\Column(name="id", type="integer")
  25.      * @ORM\Id
  26.      * @ORM\GeneratedValue(strategy="AUTO")
  27.      */
  28.     protected $id;
  29.     /**
  30.      * @var string
  31.      *
  32.      * @ORM\Column(name="address", type="string", nullable=false)
  33.      * @Assert\NotBlank(message="Veuillez indiquer l'adresse email")
  34.      * @Assert\Email(message="L'adresse email n'est pas valide")
  35.      */
  36.     protected $address;
  37.     /**
  38.      * @var DateTime
  39.      *
  40.      * @ORM\Column(name="confirmedAt", type="datetime", nullable=true)
  41.      */
  42.     protected $confirmedAt;
  43.     /**
  44.      * @var DateTime
  45.      *
  46.      * @ORM\Column(name="createdAt", type="datetime", nullable=false)
  47.      */
  48.     protected $createdAt;
  49.     /**
  50.      * @var DateTime
  51.      *
  52.      * @ORM\Column(name="updatedAt", type="datetime", nullable=true)
  53.      */
  54.     protected $updatedAt;
  55.     /**
  56.      * @ORM\Column(name="hashed_id", type="string", nullable=false)
  57.      */
  58.     protected $hashedId;
  59.     /**
  60.      * @ORM\OneToMany(targetEntity="Supplier", mappedBy="emailAddress")
  61.      */
  62.     protected $suppliers;
  63.     public function __construct()
  64.     {
  65.         $this->suppliers = new ArrayCollection();
  66.     }
  67.     /**
  68.      * @return int|null
  69.      */
  70.     public function getId(): ?int
  71.     {
  72.         return $this->id;
  73.     }
  74.     /**
  75.      * @param int $id
  76.      * @return EmailAddress
  77.      */
  78.     public function setId(int $id): EmailAddress
  79.     {
  80.         $this->id $id;
  81.         return $this;
  82.     }
  83.     /**
  84.      * @return string|null
  85.      */
  86.     public function getAddress(): ?string
  87.     {
  88.         return $this->address;
  89.     }
  90.     /**
  91.      * @param string|null $address
  92.      * @return EmailAddress
  93.      */
  94.     public function setAddress(?string $address): EmailAddress
  95.     {
  96.         $this->address $address;
  97.         return $this;
  98.     }
  99.     /**
  100.      * @return DateTime|null
  101.      */
  102.     public function getCreatedAt(): ?DateTime
  103.     {
  104.         return $this->createdAt;
  105.     }
  106.     /**
  107.      * Set createdAt
  108.      *
  109.      * @return EmailAddress
  110.      * @ORM\PrePersist
  111.      */
  112.     public function setCreatedAt(): EmailAddress
  113.     {
  114.         $this->createdAt = new DateTime();
  115.         $this->updatedAt = new DateTime();
  116.         return $this;
  117.     }
  118.     /**
  119.      * @return DateTime|null
  120.      */
  121.     public function getUpdatedAt(): ?DateTime
  122.     {
  123.         return $this->updatedAt;
  124.     }
  125.     /**
  126.      * Set updatedAt
  127.      *
  128.      * @return EmailAddress
  129.      * @ORM\PreUpdate
  130.      */
  131.     public function setUpdatedAt(): EmailAddress
  132.     {
  133.         $this->updatedAt = new DateTime();
  134.         return $this;
  135.     }
  136.     /**
  137.      * @return DateTime|null
  138.      */
  139.     public function getConfirmedAt(): ?DateTime
  140.     {
  141.         return $this->confirmedAt;
  142.     }
  143.     /**
  144.      * Set updatedAt
  145.      *
  146.      * @param DateTime|null $date
  147.      * @return EmailAddress
  148.      */
  149.     public function setConfirmedAt(DateTime $date null): EmailAddress
  150.     {
  151.         $this->confirmedAt $date;
  152.         return $this;
  153.     }
  154.     /**
  155.      * @param string|null $hashedId
  156.      * @return $this
  157.      */
  158.     public function setHashedId(?string $hashedId null): EmailAddress
  159.     {
  160.         $this->hashedId $hashedId;
  161.         return $this;
  162.     }
  163.     /**
  164.      * @return string|null
  165.      */
  166.     public function getHashedId(): ?string
  167.     {
  168.         return $this->hashedId;
  169.     }
  170.     /**
  171.      * @ORM\PrePersist
  172.      */
  173.     public function installHashedId()
  174.     {
  175.         if (is_null($this->hashedId)) {
  176.             $this->hashedId Hasher::generateHash(self::class);
  177.         }
  178.     }
  179.     /**
  180.      * @return Collection|Supplier[]
  181.      */
  182.     public function getSuppliers()
  183.     {
  184.         return $this->suppliers;
  185.     }
  186. }