<?php

namespace App\Entity;

use App\Repository\GroupeUtilisateurRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Serializer\Annotation\Ignore;

/**
 * @ORM\Entity(repositoryClass=GroupeUtilisateurRepository::class)
 * @ORM\Table(name="groupe_utilisateur", schema="sav", uniqueConstraints={
 *      @ORM\UniqueConstraint(name="GROUPE_UTILISATEUR_pkey", columns={"idutilisateur", "idgroupe"})
 * })
 */
class GroupeUtilisateur
{

    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Utilisateur", inversedBy="groupeUtilisateurs")
     * @ORM\JoinColumn(name="idutilisateur")
     */
    private $utilisateur;

    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Groupe", inversedBy="groupeUtilisateurs")
     * @ORM\JoinColumn(name="idgroupe")
     * @Ignore()
     */
    private $groupe;

    /**
     * @ORM\Column(type="boolean", nullable=true)
     */
    private $notification;

    /**
     * @ORM\ManyToOne(targetEntity=TchatMessage::class, inversedBy="groupeUtilisateurs")
     * @ORM\JoinColumn(name="iddernier_message_lu")
     * @Ignore()
     */
    private $dernier_message_lu;

    /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $date_dernier_message_lu;

    public function getUtilisateur(): ?Utilisateur
    {
        return $this->utilisateur;
    }

    public function setUtilisateur(?Utilisateur $utilisateur): self
    {
        $this->utilisateur = $utilisateur;

        return $this;
    }

    public function getGroupe(): ?Groupe
    {
        return $this->groupe;
    }

    public function setGroupe(?Groupe $groupe): self
    {
        $this->groupe = $groupe;

        return $this;
    }

    public function getNotification(): ?bool
    {
        return $this->notification;
    }

    public function setNotification(?bool $notification): self
    {
        $this->notification = $notification;

        return $this;
    }

    /**
     * @Ignore()
     */
    public function getDernierMessageLu(): ?TchatMessage
    {
        return $this->dernier_message_lu;
    }

    public function setDernierMessageLu(?TchatMessage $dernier_message_lu): self
    {
        $this->dernier_message_lu = $dernier_message_lu;

        return $this;
    }

    public function getDateDernierMessageLu(): ?\DateTimeInterface
    {
        return $this->date_dernier_message_lu;
    }

    public function setDateDernierMessageLu(?\DateTimeInterface $date_dernier_message_lu): self
    {
        $this->date_dernier_message_lu = $date_dernier_message_lu;

        return $this;
    }

}
