<?php

namespace App\Entity;

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

/**
 * @ORM\Entity(repositoryClass=EquipementMesureRepository::class)
 * @ORM\Table(schema="sav")
 */
class EquipementMesure
{
    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity=Equipement::class, inversedBy="equipementMesures")
     * @ORM\JoinColumn(nullable=false, name="idequipement")
     */
    private $equipement;

    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity=Intervention::class, inversedBy="equipementMesures")
     * @ORM\JoinColumn(nullable=false, name="idintervention")
     */
    private $intervention;

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

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

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

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

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

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

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

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

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

    public static function create(EquipementMesure $mesures, Equipement $equipement, Intervention $intervention) {
        $equipementMesure = new EquipementMesure();
        $dateNow = new \DateTime();
        $dateNow->setTimezone(new \DateTimeZone('Europe/Paris'));
        $equipementMesure
            ->setEquipement($equipement)
            ->setIntervention($intervention)
            ->setDate($dateNow)
            ->setTempEcs($mesures->getTempEcs())
            ->setTempEfs($mesures->getTempEfs())
            ->setDeltaTemp($mesures->getDeltaTemp())
            ->setDebitEcs($mesures->getDebitEcs())
            ->setPressionGazStatique($mesures->getPressionGazStatique())
            ->setPressionGazDynamique($mesures->getPressionGazDynamique())
            ->setPressionInjection($mesures->getPressionInjection())
            ->setDebitGaz($mesures->getDebitGaz())
        ;
        return $equipementMesure;
    }

    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 getIntervention(): ?Intervention
    {
        return $this->intervention;
    }

    public function setIntervention(?Intervention $intervention): self
    {
        $this->intervention = $intervention;

        return $this;
    }

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

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

        return $this;
    }

    public function getTempEcs(): ?int
    {
        return $this->temp_ecs;
    }

    public function setTempEcs(?int $temp_ecs): self
    {
        $this->temp_ecs = $temp_ecs;

        return $this;
    }

    public function getTempEfs(): ?int
    {
        return $this->temp_efs;
    }

    public function setTempEfs(?int $temp_efs): self
    {
        $this->temp_efs = $temp_efs;

        return $this;
    }

    public function getDeltaTemp(): ?int
    {
        return $this->delta_temp;
    }

    public function setDeltaTemp(?int $delta_temp): self
    {
        $this->delta_temp = $delta_temp;

        return $this;
    }

    public function getDebitEcs(): ?int
    {
        return $this->debit_ecs;
    }

    public function setDebitEcs(?int $debit_ecs): self
    {
        $this->debit_ecs = $debit_ecs;

        return $this;
    }

    public function getPressionGazStatique(): ?int
    {
        return $this->pression_gaz_statique;
    }

    public function setPressionGazStatique(?int $pression_gaz_statique): self
    {
        $this->pression_gaz_statique = $pression_gaz_statique;

        return $this;
    }

    public function getPressionGazDynamique(): ?int
    {
        return $this->pression_gaz_dynamique;
    }

    public function setPressionGazDynamique(?int $pression_gaz_dynamique): self
    {
        $this->pression_gaz_dynamique = $pression_gaz_dynamique;

        return $this;
    }

    public function getPressionInjection(): ?int
    {
        return $this->pression_injection;
    }

    public function setPressionInjection(?int $pression_injection): self
    {
        $this->pression_injection = $pression_injection;

        return $this;
    }

    public function getDebitGaz(): ?int
    {
        return $this->debit_gaz;
    }

    public function setDebitGaz(?int $debit_gaz): self
    {
        $this->debit_gaz = $debit_gaz;

        return $this;
    }
}
