src/Entity/Project.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProjectRepository;
  4. use App\Traits\DateTrait;
  5. use DateTimeInterface;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8. * @ORM\Entity(repositoryClass=ProjectRepository::class)
  9. */
  10. class Project
  11. {
  12. /**
  13. * @ORM\Id
  14. * @ORM\GeneratedValue
  15. * @ORM\Column(type="integer")
  16. */
  17. private $id;
  18. /**
  19. * @ORM\Column(type="string", length=255)
  20. */
  21. private $name;
  22. // /**
  23. // * @ORM\Column(type="string", length=255, nullable=true)
  24. // */
  25. // private $customer;
  26. /**
  27. * @ORM\Column(type="string", length=255, nullable=true)
  28. */
  29. private $url;
  30. /**
  31. * @ORM\Column(type="string", length=255, nullable=true)
  32. */
  33. private $urlPreprod;
  34. /**
  35. * @ORM\ManyToOne(targetEntity=User::class, inversedBy="projects")
  36. */
  37. private $referent;
  38. /**
  39. * @ORM\Column(type="date", nullable=true)
  40. */
  41. private $dateStart;
  42. /**
  43. * @ORM\Column(type="date", nullable=true)
  44. */
  45. private $dateEnd;
  46. /**
  47. * @ORM\Column(type="boolean", nullable=true)
  48. */
  49. private $enabled;
  50. /**
  51. * @ORM\Column(type="string", length=255, nullable=true)
  52. */
  53. private $urlLocal;
  54. /**
  55. * @ORM\Column(type="string", length=32, nullable=true)
  56. */
  57. private $module;
  58. /**
  59. * @ORM\Column(type="boolean", nullable=true, options={"default": false})
  60. */
  61. private $viewOnly = FALSE;
  62. /**
  63. * @ORM\Column(type="datetime", nullable=true)
  64. */
  65. private $catalogueLastUpdate;
  66. use DateTrait;
  67. /******************** START VIRTUAL *************************/
  68. /**
  69. * Cet argument est virtuel et ne sert qu'à développetesventes
  70. */
  71. private $current;
  72. private $env;
  73. /******************** END VIRTUAL *************************/
  74. public function getEnv(): ?string
  75. {
  76. switch ( $this->getCurrent() ) {
  77. case $this->getUrl():
  78. $this->env = 'prod';
  79. break;
  80. case $this->getUrlPreprod():
  81. $this->env = 'preprod';
  82. break;
  83. case $this->getUrlLocal():
  84. $this->env = 'local';
  85. break;
  86. }
  87. return $this->env;
  88. }
  89. /**
  90. * @return mixed
  91. */
  92. public function getCurrent()
  93. {
  94. return $this->current;
  95. }
  96. public function setCurrent( $current ): void
  97. {
  98. $this->current = $current;
  99. }
  100. public function getUrl(): ?string
  101. {
  102. return $this->url;
  103. }
  104. public function setUrl( ?string $url ): self
  105. {
  106. $this->url = $url;
  107. return $this;
  108. }
  109. public function getUrlPreprod(): ?string
  110. {
  111. return $this->urlPreprod;
  112. }
  113. public function setUrlPreprod( ?string $urlPreprod ): self
  114. {
  115. $this->urlPreprod = $urlPreprod;
  116. return $this;
  117. }
  118. public function getUrlLocal(): ?string
  119. {
  120. return $this->urlLocal;
  121. }
  122. public function setUrlLocal( ?string $urlLocal ): self
  123. {
  124. $this->urlLocal = $urlLocal;
  125. return $this;
  126. }
  127. /**
  128. * Alias nécessaire
  129. *
  130. * @return string|null
  131. */
  132. public function getUrlDev(): ?string
  133. {
  134. return $this->urlLocal;
  135. }
  136. /**
  137. * Alias nécessaire
  138. *
  139. * @return string|null
  140. */
  141. public function getUrlProd(): ?string
  142. {
  143. return $this->url;
  144. }
  145. public function getId(): int
  146. {
  147. return $this->id;
  148. }
  149. public function getName(): string
  150. {
  151. return $this->name;
  152. }
  153. public function setName( string $name ): self
  154. {
  155. $this->name = $name;
  156. return $this;
  157. }
  158. // public function getCustomer(): ?string
  159. // {
  160. // return $this->customer;
  161. // }
  162. //
  163. //
  164. // public function setCustomer(?string $customer): self
  165. // {
  166. // $this->customer = $customer;
  167. //
  168. // return $this;
  169. // }
  170. public function getReferent(): ?User
  171. {
  172. return $this->referent;
  173. }
  174. public function setReferent( ?User $referent ): self
  175. {
  176. $this->referent = $referent;
  177. return $this;
  178. }
  179. public function getDateStart(): ?DateTimeInterface
  180. {
  181. return $this->dateStart;
  182. }
  183. public function setDateStart( ?DateTimeInterface $dateStart ): self
  184. {
  185. $this->dateStart = $dateStart;
  186. return $this;
  187. }
  188. public function getDateEnd(): ?DateTimeInterface
  189. {
  190. return $this->dateEnd;
  191. }
  192. public function setDateEnd( ?DateTimeInterface $dateEnd ): self
  193. {
  194. $this->dateEnd = $dateEnd;
  195. return $this;
  196. }
  197. public function getEnabled(): ?bool
  198. {
  199. return $this->enabled;
  200. }
  201. public function setEnabled( ?bool $enabled ): self
  202. {
  203. $this->enabled = $enabled;
  204. return $this;
  205. }
  206. public function getModule(): ?string
  207. {
  208. return $this->module;
  209. }
  210. public function setModule( ?string $module ): self
  211. {
  212. $this->module = $module;
  213. return $this;
  214. }
  215. public function isViewOnly(): ?bool
  216. {
  217. return $this->viewOnly === TRUE;
  218. }
  219. public function setViewOnly( bool $viewOnly ): self
  220. {
  221. $this->viewOnly = $viewOnly;
  222. return $this;
  223. }
  224. public function getCatalogueLastUpdate(): ?DateTimeInterface
  225. {
  226. return $this->catalogueLastUpdate;
  227. }
  228. public function setCatalogueLastUpdate( ?DateTimeInterface $catalogueLastUpdate ): self
  229. {
  230. $this->catalogueLastUpdate = $catalogueLastUpdate;
  231. return $this;
  232. }
  233. }