<?php

namespace App\Entity;

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

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

    /**
     * @ORM\ManyToOne(targetEntity=Contrat::class, inversedBy="contratResiliations")
     * @ORM\JoinColumn(nullable=false, name="idcontrat")
     */
    private $contrat;

    /**
     * @ORM\ManyToOne(targetEntity=TypeEnvoi::class, inversedBy="contratResiliations")
     * @ORM\JoinColumn(name="idtype_envoi")
     */
    private $type_envoi;

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

    /**
     * @ORM\ManyToOne(targetEntity=ContratMotifResiliation::class, inversedBy="contratResiliations")
     * @ORM\JoinColumn(name="idcontrat_motif_resiliation")
     */
    private $contrat_motif_resiliation;

    /**
     * @ORM\ManyToOne(targetEntity=EquipementMarque::class, inversedBy="contratResiliations")
     * @ORM\JoinColumn(name="idequipement_marque")
     */
    private $equipement_marque;

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

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $motif_si_autre;

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

    public function getContrat(): ?Contrat
    {
        return $this->contrat;
    }

    public function setContrat(?Contrat $contrat): self
    {
        $this->contrat = $contrat;

        return $this;
    }

    public function getTypeEnvoi(): ?TypeEnvoi
    {
        return $this->type_envoi;
    }

    public function setTypeEnvoi(?TypeEnvoi $type_envoi): self
    {
        $this->type_envoi = $type_envoi;

        return $this;
    }

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

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

        return $this;
    }

    public function getContratMotifResiliation(): ?ContratMotifResiliation
    {
        return $this->contrat_motif_resiliation;
    }

    public function setContratMotifResiliation(?ContratMotifResiliation $contrat_motif_resiliation): self
    {
        $this->contrat_motif_resiliation = $contrat_motif_resiliation;

        return $this;
    }

    public function getEquipementMarque(): ?EquipementMarque
    {
        return $this->equipement_marque;
    }

    public function setEquipementMarque(?EquipementMarque $equipement_marque): self
    {
        $this->equipement_marque = $equipement_marque;

        return $this;
    }

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

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

        return $this;
    }

    public function getMotifSiAutre(): ?string
    {
        return $this->motif_si_autre;
    }

    public function setMotifSiAutre(string $motif_si_autre): self
    {
        $this->motif_si_autre = $motif_si_autre;

        return $this;
    }
}
