<?php

namespace App\Entity;

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

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

    /**
     * @ORM\ManyToOne(targetEntity=Adresse::class, inversedBy="adresseComplements", cascade={"persist"})
     * @ORM\JoinColumn(nullable=false, name="idadresse")
     */
    private $adresse;

    /**
     * @ORM\ManyToOne(targetEntity=TypeComplementAdresse::class, inversedBy="adresseComplements")
     * @ORM\JoinColumn(nullable=false, name="idtype_complement_adresse")
     * @Groups({"api"})
     */
    private $type_complement_adresse;

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

    /**
     * @ORM\Column(type="text", nullable=true)
     * @Groups({"api"})
     */
    private $commentaire_valeur;

    /**
     * @Groups({"api"})
     */
    private $statut;

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

    public function getAdresse(): ?Adresse
    {
        return $this->adresse;
    }

    public function setAdresse(?Adresse $adresse): self
    {
        $this->adresse = $adresse;

        return $this;
    }

    public function getTypeComplementAdresse(): ?TypeComplementAdresse
    {
        return $this->type_complement_adresse;
    }

    public function setTypeComplementAdresse(?TypeComplementAdresse $type_complement_adresse): self
    {
        $this->type_complement_adresse = $type_complement_adresse;

        return $this;
    }

    public function getValeur(): ?string
    {
        return $this->valeur;
    }

    public function setValeur(?string $valeur): self
    {
        $this->valeur = $valeur;

        return $this;
    }

    public function getCommentaireValeur(): ?string
    {
        return $this->commentaire_valeur;
    }

    public function setCommentaireValeur(?string $commentaire_valeur): self
    {
        $this->commentaire_valeur = $commentaire_valeur;

        return $this;
    }

    public function getStatut()
    {
        return $this->statut;
    }

    public function setStatut($statut): self
    {
        $this->statut = $statut;

        return $this;
    }
}
