X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/bd16cca32dea4c86fcec8df5292f53c4e3f1c45d..c31b21bb5ae6a3c8509ebd7b253067c04b1d87cc:/Entity/User.php diff --git a/Entity/User.php b/Entity/User.php index 3385a20..178bcec 100644 --- a/Entity/User.php +++ b/Entity/User.php @@ -1,61 +1,153 @@ - + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ -// src/Rapsys/AirBundle/Entity/User.php namespace Rapsys\AirBundle\Entity; -use Rapsys\AirBundle\Entity\Application; -use Rapsys\AirBundle\Entity\Group; -use Rapsys\AirBundle\Entity\Vote; +use Doctrine\Common\Collections\Collection; +use Doctrine\Common\Collections\ArrayCollection; + +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 $phone; + private ?string $phone = null; /** - * @var string + * Pseudonym */ - protected $donation; + private ?string $pseudonym = null; /** - * @var string + * Zipcode */ - protected $site; + private ?string $zipcode = null; /** - * @var \Doctrine\Common\Collections\Collection + * Applications collection */ - private $applications; + private Collection $applications; /** - * @var \Doctrine\Common\Collections\Collection + * Dances collection */ - private $subscribers; + private Collection $dances; /** - * @var \Doctrine\Common\Collections\Collection + * Locations collection */ - private $subscriptions; + private Collection $locations; /** - * @var \Doctrine\Common\Collections\Collection + * Snippets collection */ - private $snippets; + private Collection $snippets; + + /** + * Subscribers collection + */ + private Collection $subscribers; + + /** + * Subscriptions collection + */ + private Collection $subscriptions; + + /** + * Google tokens collection + */ + private Collection $googleTokens; /** * Constructor + * + * @param string $mail The user 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() { + 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(); + parent::__construct($this->mail, $this->password, $this->civility, $this->forename, $this->surname, $this->active, $this->enable); //Set collections - $this->applications = new \Doctrine\Common\Collections\ArrayCollection(); - $this->subscribers = new \Doctrine\Common\Collections\ArrayCollection(); - $this->subscriptions = new \Doctrine\Common\Collections\ArrayCollection(); - $this->snippets = new \Doctrine\Common\Collections\ArrayCollection(); + $this->applications = new ArrayCollection(); + $this->dances = new ArrayCollection(); + $this->locations = new ArrayCollection(); + $this->snippets = new ArrayCollection(); + $this->subscribers = new ArrayCollection(); + $this->subscriptions = new ArrayCollection(); + $this->googleTokens = new ArrayCollection(); + } + + /** + * Set city + * + * @param string $city + * + * @return User + */ + public function setCity(?string $city): User { + $this->city = $city; + + return $this; + } + + /** + * Get city + * + * @return string + */ + public function getCity(): ?string { + return $this->city; + } + + /** + * Set country + * + * @param Country $country + * + * @return User + */ + public function setCountry(?Country $country): User { + $this->country = $country; + + return $this; + } + + /** + * Get country + * + * @return Country + */ + public function getCountry(): ?Country { + return $this->country; } /** @@ -65,7 +157,7 @@ class User extends BaseUser { * * @return User */ - public function setPhone($phone) { + public function setPhone(?string $phone): User { $this->phone = $phone; return $this; @@ -76,62 +168,62 @@ class User extends BaseUser { * * @return string */ - public function getPhone() { + public function getPhone(): ?string { return $this->phone; } /** - * Set donation + * Set pseudonym * - * @param string $donation + * @param string $pseudonym * * @return User */ - public function setDonation($donation) { - $this->donation = $donation; + public function setPseudonym(?string $pseudonym): User { + $this->pseudonym = $pseudonym; return $this; } /** - * Get donation + * Get pseudonym * * @return string */ - public function getDonation() { - return $this->donation; + public function getPseudonym(): ?string { + return $this->pseudonym; } /** - * Set site + * Set zipcode * - * @param string $site + * @param string $zipcode * * @return User */ - public function setSite($site) { - $this->site = $site; + public function setZipcode(?string $zipcode): User { + $this->zipcode = $zipcode; return $this; } /** - * Get site + * Get zipcode * * @return string */ - public function getSite() { - return $this->site; + public function getZipcode(): ?string { + return $this->zipcode; } /** * Add application * - * @param \Rapsys\AirBundle\Entity\Application $application + * @param Application $application * * @return User */ - public function addApplication(Application $application) { + public function addApplication(Application $application): User { $this->applications[] = $application; return $this; @@ -140,10 +232,10 @@ class User extends BaseUser { /** * Remove application * - * @param \Rapsys\AirBundle\Entity\Application $application + * @param Application $application */ - public function removeApplication(Application $application) { - $this->applications->removeElement($application); + public function removeApplication(Application $application): bool { + return $this->applications->removeElement($application); } /** @@ -151,18 +243,116 @@ class User extends BaseUser { * * @return \Doctrine\Common\Collections\Collection */ - public function getApplications() { + public function getApplications(): Collection { return $this->applications; } + /** + * Add dance + * + * @param Dance $dance + * + * @return User + */ + public function addDance(Dance $dance): User { + $this->dances[] = $dance; + + return $this; + } + + /** + * Remove dance + * + * @param Dance $dance + * + * @return bool + */ + public function removeDance(Dance $dance): bool { + return $this->dances->removeElement($dance); + } + + /** + * Get dances + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getDances(): Collection { + return $this->dances; + } + + /** + * Add location + * + * @param Location $location + * + * @return User + */ + public function addLocation(Location $location): User { + $this->locations[] = $location; + + return $this; + } + + /** + * Remove location + * + * @param Location $location + */ + public function removeLocation(Location $location): bool { + return $this->locations->removeElement($location); + } + + /** + * Get locations + * + * @return \Doctrine\Common\Collections\Collection + */ + 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 * - * @param \Rapsys\AirBundle\Entity\User $subscriber + * @param User $subscriber * * @return User */ - public function addSubscriber(User $subscriber) { + public function addSubscriber(User $subscriber): User { + //Add from owning side + $subscriber->addSubscription($this); + $this->subscribers[] = $subscriber; return $this; @@ -171,10 +361,17 @@ class User extends BaseUser { /** * Remove subscriber * - * @param \Rapsys\AirBundle\Entity\User $subscriber + * @param User $subscriber */ - public function removeSubscriber(User $subscriber) { - $this->subscribers->removeElement($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); } /** @@ -182,18 +379,18 @@ class User extends BaseUser { * * @return \Doctrine\Common\Collections\Collection */ - public function getSubscribers() { + public function getSubscribers(): Collection { return $this->subscribers; } /** * Add subscription * - * @param \Rapsys\AirBundle\Entity\User $subscription + * @param User $subscription * * @return User */ - public function addSubscription(User $subscription) { + public function addSubscription(User $subscription): User { $this->subscriptions[] = $subscription; return $this; @@ -202,10 +399,10 @@ class User extends BaseUser { /** * Remove subscription * - * @param \Rapsys\AirBundle\Entity\User $subscription + * @param User $subscription */ - public function removeSubscription(User $subscription) { - $this->subscriptions->removeElement($subscription); + public function removeSubscription(User $subscription): bool { + return $this->subscriptions->removeElement($subscription); } /** @@ -213,38 +410,38 @@ class User extends BaseUser { * * @return \Doctrine\Common\Collections\Collection */ - public function getSubscriptions() { + public function getSubscriptions(): Collection { return $this->subscriptions; } /** - * Add snippet + * Add google token * - * @param \Rapsys\AirBundle\Entity\Snippet $snippet + * @param GoogleToken $googleToken * * @return User */ - public function addSnippet(\Rapsys\AirBundle\Entity\Snippet $snippet) { - $this->snippets[] = $snippet; + public function addGoogleToken(GoogleToken $googleToken): User { + $this->googleTokens[] = $googleToken; return $this; } /** - * Remove snippet + * Remove google token * - * @param \Rapsys\AirBundle\Entity\Snippet $snippet + * @param GoogleToken $googleToken */ - public function removeSnippet(\Rapsys\AirBundle\Entity\Snippet $snippet) { - $this->snippets->removeElement($snippet); + public function removeGoogleToken(GoogleToken $googleToken): bool { + return $this->googleTokens->removeElement($googleToken); } /** - * Get snippets + * Get googleTokens * * @return \Doctrine\Common\Collections\Collection */ - public function getSnippets() { - return $this->snippets; + public function getGoogleTokens(): Collection { + return $this->googleTokens; } }