AccessProfile.php 5.9 KB

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