1 <?php
declare(strict_types
=1);
4 * This file is part of the Rapsys AirBundle package.
6 * (c) Raphaël Gertz <symfony@rapsys.eu>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Rapsys\AirBundle\Entity
;
14 use Doctrine\Common\Collections\Collection
;
15 use Doctrine\Common\Collections\ArrayCollection
;
17 use Rapsys\UserBundle\Entity\Civility
;
18 use Rapsys\UserBundle\Entity\User
as BaseUser
;
20 class User
extends BaseUser
{
24 private ?string $city;
29 private ?string $phone;
34 private ?Country
$country;
39 private ?string $pseudonym;
44 private ?string $zipcode;
47 * Applications collection
49 private Collection
$applications;
54 private Collection
$dances;
57 * Locations collection
59 private Collection
$locations;
64 private Collection
$snippets;
67 * Subscribers collection
69 private Collection
$subscribers;
72 * Subscriptions collection
74 private Collection
$subscriptions;
77 * Google tokens collection
79 private Collection
$googleTokens;
84 * @param string $mail The user mail
85 * @param string $password The user password
86 * @param ?Civility $civility The user civility
87 * @param ?string $forename The user forename
88 * @param ?string $surname The user surname
89 * @param bool $active The user active
90 * @param bool $enable The user enable
92 public function __construct(protected string $mail, protected string $password, protected ?Civility
$civility = null, protected ?string $forename = null, protected ?string $surname = null, protected bool $active = false, protected bool $enable = true) {
93 //Call parent constructor
94 parent
::__construct($this->mail
, $this->password
, $this->civility
, $this->forename
, $this->surname
, $this->active
, $this->enable
);
98 $this->country
= null;
100 $this->pseudonym
= null;
101 $this->zipcode
= null;
104 $this->applications
= new ArrayCollection();
105 $this->dances
= new ArrayCollection();
106 $this->locations
= new ArrayCollection();
107 $this->snippets
= new ArrayCollection();
108 $this->subscribers
= new ArrayCollection();
109 $this->subscriptions
= new ArrayCollection();
110 $this->googleTokens
= new ArrayCollection();
116 * @param string $city
120 public function setCity(?string $city): User
{
131 public function getCity(): ?string {
138 * @param Country $country
142 public function setCountry(?Country
$country): User
{
143 $this->country
= $country;
153 public function getCountry(): ?Country
{
154 return $this->country
;
160 * @param string $phone
164 public function setPhone(?string $phone): User
{
165 $this->phone
= $phone;
175 public function getPhone(): ?string {
182 * @param string $pseudonym
186 public function setPseudonym(?string $pseudonym): User
{
187 $this->pseudonym
= $pseudonym;
197 public function getPseudonym(): ?string {
198 return $this->pseudonym
;
204 * @param string $zipcode
208 public function setZipcode(?string $zipcode): User
{
209 $this->zipcode
= $zipcode;
219 public function getZipcode(): ?string {
220 return $this->zipcode
;
226 * @param Application $application
230 public function addApplication(Application
$application): User
{
231 $this->applications
[] = $application;
239 * @param Application $application
241 public function removeApplication(Application
$application): bool {
242 return $this->applications
->removeElement($application);
248 * @return \Doctrine\Common\Collections\Collection
250 public function getApplications(): Collection
{
251 return $this->applications
;
257 * @param Dance $dance
261 public function addDance(Dance
$dance): User
{
262 $this->dances
[] = $dance;
270 * @param Dance $dance
274 public function removeDance(Dance
$dance): bool {
275 return $this->dances
->removeElement($dance);
281 * @return \Doctrine\Common\Collections\Collection
283 public function getDances(): Collection
{
284 return $this->dances
;
290 * @param Location $location
294 public function addLocation(Location
$location): User
{
295 $this->locations
[] = $location;
303 * @param Location $location
305 public function removeLocation(Location
$location): bool {
306 return $this->locations
->removeElement($location);
312 * @return \Doctrine\Common\Collections\Collection
314 public function getLocations(): Collection
{
315 return $this->locations
;
321 * @param Snippet $snippet
325 public function addSnippet(Snippet
$snippet): User
{
326 $this->snippets
[] = $snippet;
334 * @param Snippet $snippet
336 public function removeSnippet(Snippet
$snippet): bool {
337 return $this->snippets
->removeElement($snippet);
343 * @return \Doctrine\Common\Collections\Collection
345 public function getSnippets(): Collection
{
346 return $this->snippets
;
352 * @param User $subscriber
356 public function addSubscriber(User
$subscriber): User
{
357 //Add from owning side
358 $subscriber->addSubscription($this);
360 $this->subscribers
[] = $subscriber;
368 * @param User $subscriber
370 public function removeSubscriber(User
$subscriber): bool {
371 if (!$this->subscriptions
->contains($subscriber)) {
375 //Remove from owning side
376 $subscriber->removeSubscription($this);
378 return $this->subscribers
->removeElement($subscriber);
384 * @return \Doctrine\Common\Collections\Collection
386 public function getSubscribers(): Collection
{
387 return $this->subscribers
;
393 * @param User $subscription
397 public function addSubscription(User
$subscription): User
{
398 $this->subscriptions
[] = $subscription;
404 * Remove subscription
406 * @param User $subscription
408 public function removeSubscription(User
$subscription): bool {
409 return $this->subscriptions
->removeElement($subscription);
415 * @return \Doctrine\Common\Collections\Collection
417 public function getSubscriptions(): Collection
{
418 return $this->subscriptions
;
424 * @param GoogleToken $googleToken
428 public function addGoogleToken(GoogleToken
$googleToken): User
{
429 $this->googleTokens
[] = $googleToken;
435 * Remove google token
437 * @param GoogleToken $googleToken
439 public function removeGoogleToken(GoogleToken
$googleToken): bool {
440 return $this->googleTokens
->removeElement($googleToken);
446 * @return \Doctrine\Common\Collections\Collection
448 public function getGoogleTokens(): Collection
{
449 return $this->googleTokens
;