src/Entity/Contact.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. use App\Repository\ContactRepository;
  6. use App\Entity\User// Assurez-vous que le chemin vers votre entité User est correct
  7. /**
  8.  * @ORM\Entity(repositoryClass=ContactRepository::class)
  9.  * @ORM\Table(name="contact")
  10.  */
  11. class Contact
  12. {
  13.   /**
  14.    * @ORM\Id
  15.    * @ORM\GeneratedValue
  16.    * @ORM\Column(type="integer")
  17.    */
  18.   private $id;
  19.   /**
  20.    * @ORM\ManyToOne(targetEntity=User::class)
  21.    * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
  22.    * @var User|null
  23.    */
  24.   private $user// Sera null si le visiteur n'est pas connecté
  25.   /**
  26.    * @ORM\Column(type="string", length=100, name="firstname", nullable=true)
  27.    * @Assert\NotBlank(message="Veuillez entrer votre prénom.", groups={"guest"})
  28.    * @Assert\Length(
  29.    *      min = 2,
  30.    *      max = 100,
  31.    *      minMessage = "Votre prénom doit comporter au moins {{ limit }} caractères.",
  32.    *      maxMessage = "Votre prénom ne peut pas dépasser {{ limit }} caractères.",
  33.    *      groups={"guest"}
  34.    * )
  35.    * @var string|null
  36.    */
  37.   private $firstname;
  38.   /**
  39.    * @ORM\Column(type="string", length=100, name="lastname", nullable=true)
  40.    * @Assert\NotBlank(message="Veuillez entrer votre nom.", groups={"guest"})
  41.    * @Assert\Length(
  42.    *      min = 2,
  43.    *      max = 100,
  44.    *      minMessage = "Votre nom doit comporter au moins {{ limit }} caractères.",
  45.    *      maxMessage = "Votre nom ne peut pas dépasser {{ limit }} caractères.",
  46.    *      groups={"guest"}
  47.    * )
  48.    * @var string|null
  49.    */
  50.   private $lastname;
  51.   /**
  52.    * @ORM\Column(type="string", length=180, nullable=true)
  53.    * @Assert\NotBlank(message="Veuillez entrer votre adresse email.", groups={"guest"})
  54.    * @Assert\Email(message = "L'adresse email '{{ value }}' n'est pas une adresse email valide.", groups={"guest"})
  55.    * @var string|null
  56.    */
  57.   private $email;
  58.   /**
  59.    * @ORM\Column(type="text")
  60.    * @Assert\NotBlank(message="Veuillez décrire votre demande.", groups={"Default", "guest"})
  61.    * @Assert\Length(
  62.    *      min = 10,
  63.    *      minMessage = "Votre message doit comporter au moins {{ limit }} caractères.",
  64.    *      groups={"Default", "guest"}
  65.    * )
  66.    * @var string|null
  67.    */
  68.   private $message;
  69.   /**
  70.    * @ORM\Column(type="datetime_immutable")
  71.    * @var \DateTimeImmutable|null
  72.    */
  73.   private $createdAt;
  74.   public function __construct()
  75.   {
  76.     $this->createdAt = new \DateTimeImmutable();
  77.   }
  78.   // --- Getters and Setters ---
  79.   /**
  80.    * @return int|null
  81.    */
  82.   public function getId(): ?int
  83.   {
  84.     return $this->id;
  85.   }
  86.   /**
  87.    * @return User|null
  88.    */
  89.   public function getUser(): ?User
  90.   {
  91.     return $this->user;
  92.   }
  93.   /**
  94.    * @param User|null $user
  95.    * @return $this
  96.    */
  97.   public function setUser(?User $user): self
  98.   {
  99.     $this->user $user;
  100.     return $this;
  101.   }
  102.   /**
  103.    * @return string|null
  104.    */
  105.   public function getFirstname(): ?string
  106.   {
  107.     return $this->firstname;
  108.   }
  109.   /**
  110.    * @param string|null $firstname
  111.    * @return $this
  112.    */
  113.   public function setFirstname(?string $firstname): self
  114.   {
  115.     $this->firstname $firstname;
  116.     return $this;
  117.   }
  118.   /**
  119.    * @return string|null
  120.    */
  121.   public function getLastname(): ?string
  122.   {
  123.     return $this->lastname;
  124.   }
  125.   /**
  126.    * @param string|null $lastname
  127.    * @return $this
  128.    */
  129.   public function setLastname(?string $lastname): self
  130.   {
  131.     $this->lastname $lastname;
  132.     return $this;
  133.   }
  134.   /**
  135.    * @return string|null
  136.    */
  137.   public function getEmail(): ?string
  138.   {
  139.     return $this->email;
  140.   }
  141.   /**
  142.    * @param string|null $email
  143.    * @return $this
  144.    */
  145.   public function setEmail(?string $email): self
  146.   {
  147.     $this->email $email;
  148.     return $this;
  149.   }
  150.   /**
  151.    * @return string|null
  152.    */
  153.   public function getMessage(): ?string
  154.   {
  155.     return $this->message;
  156.   }
  157.   /**
  158.    * @param string|null $message
  159.    * @return $this
  160.    */
  161.   public function setMessage(?string $message): self // Le message est requis par la validation, donc techniquement pas nullable après soumission valide.
  162.   {
  163.     $this->message $message;
  164.     return $this;
  165.   }
  166.   /**
  167.    * @return \DateTimeImmutable|null
  168.    */
  169.   public function getCreatedAt(): ?\DateTimeImmutable
  170.   {
  171.     return $this->createdAt;
  172.   }
  173.   /**
  174.    * @param \DateTimeImmutable $createdAt
  175.    * @return $this
  176.    */
  177.   public function setCreatedAt(\DateTimeImmutable $createdAt): self
  178.   {
  179.     $this->createdAt $createdAt;
  180.     return $this;
  181.   }
  182. }