src/Entity/User.php line 52

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Symfony\Component\Serializer\Annotation\Groups;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use ApiPlatform\Core\Annotation\ApiFilter;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\OrderFilter;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\ORM\Mapping as ORM;
  10. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  11. use Symfony\Component\Security\Core\User\UserInterface;
  12. use App\Controller\API\UserController;
  13. use App\Controller\API\UserHashController;
  14. use App\Repository\UserRepository;
  15. use App\Model\EmailMessageNotificable;
  16. /**
  17.  * @ORM\Entity(repositoryClass=UserRepository::class)
  18.  * @ApiResource(
  19.  *   normalizationContext={"groups"={"read"}},
  20.  *   itemOperations={"get", 
  21.  *                   "put", 
  22.  *                   "patch",
  23.  *                   "delete",
  24.  *                   "hash_password"= { 
  25.  *                      "controller"=UserHashController::class, 
  26.  *                       "method"="PATCH",
  27.  *                       "path"="/users/{id}/update.{_format}",
  28.  *                      }
  29.  *                  
  30.  *                   },
  31.  *   collectionOperations= {
  32.  *                  "get",
  33.  *                   "post"= { 
  34.  *                      "controller"=UserController::class, 
  35.  *                       "method"="POST",
  36.  *                       "path"="/users.{_format}",
  37.  *                      }
  38.  *                  
  39.  *                  }
  40.  * )
  41.  * @ApiFilter(OrderFilter::class, properties={"id","lastName"}, arguments={"orderParameterName"="order"})
  42.  * 
  43.  *
  44.  */
  45. class User implements UserInterfacePasswordAuthenticatedUserInterfaceEmailMessageNotificable
  46. {
  47.     /**
  48.      * @ORM\Id
  49.      * @ORM\GeneratedValue
  50.      * @ORM\Column(type="integer")
  51.      * @Groups({"read"})
  52.      */
  53.     private $id;
  54.     /**
  55.      * @Groups({"read"})
  56.      * @ORM\Column(type="string", length=180, unique=true)
  57.      * 
  58.      */
  59.     public $email;
  60.     /**
  61.      * @Groups({"read"})
  62.      * @ORM\Column(type="json")
  63.      * 
  64.      */
  65.     private $roles = [];
  66.     /**
  67.      * 
  68.      * @ORM\Column(type="string")
  69.      */
  70.     private $password;
  71.     /**
  72.      * @ORM\Column(type="string", length=255, nullable=true)
  73.      * @Groups({"read"})
  74.      */
  75.     private $name;
  76.     /**
  77.      * @ORM\Column(type="string", length=255, nullable=true)
  78.      * @Groups({"read"})
  79.      */
  80.     private $lastName;
  81.     /**
  82.      * @Groups({"read"})
  83.      * @ORM\Column(type="string", length=255, nullable=true)
  84.      * 
  85.      */
  86.     private $occupation;
  87.     /**
  88.      * @ORM\Column(type="string", length=255, nullable=true)
  89.      * @Groups({"read"})
  90.      */
  91.     private $phoneExtension;
  92.     /**
  93.      * @ORM\Column(type="string", length=255, nullable=true)
  94.      * @Groups({"read"})
  95.      */
  96.     private $googleScholarLink;
  97.     /**
  98.      * @ORM\Column(type="string", length=255, nullable=true)
  99.      * @Groups({"read"})
  100.      */
  101.     private $researchGateLink;
  102.     /**
  103.      * @ORM\Column(type="array", nullable=true)
  104.      * @Groups({"read"})
  105.      */
  106.     private $customRoles = [];
  107.     /**
  108.      * @ORM\OneToMany(targetEntity=InternalEventUser::class, mappedBy="user")
  109.      */
  110.     private $internalEvents;
  111.     /**
  112.      * @ORM\OneToMany(targetEntity=TicIssueMessage::class, mappedBy="user")
  113.      */
  114.     private $ticIssueMessages;
  115.     /**
  116.      * @ORM\OneToMany(targetEntity=Payroll::class, mappedBy="user")
  117.      */
  118.     private $payrolls;
  119.     /**
  120.      * @Groups({"read"})
  121.      * @ORM\Column(type="text", nullable=true)
  122.      */
  123.     private $biography;
  124.     /**
  125.      * @Groups({"read"})
  126.      * @ORM\Column(type="string", length=255, nullable=true)
  127.      */
  128.     private $orcid;
  129.     /**
  130.      * @ORM\OneToOne(targetEntity=MediaObjectUser::class, inversedBy="user", cascade={"persist", "remove"})
  131.      * @Groups({"read"})
  132.      */
  133.     private $mediaObjectUser;
  134.     /**
  135.      * @ORM\Column(type="text", nullable=true)
  136.      * @Groups({"read"})
  137.      */
  138.     private $notasGerencia;
  139.     /**
  140.      * @ORM\Column(type="text", nullable=true)
  141.      * @Groups({"read"})
  142.      */
  143.     private $descripcionPersonal;
  144.     /**
  145.      * @ORM\Column(type="string", length=511, nullable=true)
  146.      * @Groups({"read"})
  147.      */
  148.     private $webPersonal;
  149.     /**
  150.      * @ORM\Column(type="string", length=511, nullable=true)
  151.      * @Groups({"read"})
  152.      */
  153.     private $emailPersonal;
  154.     /**
  155.      * @ORM\Column(type="string", length=255, nullable=true)
  156.      * @Groups({"read"})
  157.      */
  158.     private $rpv;
  159.     /**
  160.      * @ORM\Column(type="string", length=255, nullable=true)
  161.      * @Groups({"read"})
  162.      */
  163.     private $telefonoPersonal;
  164.     /**
  165.      * @ORM\Column(type="string", length=255, nullable=true)
  166.      * @Groups({"read"})
  167.      */
  168.     private $telefonoPersonal2;
  169.     /**
  170.      * @ORM\Column(type="string", length=255, nullable=true)
  171.      * @Groups({"read"})
  172.      */
  173.     private $phoneExternal;
  174.     /**
  175.      * @ORM\Column(type="string", length=255, nullable=true)
  176.      * @Groups({"read"})
  177.      */
  178.     private $postalCode;
  179.     /**
  180.      * @ORM\Column(type="string", length=511, nullable=true)
  181.      * @Groups({"read"})
  182.      */
  183.     private $address;
  184.     /**
  185.      * @ORM\Column(type="string", length=255, nullable=true)
  186.      * @Groups({"read"})
  187.      */
  188.     private $nationality;
  189.     /**
  190.      * @ORM\Column(type="string", length=511, nullable=true)
  191.      * @Groups({"read"})
  192.      */
  193.     private $bornPlace;
  194.     /**
  195.      * @ORM\Column(type="datetime", nullable=true)
  196.      * @Groups({"read"})
  197.      */
  198.     private $bornDate;
  199.     /**
  200.      * @ORM\Column(type="string", length=255, nullable=true)
  201.      * @Groups({"read"})
  202.      */
  203.     private $sexenios;
  204.     /**
  205.      * @ORM\Column(type="string", length=255, nullable=true)
  206.      * @Groups({"read"})
  207.      */
  208.     private $course;
  209.     /**
  210.      * @ORM\Column(type="boolean", nullable=true)
  211.      * @Groups({"read"})
  212.      */
  213.     private $isAcredContratadoDoctor;
  214.     /**
  215.      * @ORM\Column(type="string", length=255, nullable=true)
  216.      * @Groups({"read"})
  217.      */
  218.     private $academicGrade;
  219.     /**
  220.      * @ORM\Column(type="string", length=255, nullable=true)
  221.      * @Groups({"read"})
  222.      */
  223.     private $category;
  224.     /**
  225.      * @ORM\Column(type="string", length=511, nullable=true)
  226.      * @Groups({"read"})
  227.      */
  228.     private $numeroSeguridadSocial;
  229.     /**
  230.      * @ORM\Column(type="string", length=255, nullable=true)
  231.      * @Groups({"read"})
  232.      */
  233.     private $dni;
  234.     /**
  235.      * @ORM\Column(type="string", length=255, nullable=true)
  236.      * @Groups({"read"})
  237.      */
  238.     private $tipoDNI;
  239.     /**
  240.      * @ORM\Column(type="string", length=255, nullable=true)
  241.      * @Groups({"read"})
  242.      */
  243.     private $language;
  244.     /**
  245.      * @ORM\Column(type="string", length=511, nullable=true)
  246.      * @Groups({"read"})
  247.      */
  248.     private $apodo;
  249.     /**
  250.      * @ORM\Column(type="string", length=511, nullable=true)
  251.      * @Groups({"read"})
  252.      */
  253.     private $interalNumber;
  254.     /**
  255.      * @ORM\OneToMany(targetEntity=Booking::class, mappedBy="user")
  256.      */
  257.     private $bookings;
  258.     /**
  259.      * @ORM\OneToMany(targetEntity=NewsItemUser::class, mappedBy="user")
  260.      */
  261.     private $newsItem;
  262.     /**
  263.      * @ORM\Column(type="string", length=255, nullable=true)
  264.      * @Groups({"read"})
  265.      */
  266.     private $identifier;
  267.     /**
  268.      * @ORM\Column(type="string", length=255, nullable=true)
  269.      * @Groups({"read"})
  270.      */
  271.     private $identifier2;
  272.     public function __construct()
  273.     {
  274.         $this->internalEvents = new ArrayCollection();
  275.         $this->ticIssueMessages = new ArrayCollection();
  276.         $this->payrolls = new ArrayCollection();
  277.         $this->bookings = new ArrayCollection();
  278.         $this->newsItem = new ArrayCollection();
  279.       
  280.     }
  281.     public function getId(): ?int
  282.     {
  283.         return $this->id;
  284.     }
  285.     public function getEmail(): ?string
  286.     {
  287.         return $this->email;
  288.     }
  289.     public function setEmail(string $email): self
  290.     {
  291.         $this->email $email;
  292.         return $this;
  293.     }
  294.     /**
  295.      * A visual identifier that represents this user.
  296.      *
  297.      * @see UserInterface
  298.      */
  299.     public function getUserIdentifier(): string
  300.     {
  301.         return (string) $this->email;
  302.     }
  303.     /**
  304.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  305.      */
  306.     public function getUsername(): string
  307.     {
  308.         return (string) $this->email;
  309.     }
  310.     /**
  311.      * @see UserInterface
  312.      */
  313.     public function getRoles(): array
  314.     {
  315.         $roles $this->roles;
  316.         // guarantee every user at least has ROLE_USER
  317.         $roles[] = 'ROLE_USER';
  318.         return array_unique($roles);
  319.     }
  320.     public function setRoles(array $roles): self
  321.     {
  322.         $this->roles $roles;
  323.         return $this;
  324.     }
  325.     /**
  326.      * @see PasswordAuthenticatedUserInterface
  327.      */
  328.     public function getPassword(): string
  329.     {
  330.         return $this->password;
  331.     }
  332.     public function setPassword(string $password): self
  333.     {
  334.         $this->password $password;
  335.         return $this;
  336.     }
  337.     /**
  338.      * Returning a salt is only needed, if you are not using a modern
  339.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  340.      *
  341.      * @see UserInterface
  342.      */
  343.     public function getSalt(): ?string
  344.     {
  345.         return null;
  346.     }
  347.     /**
  348.      * @see UserInterface
  349.      */
  350.     public function eraseCredentials()
  351.     {
  352.         // If you store any temporary, sensitive data on the user, clear it here
  353.         // $this->plainPassword = null;
  354.     }
  355.     public function getName(): ?string
  356.     {
  357.         return $this->name;
  358.     }
  359.     public function setName(?string $name): self
  360.     {
  361.         $this->name $name;
  362.         return $this;
  363.     }
  364.     public function getLastName(): ?string
  365.     {
  366.         return $this->lastName;
  367.     }
  368.     public function setLastName(?string $lastName): self
  369.     {
  370.         $this->lastName $lastName;
  371.         return $this;
  372.     }
  373.     public function getOccupation(): ?string
  374.     {
  375.         return $this->occupation;
  376.     }
  377.     public function setOccupation(?string $occupation): self
  378.     {
  379.         $this->occupation $occupation;
  380.         return $this;
  381.     }
  382.     public function getPhoneExtension(): ?string
  383.     {
  384.         return $this->phoneExtension;
  385.     }
  386.     public function setPhoneExtension(?string $phoneExtension): self
  387.     {
  388.         $this->phoneExtension $phoneExtension;
  389.         return $this;
  390.     }
  391.     public function getGoogleScholarLink(): ?string
  392.     {
  393.         return $this->googleScholarLink;
  394.     }
  395.     public function setGoogleScholarLink(?string $googleScholarLink): self
  396.     {
  397.         $this->googleScholarLink $googleScholarLink;
  398.         return $this;
  399.     }
  400.     public function getResearchGateLink(): ?string
  401.     {
  402.         return $this->researchGateLink;
  403.     }
  404.     public function setResearchGateLink(?string $researchGateLink): self
  405.     {
  406.         $this->researchGateLink $researchGateLink;
  407.         return $this;
  408.     }
  409.     public function getCustomRoles(): ?array
  410.     {
  411.         return $this->customRoles;
  412.     }
  413.     public function setCustomRoles(?array $customRoles): self
  414.     {
  415.         $this->customRoles $customRoles;
  416.         return $this;
  417.     }
  418.     /**
  419.      * @return Collection<int, InternalEventUser>
  420.      */
  421.     public function getInternalEvents(): Collection
  422.     {
  423.         return $this->internalEvents;
  424.     }
  425.     public function addInternalEvent(InternalEventUser $internalEvent): self
  426.     {
  427.         if (!$this->internalEvents->contains($internalEvent)) {
  428.             $this->internalEvents[] = $internalEvent;
  429.             $internalEvent->setUser($this);
  430.         }
  431.         return $this;
  432.     }
  433.     public function removeInternalEvent(InternalEventUser $internalEvent): self
  434.     {
  435.         if ($this->internalEvents->removeElement($internalEvent)) {
  436.             // set the owning side to null (unless already changed)
  437.             if ($internalEvent->getUser() === $this) {
  438.                 $internalEvent->setUser(null);
  439.             }
  440.         }
  441.         return $this;
  442.     }
  443.     /**
  444.      * @return Collection<int, TicIssueMessage>
  445.      */
  446.     public function getTicIssueMessages(): Collection
  447.     {
  448.         return $this->ticIssueMessages;
  449.     }
  450.     public function addTicIssueMessage(TicIssueMessage $ticIssueMessage): self
  451.     {
  452.         if (!$this->ticIssueMessages->contains($ticIssueMessage)) {
  453.             $this->ticIssueMessages[] = $ticIssueMessage;
  454.             $ticIssueMessage->setUser($this);
  455.         }
  456.         return $this;
  457.     }
  458.     public function removeTicIssueMessage(TicIssueMessage $ticIssueMessage): self
  459.     {
  460.         if ($this->ticIssueMessages->removeElement($ticIssueMessage)) {
  461.             // set the owning side to null (unless already changed)
  462.             if ($ticIssueMessage->getUser() === $this) {
  463.                 $ticIssueMessage->setUser(null);
  464.             }
  465.         }
  466.         return $this;
  467.     }
  468.     /**
  469.      * @return Collection<int, Payroll>
  470.      */
  471.     public function getPayrolls(): Collection
  472.     {
  473.         return $this->payrolls;
  474.     }
  475.     public function addPayroll(Payroll $payroll): self
  476.     {
  477.         if (!$this->payrolls->contains($payroll)) {
  478.             $this->payrolls[] = $payroll;
  479.             $payroll->setUser($this);
  480.         }
  481.         return $this;
  482.     }
  483.     public function removePayroll(Payroll $payroll): self
  484.     {
  485.         if ($this->payrolls->removeElement($payroll)) {
  486.             // set the owning side to null (unless already changed)
  487.             if ($payroll->getUser() === $this) {
  488.                 $payroll->setUser(null);
  489.             }
  490.         }
  491.         return $this;
  492.     }
  493.     public function getBiography(): ?string
  494.     {
  495.         return $this->biography;
  496.     }
  497.     public function setBiography(?string $biography): self
  498.     {
  499.         $this->biography $biography;
  500.         return $this;
  501.     }
  502.     public function getOrcid(): ?string
  503.     {
  504.         return $this->orcid;
  505.     }
  506.     public function setOrcid(?string $orcid): self
  507.     {
  508.         $this->orcid $orcid;
  509.         return $this;
  510.     }
  511.     public function getMediaObjectUser(): ?MediaObjectUser
  512.     {
  513.         return $this->mediaObjectUser;
  514.     }
  515.     public function setMediaObjectUser(?MediaObjectUser $mediaObjectUser): self
  516.     {
  517.         $this->mediaObjectUser $mediaObjectUser;
  518.         return $this;
  519.     }
  520.     public function getNotasGerencia(): ?string
  521.     {
  522.         return $this->notasGerencia;
  523.     }
  524.     public function setNotasGerencia(?string $notasGerencia): self
  525.     {
  526.         $this->notasGerencia $notasGerencia;
  527.         return $this;
  528.     }
  529.     public function getDescripcionPersonal(): ?string
  530.     {
  531.         return $this->descripcionPersonal;
  532.     }
  533.     public function setDescripcionPersonal(?string $descripcionPersonal): self
  534.     {
  535.         $this->descripcionPersonal $descripcionPersonal;
  536.         return $this;
  537.     }
  538.     public function getWebPersonal(): ?string
  539.     {
  540.         return $this->webPersonal;
  541.     }
  542.     public function setWebPersonal(?string $webPersonal): self
  543.     {
  544.         $this->webPersonal $webPersonal;
  545.         return $this;
  546.     }
  547.     public function getEmailPersonal(): ?string
  548.     {
  549.         return $this->emailPersonal;
  550.     }
  551.     public function setEmailPersonal(?string $emailPersonal): self
  552.     {
  553.         $this->emailPersonal $emailPersonal;
  554.         return $this;
  555.     }
  556.     public function getRpv(): ?string
  557.     {
  558.         return $this->rpv;
  559.     }
  560.     public function setRpv(?string $rpv): self
  561.     {
  562.         $this->rpv $rpv;
  563.         return $this;
  564.     }
  565.     public function getTelefonoPersonal(): ?string
  566.     {
  567.         return $this->telefonoPersonal;
  568.     }
  569.     public function setTelefonoPersonal(?string $telefonoPersonal): self
  570.     {
  571.         $this->telefonoPersonal $telefonoPersonal;
  572.         return $this;
  573.     }
  574.     public function getTelefonoPersonal2(): ?string
  575.     {
  576.         return $this->telefonoPersonal2;
  577.     }
  578.     public function setTelefonoPersonal2(?string $telefonoPersonal2): self
  579.     {
  580.         $this->telefonoPersonal2 $telefonoPersonal2;
  581.         return $this;
  582.     }
  583.     public function getPhoneExternal(): ?string
  584.     {
  585.         return $this->phoneExternal;
  586.     }
  587.     public function setPhoneExternal(?string $phoneExternal): self
  588.     {
  589.         $this->phoneExternal $phoneExternal;
  590.         return $this;
  591.     }
  592.     public function getPostalCode(): ?string
  593.     {
  594.         return $this->postalCode;
  595.     }
  596.     public function setPostalCode(?string $postalCode): self
  597.     {
  598.         $this->postalCode $postalCode;
  599.         return $this;
  600.     }
  601.     public function getAddress(): ?string
  602.     {
  603.         return $this->address;
  604.     }
  605.     public function setAddress(?string $address): self
  606.     {
  607.         $this->address $address;
  608.         return $this;
  609.     }
  610.     public function getNationality(): ?string
  611.     {
  612.         return $this->nationality;
  613.     }
  614.     public function setNationality(?string $nationality): self
  615.     {
  616.         $this->nationality $nationality;
  617.         return $this;
  618.     }
  619.     public function getBornPlace(): ?string
  620.     {
  621.         return $this->bornPlace;
  622.     }
  623.     public function setBornPlace(?string $bornPlace): self
  624.     {
  625.         $this->bornPlace $bornPlace;
  626.         return $this;
  627.     }
  628.     public function getBornDate(): ?\DateTimeInterface
  629.     {
  630.         return $this->bornDate;
  631.     }
  632.     public function setBornDate(?\DateTimeInterface $bornDate): self
  633.     {
  634.         $this->bornDate $bornDate;
  635.         return $this;
  636.     }
  637.     public function getSexenios(): ?string
  638.     {
  639.         return $this->sexenios;
  640.     }
  641.     public function setSexenios(?string $sexenios): self
  642.     {
  643.         $this->sexenios $sexenios;
  644.         return $this;
  645.     }
  646.     public function getCourse(): ?string
  647.     {
  648.         return $this->course;
  649.     }
  650.     public function setCourse(?string $course): self
  651.     {
  652.         $this->course $course;
  653.         return $this;
  654.     }
  655.     public function getIsAcredContratadoDoctor(): ?bool
  656.     {
  657.         return $this->isAcredContratadoDoctor;
  658.     }
  659.     public function setIsAcredContratadoDoctor(?bool $isAcredContratadoDoctor): self
  660.     {
  661.         $this->isAcredContratadoDoctor $isAcredContratadoDoctor;
  662.         return $this;
  663.     }
  664.     public function getAcademicGrade(): ?string
  665.     {
  666.         return $this->academicGrade;
  667.     }
  668.     public function setAcademicGrade(?string $academicGrade): self
  669.     {
  670.         $this->academicGrade $academicGrade;
  671.         return $this;
  672.     }
  673.     public function getCategory(): ?string
  674.     {
  675.         return $this->category;
  676.     }
  677.     public function setCategory(?string $category): self
  678.     {
  679.         $this->category $category;
  680.         return $this;
  681.     }
  682.     public function getNumeroSeguridadSocial(): ?string
  683.     {
  684.         return $this->numeroSeguridadSocial;
  685.     }
  686.     public function setNumeroSeguridadSocial(?string $numeroSeguridadSocial): self
  687.     {
  688.         $this->numeroSeguridadSocial $numeroSeguridadSocial;
  689.         return $this;
  690.     }
  691.     public function getDni(): ?string
  692.     {
  693.         return $this->dni;
  694.     }
  695.     public function setDni(?string $dni): self
  696.     {
  697.         $this->dni $dni;
  698.         return $this;
  699.     }
  700.     public function getTipoDNI(): ?string
  701.     {
  702.         return $this->tipoDNI;
  703.     }
  704.     public function setTipoDNI(?string $tipoDNI): self
  705.     {
  706.         $this->tipoDNI $tipoDNI;
  707.         return $this;
  708.     }
  709.     public function getLanguage(): ?string
  710.     {
  711.         return $this->language;
  712.     }
  713.     public function setLanguage(?string $language): self
  714.     {
  715.         $this->language $language;
  716.         return $this;
  717.     }
  718.     public function getApodo(): ?string
  719.     {
  720.         return $this->apodo;
  721.     }
  722.     public function setApodo(?string $apodo): self
  723.     {
  724.         $this->apodo $apodo;
  725.         return $this;
  726.     }
  727.     public function getInteralNumber(): ?string
  728.     {
  729.         return $this->interalNumber;
  730.     }
  731.     public function setInteralNumber(?string $interalNumber): self
  732.     {
  733.         $this->interalNumber $interalNumber;
  734.         return $this;
  735.     }
  736.     /**
  737.      * @return Collection<int, Booking>
  738.      */
  739.     public function getBookings(): Collection
  740.     {
  741.         return $this->bookings;
  742.     }
  743.     public function addBooking(Booking $booking): self
  744.     {
  745.         if (!$this->bookings->contains($booking)) {
  746.             $this->bookings[] = $booking;
  747.             $booking->setUser($this);
  748.         }
  749.         return $this;
  750.     }
  751.     public function removeBooking(Booking $booking): self
  752.     {
  753.         if ($this->bookings->removeElement($booking)) {
  754.             // set the owning side to null (unless already changed)
  755.             if ($booking->getUser() === $this) {
  756.                 $booking->setUser(null);
  757.             }
  758.         }
  759.         return $this;
  760.     }
  761.     /**
  762.      * @return Collection<int, NewsItemUser>
  763.      */
  764.     public function getNewsItem(): Collection
  765.     {
  766.         return $this->newsItem;
  767.     }
  768.     public function addNewsItem(NewsItemUser $newsItem): self
  769.     {
  770.         if (!$this->newsItem->contains($newsItem)) {
  771.             $this->newsItem[] = $newsItem;
  772.             $newsItem->setUser($this);
  773.         }
  774.         return $this;
  775.     }
  776.     public function removeNewsItem(NewsItemUser $newsItem): self
  777.     {
  778.         if ($this->newsItem->removeElement($newsItem)) {
  779.             // set the owning side to null (unless already changed)
  780.             if ($newsItem->getUser() === $this) {
  781.                 $newsItem->setUser(null);
  782.             }
  783.         }
  784.         return $this;
  785.     }
  786.     public function getIdentifier(): ?string
  787.     {
  788.         return $this->identifier;
  789.     }
  790.     public function setIdentifier(?string $identifier): self
  791.     {
  792.         $this->identifier $identifier;
  793.         return $this;
  794.     }
  795.     public function getIdentifier2(): ?string
  796.     {
  797.         return $this->identifier2;
  798.     }
  799.     public function setIdentifier2(?string $identifier2): self
  800.     {
  801.         $this->identifier2 $identifier2;
  802.         return $this;
  803.     }
  804.     
  805. }