<?php

namespace App\Entity;

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

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

    /**
     * @ORM\ManyToOne(targetEntity=Planning::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idplanning")
     */
    private $planning;

    /**
     * @ORM\ManyToOne(targetEntity=PlanningAction::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idplanning_action")
     */
    private $planning_action;

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

    /**
     * @ORM\ManyToOne(targetEntity=Utilisateur::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idutilisateur_agent")
     */
    private $utilisateur_agent;

    /**
     * @ORM\ManyToOne(targetEntity=Utilisateur::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idutilisateur_planning")
     */
    private $utilisateur_planning;

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

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

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

    /**
     * @ORM\ManyToOne(targetEntity=MomentPassage::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idmoment_passage")
     */
    private $moment_passage;

    /**
     * @ORM\ManyToOne(targetEntity=HorairePassage::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idhoraire_passage")
     */
    private $horaire_passage;

    /**
     * @ORM\ManyToOne(targetEntity=PlanningInitiativeType::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idplanning_initiative_type")
     */
    private $planning_initiative_type;

    /**
     * @ORM\ManyToOne(targetEntity=PlanningInitiativeDetail::class, inversedBy="planningHistoriqueModifications")
     * @ORM\JoinColumn(nullable=false, name="idplanning_initiative_detail")
     */
    private $planning_initiative_detail;

    /**
     * @ORM\Column(type="datetime")
     */
    private $date_action;

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

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

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

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

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

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

        return $this;
    }

    public function getPlanningAction(): ?PlanningAction
    {
        return $this->planning_action;
    }

    public function setPlanningAction(?PlanningAction $planning_action): self
    {
        $this->planning_action = $planning_action;

        return $this;
    }

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

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

        return $this;
    }

    public function getUtilisateurAgent(): ?Utilisateur
    {
        return $this->utilisateur_agent;
    }

    public function setUtilisateurAgent(?Utilisateur $utilisateur_agent): self
    {
        $this->utilisateur_agent = $utilisateur_agent;

        return $this;
    }

    public function getUtilisateurPlanning(): ?Utilisateur
    {
        return $this->utilisateur_planning;
    }

    public function setUtilisateurPlanning(?Utilisateur $utilisateur_planning): self
    {
        $this->utilisateur_planning = $utilisateur_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 getDate(): ?\DateTimeInterface
    {
        return $this->date;
    }

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

        return $this;
    }

    public function getMemo(): ?string
    {
        return $this->memo;
    }

    public function setMemo(string $memo): self
    {
        $this->memo = $memo;

        return $this;
    }

    public function getMomentPassage(): ?MomentPassage
    {
        return $this->moment_passage;
    }

    public function setMomentPassage(?MomentPassage $moment_passage): self
    {
        $this->moment_passage = $moment_passage;

        return $this;
    }

    public function getHorairePassage(): ?HorairePassage
    {
        return $this->horaire_passage;
    }

    public function setHorairePassage(?HorairePassage $horaire_passage): self
    {
        $this->horaire_passage = $horaire_passage;

        return $this;
    }

    public function getPlanningInitiativeType(): ?PlanningInitiativeType
    {
        return $this->planning_initiative_type;
    }

    public function setPlanningInitiativeType(?PlanningInitiativeType $planning_initiative_type): self
    {
        $this->planning_initiative_type = $planning_initiative_type;

        return $this;
    }

    public function getPlanningInitiativeDetail(): ?PlanningInitiativeDetail
    {
        return $this->planning_initiative_detail;
    }

    public function setPlanningInitiativeDetail(?PlanningInitiativeDetail $planning_initiative_detail): self
    {
        $this->planning_initiative_detail = $planning_initiative_detail;

        return $this;
    }

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

    public function setDateAction(\DateTimeInterface $date_action): self
    {
        $this->date_action = $date_action;

        return $this;
    }

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

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

        return $this;
    }

    public function getAvisPassage(): ?bool
    {
        return $this->avis_passage;
    }

    public function setAvisPassage(bool $avis_passage): self
    {
        $this->avis_passage = $avis_passage;

        return $this;
    }

    public function getAvisPassageMail(): ?bool
    {
        return $this->avis_passage_mail;
    }

    public function setAvisPassageMail(bool $avis_passage_mail): self
    {
        $this->avis_passage_mail = $avis_passage_mail;

        return $this;
    }
}
