<?phpnamespace App\Entity\ReseauSociaux;use App\Entity\Company;use App\Entity\User;use App\Repository\ReseauSociaux\ConversationRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Serializer\Annotation\Groups;/** * @ORM\Entity(repositoryClass=ConversationRepository::class) */class Conversation{ /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") * @Groups("message:read") */ private $id; /** * @ORM\ManyToOne(targetEntity=User::class, inversedBy="conversations") * @Groups("message:read") * */ private $utilisateur1; /** * @ORM\ManyToOne(targetEntity=User::class, inversedBy="conversations") * @Groups("message:read") */ private $utilisateur2; /** * @ORM\OneToMany(targetEntity=Message::class, mappedBy="conversation") */ private $messages; /** * @ORM\OneToOne(targetEntity=Message::class, cascade={"persist", "remove"}) */ private $lastMessage; /** * @ORM\ManyToOne(targetEntity=Company::class, inversedBy="conversations") * @Groups("message:read") */ private $utilisateurComp1; /** * @ORM\ManyToOne(targetEntity=Company::class, inversedBy="conversations") * @Groups("message:read") */ private $utilisateurComp2; public function __construct() { $this->messages = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getUtilisateur1(): ?User { return $this->utilisateur1; } public function setUtilisateur1(?User $utilisateur1): self { $this->utilisateur1 = $utilisateur1; return $this; } public function getUtilisateur2(): ?User { return $this->utilisateur2; } public function setUtilisateur2(?User $utilisateur2): self { $this->utilisateur2 = $utilisateur2; return $this; } /** * @return Collection|Message[] */ public function getMessages(): Collection { return $this->messages; } public function addMessage(Message $message): self { if (!$this->messages->contains($message)) { $this->messages[] = $message; $message->setConversation($this); } return $this; } public function removeMessage(Message $message): self { if ($this->messages->removeElement($message)) { // set the owning side to null (unless already changed) if ($message->getConversation() === $this) { $message->setConversation(null); } } return $this; } public function getLastMessage(): ?Message { return $this->lastMessage; } public function setLastMessage(?Message $lastMessage): self { $this->lastMessage = $lastMessage; return $this; } public function getUtilisateurComp1(): ?Company { return $this->utilisateurComp1; } public function setUtilisateurComp1(?Company $utilisateurComp1): self { $this->utilisateurComp1 = $utilisateurComp1; return $this; } public function getUtilisateurComp2(): ?Company { return $this->utilisateurComp2; } public function setUtilisateurComp2(?Company $utilisateurComp2): self { $this->utilisateurComp2 = $utilisateurComp2; return $this; }}