<?php

namespace App\Entity;

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

/**
 * @ORM\Entity(repositoryClass=EquipementInstallationRepository::class)
 * @ORM\Table(schema="sav")
 */
class EquipementInstallation
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     * @Groups({"api"})
     */
    private $id;

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

    /**
     * @ORM\ManyToOne(targetEntity=TypeInstallation::class, inversedBy="equipementInstallations")
     * @ORM\JoinColumn(name="idtype_installation")
     * @Groups({"api"})
     */
    private $type_installation;

    /**
     * @ORM\ManyToOne(targetEntity=ProtectionSanitaire::class, inversedBy="equipementInstallations")
     * @ORM\JoinColumn(name="idprotection_sanitaire")
     * @Groups({"api"})
     */
    private $protection_sanitaire;

    /**
     * @ORM\ManyToOne(targetEntity=RobinetRemplissage::class, inversedBy="equipementInstallations")
     * @ORM\JoinColumn(name="idrobinet_remplissage")
     * @Groups({"api"})
     */
    private $robinet_remplissage;

    /**
     * @ORM\Column(type="string", length=50, nullable=true)
     * @Groups({"api"})
     */
    private $robinet_si_autre;

    /**
     * @ORM\Column(type="string", length=150)
     * @Groups({"api"})
     */
    private $localisation;

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

    public function setId(?int $id): self
    {
        $this->id = $id;

        return $this;
    }

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

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

        return $this;
    }

    public function getTypeInstallation(): ?TypeInstallation
    {
        return $this->type_installation;
    }

    public function setTypeInstallation(?TypeInstallation $type_installation): self
    {
        $this->type_installation = $type_installation;

        return $this;
    }

    public function getProtectionSanitaire(): ?ProtectionSanitaire
    {
        return $this->protection_sanitaire;
    }

    public function setProtectionSanitaire(?ProtectionSanitaire $protection_sanitaire): self
    {
        $this->protection_sanitaire = $protection_sanitaire;

        return $this;
    }

    public function getRobinetRemplissage(): ?RobinetRemplissage
    {
        return $this->robinet_remplissage;
    }

    public function setRobinetRemplissage(?RobinetRemplissage $robinet_remplissage): self
    {
        $this->robinet_remplissage = $robinet_remplissage;

        return $this;
    }

    public function getRobinetSiAutre(): ?string
    {
        return $this->robinet_si_autre;
    }

    public function setRobinetSiAutre(?string $robinet_si_autre): self
    {
        $this->robinet_si_autre = $robinet_si_autre;

        return $this;
    }

    public function getLocalisation(): ?string
    {
        return $this->localisation;
    }

    public function setLocalisation(string $localisation): self
    {
        $this->localisation = $localisation;

        return $this;
    }
}
