AccessProfile.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\ApiResources\Profile;
  4. use ApiPlatform\Core\Annotation\ApiProperty;
  5. use ApiPlatform\Core\Annotation\ApiResource;
  6. use Symfony\Component\Serializer\Annotation\Groups;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. /**
  10. * Classe resource qui contient les champs disponibles lors d'un appel à my_profile.
  11. *
  12. * @ApiResource(
  13. * itemOperations={
  14. * "get"={
  15. * "normalization_context"={"groups"={"access_profile_read"}},
  16. * "method"="GET",
  17. * "path"="/my_profile/{id}",
  18. * "defaults"={"id"=0}
  19. * }
  20. * }
  21. * )
  22. */
  23. class AccessProfile
  24. {
  25. /**
  26. * @ApiProperty(identifier=true)
  27. * @Groups({"access_profile_read"})
  28. */
  29. public $id;
  30. /**
  31. * @Groups({"access_profile_read"})
  32. */
  33. private $isAdminAccess;
  34. /**
  35. * @Groups({"access_profile_read"})
  36. */
  37. private $name;
  38. /**
  39. * @Groups({"access_profile_read"})
  40. */
  41. private $givenName;
  42. /**
  43. * @Groups({"access_profile_read"})
  44. */
  45. private $gender;
  46. /**
  47. * @Groups({"access_profile_read"})
  48. */
  49. private $avatarId;
  50. /**
  51. * @Groups({"access_profile_read"})
  52. */
  53. private $roles = [];
  54. /**
  55. * @Groups({"access_profile_read"})
  56. */
  57. private $activityYear;
  58. /**
  59. * @Groups({"access_profile_read"})
  60. */
  61. private $historical=[];
  62. /**
  63. * @Groups({"access_profile_read"})
  64. */
  65. private $organization;
  66. /**
  67. * @Groups({"access_profile_read"})
  68. */
  69. private $multiAccesses;
  70. /**
  71. * @Groups({"access_profile_read"})
  72. */
  73. private $familyAccesses;
  74. /**
  75. * @Groups({"access_profile_read"})
  76. */
  77. private $originalAccess;
  78. public function __construct()
  79. {
  80. $this->multiAccesses = new ArrayCollection();
  81. $this->familyAccesses = new ArrayCollection();
  82. }
  83. public function getId(): ?int
  84. {
  85. return $this->id;
  86. }
  87. public function setId(?int $id): self
  88. {
  89. $this->id = $id;
  90. return $this;
  91. }
  92. public function getIsAdminAccess(): ?bool
  93. {
  94. return $this->isAdminAccess;
  95. }
  96. public function setIsAdminAccess(bool $isAdminAccess): self
  97. {
  98. $this->isAdminAccess = $isAdminAccess;
  99. return $this;
  100. }
  101. public function getOrganization(): ?OrganizationProfile
  102. {
  103. return $this->organization;
  104. }
  105. public function setOrganization(?OrganizationProfile $organization): self
  106. {
  107. $this->organization = $organization;
  108. return $this;
  109. }
  110. public function getName(): ?string
  111. {
  112. return $this->name;
  113. }
  114. public function setName(?string $name): self
  115. {
  116. $this->name = $name;
  117. return $this;
  118. }
  119. public function getGivenName(): ?string
  120. {
  121. return $this->givenName;
  122. }
  123. public function setGivenName(?string $givenName): self
  124. {
  125. $this->givenName = $givenName;
  126. return $this;
  127. }
  128. public function getGender(): ?string
  129. {
  130. return $this->gender;
  131. }
  132. public function setGender(?string $gender): self
  133. {
  134. $this->gender = $gender;
  135. return $this;
  136. }
  137. public function getAvatarId(): ?int
  138. {
  139. return $this->avatarId;
  140. }
  141. public function setAvatarId(?int $avatarId): self
  142. {
  143. $this->avatarId = $avatarId;
  144. return $this;
  145. }
  146. public function getRoles(): array
  147. {
  148. $roles = $this->roles;
  149. return array_unique($roles);
  150. }
  151. public function setRoles(array $roles): self
  152. {
  153. $this->roles = $roles;
  154. return $this;
  155. }
  156. /**
  157. * @return Collection|OrganizationProfile[]
  158. */
  159. public function getMultiAccesses(): Collection
  160. {
  161. return $this->multiAccesses;
  162. }
  163. public function addMultiAccess(OrganizationProfile $organizationProfile): self
  164. {
  165. if (!$this->multiAccesses->contains($organizationProfile)) {
  166. $this->multiAccesses[] = $organizationProfile;
  167. }
  168. return $this;
  169. }
  170. public function removeMultiAccess(OrganizationProfile $organizationProfile): self
  171. {
  172. $this->multiAccesses->removeElement($organizationProfile);
  173. return $this;
  174. }
  175. /**
  176. * @return Collection|OrganizationProfile[]
  177. */
  178. public function getFamilyAccesses(): Collection
  179. {
  180. return $this->familyAccesses;
  181. }
  182. public function addFamilyAccess(AccessProfile $accessProfile): self
  183. {
  184. if (!$this->familyAccesses->contains($accessProfile)) {
  185. $this->familyAccesses[] = $accessProfile;
  186. }
  187. return $this;
  188. }
  189. public function removeFamilyAccess(AccessProfile $accessProfile): self
  190. {
  191. $this->familyAccesses->removeElement($accessProfile);
  192. return $this;
  193. }
  194. public function getOriginalAccess(): ?AccessProfile
  195. {
  196. return $this->originalAccess;
  197. }
  198. public function setOriginalAccess(?AccessProfile $originalAccess): self
  199. {
  200. $this->originalAccess = $originalAccess;
  201. return $this;
  202. }
  203. public function getActivityYear(): int
  204. {
  205. return $this->activityYear;
  206. }
  207. public function setActivityYear(int $activityYear): self
  208. {
  209. $this->activityYear = $activityYear;
  210. return $this;
  211. }
  212. public function getHistorical(): array
  213. {
  214. return $this->historical;
  215. }
  216. public function setHistorical(array $historical): self
  217. {
  218. $this->historical = $historical;
  219. return $this;
  220. }
  221. }