<?phpnamespace App\Entity\Messenger;use App\Entity\Core\Agencies;use App\Entity\Core\Users;use Doctrine\DBAL\Types\Types;use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;use Symfony\Component\Validator\Constraints as Assert;use Doctrine\ORM\Mapping as ORM;/** * Messages * * @ORM\Table("messenger_messages") * @ORM\Entity(repositoryClass="App\Repository\Messenger\MessagesRepository") * @ORM\HasLifecycleCallbacks() */class Messages{ /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @var string * * @ORM\Column(name="created_at", type="datetime", nullable=true) */ private $createdAt; /** * @var string * * @ORM\Column(name="updated_at", type="datetime", nullable=true) */ private $updatedAt; /** * @var string * * @ORM\Column(name="message", type="text", nullable=true) */ private $message; /** * @var \Users * * @ORM\ManyToOne(targetEntity="App\Entity\Core\Users") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true) * }) */ protected $user; /** * @var \Groups * * @ORM\ManyToOne(targetEntity="App\Entity\Messenger\Groups") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="group_id", referencedColumnName="id", nullable=true) * }) */ protected $group; /** * Date de lecture du message par le destinataire * null = non lu, datetime = lu à cette date * * @var \DateTimeInterface|null * * @ORM\Column(name="read_at", type="datetime", nullable=true) */ private $readAt; /** * @ORM\PrePersist */ public function setCreatedAtValue(): void { $this->setCreatedAt(new \DateTime("now")); $this->setUpdatedAt(new \DateTime("now")); } /** * @ORM\PreUpdate */ public function setUpdatedAtValue(): void { $this->setUpdatedAt(new \DateTime("now")); } public function __toString() { return (string)$this->id; } public function getId(): ?int { return $this->id; } public function getCreatedAt(): ?\DateTimeInterface { return $this->createdAt; } public function setCreatedAt(?\DateTimeInterface $createdAt): static { $this->createdAt = $createdAt; return $this; } public function getUpdatedAt(): ?\DateTimeInterface { return $this->updatedAt; } public function setUpdatedAt(?\DateTimeInterface $updatedAt): static { $this->updatedAt = $updatedAt; return $this; } public function getMessage(): ?string { return $this->message; } public function setMessage(?string $message): static { $this->message = $message; return $this; } public function getUser(): ?Users { return $this->user; } public function setUser(?Users $user): static { $this->user = $user; return $this; } public function getGroup(): ?Groups { return $this->group; } public function setGroup(?Groups $group): static { $this->group = $group; return $this; } // ======================================== // NOUVEAU — readAt (lu/non lu) // ======================================== public function getReadAt(): ?\DateTimeInterface { return $this->readAt; } public function setReadAt(?\DateTimeInterface $readAt): static { $this->readAt = $readAt; return $this; } /** * Vérifie si le message a été lu */ public function isRead(): bool { return $this->readAt !== null; }}