<?php

namespace App\Entity;

use App\Repository\CommunicationClientRepository;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass=CommunicationClientRepository::class)
 * @ORM\Table(schema="sav")
 */
class CommunicationClient
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity=Client::class, inversedBy="communicationClients")
     * @ORM\JoinColumn(name="idclient")
     */
    private $client;

    /**
     * @ORM\ManyToOne(targetEntity=Equipement::class, inversedBy="communicationClients")
     * @ORM\JoinColumn(name="idequipement")
     */
    private $equipement;

    /**
     * @ORM\ManyToOne(targetEntity=Intervention::class, inversedBy="communicationClients")
     * @ORM\JoinColumn(name="idintervention")
     */
    private $intervention;

    /**
     * @ORM\ManyToOne(targetEntity=CommunicationCanal::class, inversedBy="communicationClients")
     * @ORM\JoinColumn(name="idcommunication_canal")
     */
    private $communication_canal;

    /**
     * @ORM\ManyToOne(targetEntity=CommunicationType::class, inversedBy="communicationClients")
     * @ORM\JoinColumn(name="idcommunication_type")
     */
    private $communication_type;

    /**
     * @ORM\Column(type="datetime")
     */
    private $date_heure_envoi;

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

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

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

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

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getClient(): ?Client
    {
        return $this->client;
    }

    public function setClient(?Client $client): self
    {
        $this->client = $client;

        return $this;
    }

    public function getEquipement(): ?Equipement
    {
        return $this->equipement;
    }

    public function setEquipement(?Equipement $equipement): self
    {
        $this->equipement = $equipement;

        return $this;
    }

    public function getIntervention(): ?Intervention
    {
        return $this->intervention;
    }

    public function setIntervention(?Intervention $intervention): self
    {
        $this->intervention = $intervention;

        return $this;
    }

    public function getCommunicationCanal(): ?CommunicationCanal
    {
        return $this->communication_canal;
    }

    public function setCommunicationCanal(?CommunicationCanal $communication_canal): self
    {
        $this->communication_canal = $communication_canal;

        return $this;
    }

    public function getCommunicationType(): ?CommunicationType
    {
        return $this->communication_type;
    }

    public function setCommunicationType(?CommunicationType $communication_type): self
    {
        $this->communication_type = $communication_type;

        return $this;
    }

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

    public function setDateHeureEnvoi(\DateTimeInterface $date_heure_envoi): self
    {
        $this->date_heure_envoi = $date_heure_envoi;

        return $this;
    }

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

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

        return $this;
    }

    public function getIdCampagne(): ?string
    {
        return $this->id_campagne;
    }

    public function setIdCampagne(?string $id_campagne): self
    {
        $this->id_campagne = $id_campagne;

        return $this;
    }

    public function getDestination(): ?string
    {
        return $this->destination;
    }

    public function setDestination(?string $destination): self
    {
        $this->destination = $destination;

        return $this;
    }

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

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

        return $this;
    }
}
