X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/9aad88c45d93dadacd35176364b56df4734c017b..98d9c3dc2b46ac796418794aae53b20925d45a8b:/Entity/User.php diff --git a/Entity/User.php b/Entity/User.php index 8a41601..178bcec 100644 --- a/Entity/User.php +++ b/Entity/User.php @@ -1,83 +1,100 @@ + * (c) Raphaël Gertz * - * for the full copyright and license information, please view the license + * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Rapsys\AirBundle\Entity; +use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\ArrayCollection; -use Rapsys\AirBundle\Entity\Application; -use Rapsys\AirBundle\Entity\Group; -use Rapsys\AirBundle\Entity\Link; -use Rapsys\AirBundle\Entity\Snippet; +use Rapsys\UserBundle\Entity\Civility; use Rapsys\UserBundle\Entity\User as BaseUser; +/** + * {@inheritdoc} + */ class User extends BaseUser { /** - * @var string + * City + */ + private ?string $city = null; + + /** + * Country + */ + private ?Country $country = null; + + /** + * Phone */ - protected $donate; + private ?string $phone = null; /** - * @var string + * Pseudonym */ - protected $link; + private ?string $pseudonym = null; /** - * @var string + * Zipcode */ - protected $phone; + private ?string $zipcode = null; /** - * @var string + * Applications collection */ - protected $profile; + private Collection $applications; /** - * @var ArrayCollection + * Dances collection */ - private $applications; + private Collection $dances; /** - * @var ArrayCollection + * Locations collection */ - private $dances; + private Collection $locations; /** - * @var ArrayCollection + * Snippets collection */ - private $locations; + private Collection $snippets; /** - * @var ArrayCollection + * Subscribers collection */ - private $snippets; + private Collection $subscribers; /** - * @var ArrayCollection + * Subscriptions collection */ - private $subscribers; + private Collection $subscriptions; /** - * @var ArrayCollection + * Google tokens collection */ - private $subscriptions; + private Collection $googleTokens; /** * Constructor * * @param string $mail The user mail - */ - public function __construct(string $mail) { + * @param string $password The user password + * @param ?Civility $civility The user civility + * @param ?string $forename The user forename + * @param ?string $surname The user surname + * @param bool $active The user active + * @param bool $enable The user enable + */ + 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) { //Call parent constructor - parent::__construct($mail); + parent::__construct($this->mail, $this->password, $this->civility, $this->forename, $this->surname, $this->active, $this->enable); //Set collections $this->applications = new ArrayCollection(); @@ -86,50 +103,51 @@ class User extends BaseUser { $this->snippets = new ArrayCollection(); $this->subscribers = new ArrayCollection(); $this->subscriptions = new ArrayCollection(); + $this->googleTokens = new ArrayCollection(); } /** - * Set donate + * Set city * - * @param string $donate + * @param string $city * * @return User */ - public function setDonate(?string $donate): User { - $this->donate = $donate; + public function setCity(?string $city): User { + $this->city = $city; return $this; } /** - * Get donate + * Get city * * @return string */ - public function getDonate(): ?string { - return $this->donate; + public function getCity(): ?string { + return $this->city; } /** - * Set link + * Set country * - * @param string $link + * @param Country $country * * @return User */ - public function setLink(?string $link): User { - $this->link = $link; + public function setCountry(?Country $country): User { + $this->country = $country; return $this; } /** - * Get link + * Get country * - * @return string + * @return Country */ - public function getLink(): ?string { - return $this->link; + public function getCountry(): ?Country { + return $this->country; } /** @@ -155,87 +173,78 @@ class User extends BaseUser { } /** - * Set profile + * Set pseudonym * - * @param string $profile + * @param string $pseudonym * * @return User */ - public function setProfile(string $profile): User { - $this->profile = $profile; + public function setPseudonym(?string $pseudonym): User { + $this->pseudonym = $pseudonym; return $this; } /** - * Get profile + * Get pseudonym * * @return string */ - public function getProfile(): ?string { - return $this->profile; + public function getPseudonym(): ?string { + return $this->pseudonym; } /** - * Add application + * Set zipcode * - * @param Application $application + * @param string $zipcode * * @return User */ - public function addApplication(Application $application): User { - $this->applications[] = $application; + public function setZipcode(?string $zipcode): User { + $this->zipcode = $zipcode; return $this; } /** - * Remove application - * - * @param Application $application - */ - public function removeApplication(Application $application): bool { - return $this->applications->removeElement($application); - } - - /** - * Get applications + * Get zipcode * - * @return ArrayCollection + * @return string */ - public function getApplications(): ArrayCollection { - return $this->applications; + public function getZipcode(): ?string { + return $this->zipcode; } /** - * Add snippet + * Add application * - * @param Snippet $snippet + * @param Application $application * * @return User */ - public function addSnippet(Snippet $snippet): User { - $this->snippets[] = $snippet; + public function addApplication(Application $application): User { + $this->applications[] = $application; return $this; } /** - * Remove snippet + * Remove application * - * @param Snippet $snippet + * @param Application $application */ - public function removeSnippet(Snippet $snippet): bool { - return $this->snippets->removeElement($snippet); + public function removeApplication(Application $application): bool { + return $this->applications->removeElement($application); } /** - * Get snippets + * Get applications * - * @return ArrayCollection + * @return \Doctrine\Common\Collections\Collection */ - public function getSnippets(): ArrayCollection { - return $this->snippets; + public function getApplications(): Collection { + return $this->applications; } /** @@ -265,9 +274,9 @@ class User extends BaseUser { /** * Get dances * - * @return ArrayCollection + * @return \Doctrine\Common\Collections\Collection */ - public function getDances(): ArrayCollection { + public function getDances(): Collection { return $this->dances; } @@ -296,12 +305,43 @@ class User extends BaseUser { /** * Get locations * - * @return ArrayCollection + * @return \Doctrine\Common\Collections\Collection */ - public function getLocations(): ArrayCollection { + public function getLocations(): Collection { return $this->locations; } + /** + * Add snippet + * + * @param Snippet $snippet + * + * @return User + */ + public function addSnippet(Snippet $snippet): User { + $this->snippets[] = $snippet; + + return $this; + } + + /** + * Remove snippet + * + * @param Snippet $snippet + */ + public function removeSnippet(Snippet $snippet): bool { + return $this->snippets->removeElement($snippet); + } + + /** + * Get snippets + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getSnippets(): Collection { + return $this->snippets; + } + /** * Add subscriber * @@ -310,6 +350,9 @@ class User extends BaseUser { * @return User */ public function addSubscriber(User $subscriber): User { + //Add from owning side + $subscriber->addSubscription($this); + $this->subscribers[] = $subscriber; return $this; @@ -321,15 +364,22 @@ class User extends BaseUser { * @param User $subscriber */ public function removeSubscriber(User $subscriber): bool { + if (!$this->subscriptions->contains($subscriber)) { + return true; + } + + //Remove from owning side + $subscriber->removeSubscription($this); + return $this->subscribers->removeElement($subscriber); } /** * Get subscribers * - * @return ArrayCollection + * @return \Doctrine\Common\Collections\Collection */ - public function getSubscribers(): ArrayCollection { + public function getSubscribers(): Collection { return $this->subscribers; } @@ -358,9 +408,40 @@ class User extends BaseUser { /** * Get subscriptions * - * @return ArrayCollection + * @return \Doctrine\Common\Collections\Collection */ - public function getSubscriptions(): ArrayCollection { + public function getSubscriptions(): Collection { return $this->subscriptions; } + + /** + * Add google token + * + * @param GoogleToken $googleToken + * + * @return User + */ + public function addGoogleToken(GoogleToken $googleToken): User { + $this->googleTokens[] = $googleToken; + + return $this; + } + + /** + * Remove google token + * + * @param GoogleToken $googleToken + */ + public function removeGoogleToken(GoogleToken $googleToken): bool { + return $this->googleTokens->removeElement($googleToken); + } + + /** + * Get googleTokens + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getGoogleTokens(): Collection { + return $this->googleTokens; + } }