<?php

namespace App\Entity;

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

/**
 * @ORM\Entity(repositoryClass=EvenementRepository::class)
 * @ORM\Table(schema="sav")
 */
class Evenement
{
    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity=Planning::class, inversedBy="evenements")
     * @ORM\JoinColumn(nullable=false, name="idplanning")
     */
    private $planning;

    /**
     * @ORM\ManyToOne(targetEntity=TypePlanification::class, inversedBy="evenements")
     * @ORM\JoinColumn(nullable=false, name="idtype_planification")
     */
    private $type_planification;

    /**
     * @ORM\ManyToOne(targetEntity=Agence::class, inversedBy="evenements")
     * @ORM\JoinColumn(nullable=false, name="idagence")
     */
    private $agence;

    /**
     * @ORM\ManyToOne(targetEntity=EvenementLieu::class, inversedBy="evenements")
     * @ORM\JoinColumn(nullable=false, name="idevenement_lieu")
     */
    private $evenement_lieu;

    /**
     * @ORM\ManyToOne(targetEntity=EvenementObjet::class, inversedBy="evenements")
     * @ORM\JoinColumn(nullable=false, name="idevenement_objet")
     */
    private $evenement_objet;

    /**
     * @ORM\ManyToOne(targetEntity=Formation::class, inversedBy="evenements")
     * @ORM\JoinColumn(nullable=false, name="idformation")
     */
    private $formation;

    /**
     * @ORM\Column(type="boolean")
     */
    private $est_formateur;

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

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

    public function getPlanning(): ?Planning
    {
        return $this->planning;
    }

    public function setPlanning(?Planning $planning): self
    {
        $this->planning = $planning;

        return $this;
    }

    public function getTypePlanification(): ?TypePlanification
    {
        return $this->type_planification;
    }

    public function setTypePlanification(?TypePlanification $type_planification): self
    {
        $this->type_planification = $type_planification;

        return $this;
    }

    public function getAgence(): ?Agence
    {
        return $this->agence;
    }

    public function setAgence(?Agence $agence): self
    {
        $this->agence = $agence;

        return $this;
    }

    public function getEvenementLieu(): ?EvenementLieu
    {
        return $this->evenement_lieu;
    }

    public function setEvenementLieu(?EvenementLieu $evenement_lieu): self
    {
        $this->evenement_lieu = $evenement_lieu;

        return $this;
    }

    public function getEvenementObjet(): ?EvenementObjet
    {
        return $this->evenement_objet;
    }

    public function setEvenementObjet(?EvenementObjet $evenement_objet): self
    {
        $this->evenement_objet = $evenement_objet;

        return $this;
    }

    public function getFormation(): ?Formation
    {
        return $this->formation;
    }

    public function setFormation(?Formation $formation): self
    {
        $this->formation = $formation;

        return $this;
    }

    public function getEstFormateur(): ?bool
    {
        return $this->est_formateur;
    }

    public function setEstFormateur(bool $est_formateur): self
    {
        $this->est_formateur = $est_formateur;

        return $this;
    }

    public function getObjetSiAutre(): ?string
    {
        return $this->objet_si_autre;
    }

    public function setObjetSiAutre(?string $objet_si_autre): self
    {
        $this->objet_si_autre = $objet_si_autre;

        return $this;
    }

    public function getDuree(): ?int
    {
        return $this->duree;
    }

    public function setDuree(?int $duree): self
    {
        $this->duree = $duree;

        return $this;
    }
}
