<?php
namespace App\Entity;
use App\Repository\ProjectRepository;
use App\Traits\DateTrait;
use DateTimeInterface;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=ProjectRepository::class)
*/
class Project
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
// /**
// * @ORM\Column(type="string", length=255, nullable=true)
// */
// private $customer;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $url;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $urlPreprod;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="projects")
*/
private $referent;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $dateStart;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $dateEnd;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $enabled;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $urlLocal;
/**
* @ORM\Column(type="string", length=32, nullable=true)
*/
private $module;
/**
* @ORM\Column(type="boolean", nullable=true, options={"default": false})
*/
private $viewOnly = FALSE;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $catalogueLastUpdate;
use DateTrait;
/******************** START VIRTUAL *************************/
/**
* Cet argument est virtuel et ne sert qu'à développetesventes
*/
private $current;
private $env;
/******************** END VIRTUAL *************************/
public function getEnv(): ?string
{
switch ( $this->getCurrent() ) {
case $this->getUrl():
$this->env = 'prod';
break;
case $this->getUrlPreprod():
$this->env = 'preprod';
break;
case $this->getUrlLocal():
$this->env = 'local';
break;
}
return $this->env;
}
/**
* @return mixed
*/
public function getCurrent()
{
return $this->current;
}
public function setCurrent( $current ): void
{
$this->current = $current;
}
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl( ?string $url ): self
{
$this->url = $url;
return $this;
}
public function getUrlPreprod(): ?string
{
return $this->urlPreprod;
}
public function setUrlPreprod( ?string $urlPreprod ): self
{
$this->urlPreprod = $urlPreprod;
return $this;
}
public function getUrlLocal(): ?string
{
return $this->urlLocal;
}
public function setUrlLocal( ?string $urlLocal ): self
{
$this->urlLocal = $urlLocal;
return $this;
}
/**
* Alias nécessaire
*
* @return string|null
*/
public function getUrlDev(): ?string
{
return $this->urlLocal;
}
/**
* Alias nécessaire
*
* @return string|null
*/
public function getUrlProd(): ?string
{
return $this->url;
}
public function getId(): int
{
return $this->id;
}
public function getName(): string
{
return $this->name;
}
public function setName( string $name ): self
{
$this->name = $name;
return $this;
}
// public function getCustomer(): ?string
// {
// return $this->customer;
// }
//
//
// public function setCustomer(?string $customer): self
// {
// $this->customer = $customer;
//
// return $this;
// }
public function getReferent(): ?User
{
return $this->referent;
}
public function setReferent( ?User $referent ): self
{
$this->referent = $referent;
return $this;
}
public function getDateStart(): ?DateTimeInterface
{
return $this->dateStart;
}
public function setDateStart( ?DateTimeInterface $dateStart ): self
{
$this->dateStart = $dateStart;
return $this;
}
public function getDateEnd(): ?DateTimeInterface
{
return $this->dateEnd;
}
public function setDateEnd( ?DateTimeInterface $dateEnd ): self
{
$this->dateEnd = $dateEnd;
return $this;
}
public function getEnabled(): ?bool
{
return $this->enabled;
}
public function setEnabled( ?bool $enabled ): self
{
$this->enabled = $enabled;
return $this;
}
public function getModule(): ?string
{
return $this->module;
}
public function setModule( ?string $module ): self
{
$this->module = $module;
return $this;
}
public function isViewOnly(): ?bool
{
return $this->viewOnly === TRUE;
}
public function setViewOnly( bool $viewOnly ): self
{
$this->viewOnly = $viewOnly;
return $this;
}
public function getCatalogueLastUpdate(): ?DateTimeInterface
{
return $this->catalogueLastUpdate;
}
public function setCatalogueLastUpdate( ?DateTimeInterface $catalogueLastUpdate ): self
{
$this->catalogueLastUpdate = $catalogueLastUpdate;
return $this;
}
}