<?php

namespace App\Entity;

use App\Repository\UtilisateurFiltreRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Ignore;
use Symfony\Component\Serializer\Annotation\SerializedName;

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

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     * @Ignore()
     */
    private $page;

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

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

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

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

    /**
     * @ORM\ManyToOne(targetEntity=UtilisateurRole::class, inversedBy="utilisateurFiltres")
     * @ORM\JoinColumn(nullable=false, name="idutilisateur_role")
     */
    private $utilisateur_role;

    /**
     * @SerializedName("utilisateur_role_id")
     */
    public function getUtilisateurRoleId() {
        return ($this->getUtilisateurRole()) ? $this->getUtilisateurRole()->getId(): '';
    }

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

    /**
     * @ORM\ManyToOne(targetEntity=Site::class, inversedBy="utilisateurFiltres")
     * @ORM\JoinColumn(nullable=true, name="idsite")
     */
    private $site;

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

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

    public function getPage(): ?string
    {
        return $this->page;
    }

    public function setPage(?string $page): self
    {
        $this->page = $page;

        return $this;
    }

    public function getTitre(): ?string
    {
        return $this->titre;
    }

    public function setTitre(?string $titre): self
    {
        $this->titre = $titre;

        return $this;
    }

    public function getFiltre(): ?string
    {
        return $this->filtre;
    }

    public function setFiltre(?string $filtre): self
    {
        $this->filtre = $filtre;

        return $this;
    }

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

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

        return $this;
    }

    /**
     * @return mixed
     */
    public function getColonnes()
    {
        return $this->colonnes;
    }

    /**
     * @param mixed $colonnes
     */
    public function setColonnes($colonnes): self
    {
        $this->colonnes = $colonnes;

        return $this;
    }

    public function getUtilisateurRole(): ?UtilisateurRole
    {
        return $this->utilisateur_role;
    }

    public function setUtilisateurRole(?UtilisateurRole $utilisateur_role): self
    {
        $this->utilisateur_role = $utilisateur_role;

        return $this;
    }

    public function getDefaut(): ?bool
    {
        return $this->defaut;
    }

    public function setDefaut(?bool $defaut): self
    {
        $this->defaut = $defaut;

        return $this;
    }

    public function getSite(): ?Site
    {
        return $this->site;
    }

    public function setSite(?Site $site): self
    {
        $this->site = $site;

        return $this;
    }

    public function getDefautUtilisateur()
    {
        return $this->defaut_utilisateur;
    }

    public function setDefautUtilisateur(?bool $defaut_utilisateur)
    {
        $this->defaut_utilisateur = $defaut_utilisateur;

        return $this;
    }
}
