1 <?php
declare(strict_types
=1);
4 * this file is part of the rapsys packbundle 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\User
as BaseUser
;
19 class User
extends BaseUser
{
23 private ?string $city;
28 private ?string $phone;
33 private ?Country
$country;
38 private ?string $pseudonym;
43 private ?string $zipcode;
46 * @var \Doctrine\Common\Collections\Collection
48 private Collection
$applications;
51 * @var \Doctrine\Common\Collections\Collection
53 private Collection
$dances;
56 * @var \Doctrine\Common\Collections\Collection
58 private Collection
$locations;
61 * @var \Doctrine\Common\Collections\Collection
63 private Collection
$snippets;
66 * @var \Doctrine\Common\Collections\Collection
68 private Collection
$subscribers;
71 * @var \Doctrine\Common\Collections\Collection
73 private Collection
$subscriptions;
76 * @var \Doctrine\Common\Collections\Collection
78 private Collection
$googleTokens;
83 * @param string $mail The user mail
85 public function __construct(string $mail) {
86 //Call parent constructor
87 parent
::__construct($mail);
91 $this->country
= null;
93 $this->pseudonym
= null;
94 $this->zipcode
= null;
97 $this->applications
= new ArrayCollection();
98 $this->dances
= new ArrayCollection();
99 $this->locations
= new ArrayCollection();
100 $this->snippets
= new ArrayCollection();
101 $this->subscribers
= new ArrayCollection();
102 $this->subscriptions
= new ArrayCollection();
103 $this->googleTokens
= new ArrayCollection();
109 * @param string $city
113 public function setCity(?string $city): User
{
124 public function getCity(): ?string {
131 * @param Country $country
135 public function setCountry(?Country
$country): User
{
136 $this->country
= $country;
146 public function getCountry(): ?Country
{
147 return $this->country
;
153 * @param string $phone
157 public function setPhone(?string $phone): User
{
158 $this->phone
= $phone;
168 public function getPhone(): ?string {
175 * @param string $pseudonym
179 public function setPseudonym(?string $pseudonym): User
{
180 $this->pseudonym
= $pseudonym;
190 public function getPseudonym(): ?string {
191 return $this->pseudonym
;
197 * @param string $zipcode
201 public function setZipcode(?string $zipcode): User
{
202 $this->zipcode
= $zipcode;
212 public function getZipcode(): ?string {
213 return $this->zipcode
;
219 * @param Application $application
223 public function addApplication(Application
$application): User
{
224 $this->applications
[] = $application;
232 * @param Application $application
234 public function removeApplication(Application
$application): bool {
235 return $this->applications
->removeElement($application);
241 * @return \Doctrine\Common\Collections\Collection
243 public function getApplications(): Collection
{
244 return $this->applications
;
250 * @param Dance $dance
254 public function addDance(Dance
$dance): User
{
255 $this->dances
[] = $dance;
263 * @param Dance $dance
267 public function removeDance(Dance
$dance): bool {
268 return $this->dances
->removeElement($dance);
274 * @return \Doctrine\Common\Collections\Collection
276 public function getDances(): Collection
{
277 return $this->dances
;
283 * @param Location $location
287 public function addLocation(Location
$location): User
{
288 $this->locations
[] = $location;
296 * @param Location $location
298 public function removeLocation(Location
$location): bool {
299 return $this->locations
->removeElement($location);
305 * @return \Doctrine\Common\Collections\Collection
307 public function getLocations(): Collection
{
308 return $this->locations
;
314 * @param Snippet $snippet
318 public function addSnippet(Snippet
$snippet): User
{
319 $this->snippets
[] = $snippet;
327 * @param Snippet $snippet
329 public function removeSnippet(Snippet
$snippet): bool {
330 return $this->snippets
->removeElement($snippet);
336 * @return \Doctrine\Common\Collections\Collection
338 public function getSnippets(): Collection
{
339 return $this->snippets
;
345 * @param User $subscriber
349 public function addSubscriber(User
$subscriber): User
{
350 $this->subscribers
[] = $subscriber;
358 * @param User $subscriber
360 public function removeSubscriber(User
$subscriber): bool {
361 return $this->subscribers
->removeElement($subscriber);
367 * @return \Doctrine\Common\Collections\Collection
369 public function getSubscribers(): Collection
{
370 return $this->subscribers
;
376 * @param User $subscription
380 public function addSubscription(User
$subscription): User
{
381 //Add from owning side
382 $subscription->addSubscriber($this);
384 $this->subscriptions
[] = $subscription;
390 * Remove subscription
392 * @param User $subscription
394 public function removeSubscription(User
$subscription): bool {
395 if (!$this->users
->contains($user)) {
399 //Remove from owning side
400 $subscription->removeSubscriber($this);
402 return $this->subscriptions
->removeElement($subscription);
408 * @return \Doctrine\Common\Collections\Collection
410 public function getSubscriptions(): Collection
{
411 return $this->subscriptions
;
417 * @param GoogleToken $googleToken
421 public function addGoogleToken(GoogleToken
$googleToken): User
{
422 $this->googleTokens
[] = $googleToken;
428 * Remove google token
430 * @param GoogleToken $googleToken
432 public function removeGoogleToken(GoogleToken
$googleToken): bool {
433 return $this->googleTokens
->removeElement($googleToken);
439 * @return \Doctrine\Common\Collections\Collection
441 public function getGoogleTokens(): Collection
{
442 return $this->googleTokens
;