src/Entity/User.php line 116

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Serializer\Annotation\Groups;
  5. /**
  6. * User
  7. *
  8. * @ORM\Table(name="user")
  9. * @ORM\Entity
  10. */
  11. class User
  12. {
  13. /**
  14. * @var int
  15. *
  16. * @ORM\Column(name="id", type="integer", nullable=false)
  17. * @ORM\Id
  18. * @ORM\GeneratedValue(strategy="IDENTITY")
  19. */
  20. private $id;
  21. /**
  22. * @var string|null
  23. *
  24. * @ORM\Column(name="last_name", type="string", length=255, nullable=true, options={"default"="NULL"})
  25. * @Groups({"agenda-api"})
  26. */
  27. private $lastName;
  28. /**
  29. * @var string|null
  30. *
  31. * @ORM\Column(name="first_name", type="string", length=255, nullable=true, options={"default"="NULL"})
  32. * @Groups({"agenda-api"})
  33. */
  34. private $firstName;
  35. /**
  36. * @var string|null
  37. *
  38. * @ORM\Column(name="address", type="string", length=255, nullable=true, options={"default"="NULL"})
  39. */
  40. private $address;
  41. /**
  42. * @var string|null
  43. *
  44. * @ORM\Column(name="address2", type="string", length=255, nullable=true, options={"default"="NULL"})
  45. */
  46. private $address2;
  47. /**
  48. * @var string|null
  49. *
  50. * @ORM\Column(name="zip_code", type="string", length=10, nullable=true, options={"default"="NULL"})
  51. */
  52. private $zipCode;
  53. /**
  54. * @var string|null
  55. *
  56. * @ORM\Column(name="city", type="string", length=100, nullable=true, options={"default"="NULL"})
  57. */
  58. private $city;
  59. /**
  60. * @var string|null
  61. *
  62. * @ORM\Column(name="country", type="string", length=100, nullable=true, options={"default"="NULL"})
  63. */
  64. private $country;
  65. /**
  66. * @var string|null
  67. *
  68. * @ORM\Column(name="phone", type="string", length=30, nullable=true, options={"default"="NULL"})
  69. * @Groups({"agenda-api"})
  70. */
  71. private $phone;
  72. /**
  73. * @var \Doctrine\Common\Collections\Collection
  74. *
  75. * @ORM\ManyToMany(targetEntity="CustomerProfile", inversedBy="user")
  76. * @ORM\JoinTable(name="user_has_customer_profile",
  77. * joinColumns={
  78. * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
  79. * },
  80. * inverseJoinColumns={
  81. * @ORM\JoinColumn(name="customer_profile_id", referencedColumnName="id")
  82. * }
  83. * )
  84. */
  85. private $customerProfile = array();
  86. /**
  87. * @var Account|null
  88. *
  89. * @ORM\OneToOne(targetEntity="Account", mappedBy="user")
  90. */
  91. private $account;
  92. /**
  93. * @var bool|null
  94. *
  95. * @ORM\Column(name="concours_ete_2024", type="boolean", nullable=true)
  96. */
  97. private $concoursEte2024 = false;
  98. /**
  99. * Constructor
  100. */
  101. public function __construct()
  102. {
  103. $this->customerProfile = new \Doctrine\Common\Collections\ArrayCollection();
  104. $this->partner = new \Doctrine\Common\Collections\ArrayCollection();
  105. }
  106. /**
  107. * @return int
  108. */
  109. public function getId(): int
  110. {
  111. return $this->id;
  112. }
  113. /**
  114. * @param int $id
  115. */
  116. public function setId(int $id): void
  117. {
  118. $this->id = $id;
  119. }
  120. /**
  121. * @return string|null
  122. */
  123. public function getLastName(): ?string
  124. {
  125. return $this->lastName;
  126. }
  127. /**
  128. * @param string|null $lastName
  129. */
  130. public function setLastName(?string $lastName): void
  131. {
  132. $this->lastName = $lastName;
  133. }
  134. /**
  135. * @return string|null
  136. */
  137. public function getFirstName(): ?string
  138. {
  139. return $this->firstName;
  140. }
  141. /**
  142. * @param string|null $firstName
  143. */
  144. public function setFirstName(?string $firstName): void
  145. {
  146. $this->firstName = $firstName;
  147. }
  148. /**
  149. * @return string|null
  150. */
  151. public function getAddress(): ?string
  152. {
  153. return $this->address;
  154. }
  155. /**
  156. * @param string|null $address
  157. */
  158. public function setAddress(?string $address): void
  159. {
  160. $this->address = $address;
  161. }
  162. /**
  163. * @return string|null
  164. */
  165. public function getAddress2(): ?string
  166. {
  167. return $this->address2;
  168. }
  169. /**
  170. * @param string|null $address2
  171. */
  172. public function setAddress2(?string $address2): void
  173. {
  174. $this->address2 = $address2;
  175. }
  176. /**
  177. * @return string|null
  178. */
  179. public function getZipCode(): ?string
  180. {
  181. return $this->zipCode;
  182. }
  183. /**
  184. * @param string|null $zipCode
  185. */
  186. public function setZipCode(?string $zipCode): void
  187. {
  188. $this->zipCode = $zipCode;
  189. }
  190. /**
  191. * @return string|null
  192. */
  193. public function getCity(): ?string
  194. {
  195. return $this->city;
  196. }
  197. /**
  198. * @param string|null $city
  199. */
  200. public function setCity(?string $city): void
  201. {
  202. $this->city = $city;
  203. }
  204. /**
  205. * @return string|null
  206. */
  207. public function getCountry(): ?string
  208. {
  209. return $this->country;
  210. }
  211. /**
  212. * @param string|null $country
  213. */
  214. public function setCountry(?string $country): void
  215. {
  216. $this->country = $country;
  217. }
  218. /**
  219. * @return string|null
  220. */
  221. public function getPhone(): ?string
  222. {
  223. return $this->phone;
  224. }
  225. /**
  226. * @param string|null $phone
  227. */
  228. public function setPhone(?string $phone): void
  229. {
  230. $this->phone = $phone;
  231. }
  232. /**
  233. * @return \Doctrine\Common\Collections\Collection
  234. */
  235. public function getCustomerProfile()
  236. {
  237. return $this->customerProfile;
  238. }
  239. /**
  240. * @param \Doctrine\Common\Collections\Collection $customerProfile
  241. */
  242. public function setCustomerProfile($customerProfile): void
  243. {
  244. $this->customerProfile = $customerProfile;
  245. }
  246. /**
  247. * @return Account|null
  248. */
  249. public function getAccount(): ?Account
  250. {
  251. return $this->account;
  252. }
  253. /**
  254. * @param Account|null $account
  255. */
  256. public function setAccount(?Account $account): void
  257. {
  258. $this->account = $account;
  259. }
  260. public function getConcoursEte2024(): ?bool
  261. {
  262. return $this->concoursEte2024;
  263. }
  264. public function setConcoursEte2024(?bool $concoursEte2024): void
  265. {
  266. $this->concoursEte2024 = $concoursEte2024;
  267. }
  268. public function isFirstCoaching($em): bool
  269. {
  270. $count = $em->getRepository(Reservation::class)->countCoachings($this);
  271. if ($count && $count > 0) {
  272. return false;
  273. }
  274. return true;
  275. }
  276. public function isFirstReservation(Partner $partner, $em): bool
  277. {
  278. $count = $em->getRepository(Reservation::class)->countReservation($partner, $this, null);
  279. if ($count && $count > 0) {
  280. return false;
  281. }
  282. return true;
  283. }
  284. }