<?php
namespace 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;
}
}