<?php

namespace App\Entity;

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

/**
 * @ORM\Entity(repositoryClass=AgentAppareilRepository::class)
 * @ORM\Table(schema="sav")
 */
class AgentAppareil
{
    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity=Appareil::class, inversedBy="agentAppareils", cascade={"persist"})
     * @ORM\JoinColumn(nullable=false, name="idappareil")
     * @Groups({"api"})
     */
    private $appareil;


    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity=Utilisateur::class, inversedBy="agentAppareils",cascade={"persist"})
     * @ORM\JoinColumn(nullable=false, name="idutilisateur_agent")
     */
    private $utilisateur_agent;

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

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

    /**
     * @ORM\Column(type="string", length=50, nullable=true)
     */
    private $reference;

    /**
     * @ORM\Column(type="string", length=150, nullable=true)
     */
    private $commentaire;

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

    public function getAppareil(): ?Appareil
    {
        return $this->appareil;
    }

    public function setAppareil(?Appareil $appareil): self
    {
        $this->appareil = $appareil;

        return $this;
    }

    public function getUtilisateurAgent(): ?Utilisateur
    {
        return $this->utilisateur_agent;
    }

    public function setUtilisateurAgent(?Utilisateur $utilisateur_agent): self
    {
        $this->utilisateur_agent = $utilisateur_agent;

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

    public function getReference(): ?string
    {
        return $this->reference;
    }

    public function setReference(?string $reference): self
    {
        $this->reference = $reference;

        return $this;
    }

    public function getCommentaire(): ?string
    {
        return $this->commentaire;
    }

    public function setCommentaire(?string $commentaire): self
    {
        $this->commentaire = $commentaire;

        return $this;
    }

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

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

        return $this;
    }
}
