| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- <?php
- declare(strict_types=1);
- namespace App\ApiResources\Profile;
- use ApiPlatform\Metadata\ApiProperty;
- use ApiPlatform\Metadata\ApiResource;
- use ApiPlatform\Metadata\Get;
- use App\ApiResources\ApiResourcesInterface;
- use App\Enum\Person\GenderEnum;
- use App\State\Provider\Access\AccessProfileProvider;
- use Doctrine\Common\Collections\ArrayCollection;
- use Doctrine\Common\Collections\Collection;
- use JetBrains\PhpStorm\Pure;
- use Symfony\Component\Serializer\Annotation\Groups;
- use Symfony\Component\Validator\Constraints as Assert;
- /**
- * Classe resource qui contient les champs disponibles lors d'un appel à my_profile.
- */
- #[ApiResource(
- operations: [
- new Get(
- uriTemplate: '/my_profile/{id}',
- defaults: ['id' => 0],
- normalizationContext: ['groups' => ['access_profile_read']],
- provider: AccessProfileProvider::class
- ),
- ]
- )]
- class AccessProfile implements ApiResourcesInterface
- {
- #[ApiProperty(identifier: true)]
- #[Groups('access_profile_read')]
- public ?int $id = null;
- #[Groups('access_profile_read')]
- private bool $isAdminAccess = false;
- #[Groups('access_profile_read')]
- private bool $isSuperAdminAccess = false;
- #[Groups('access_profile_read')]
- private ?string $name = null;
- #[Groups('access_profile_read')]
- private ?string $givenName = null;
- #[Groups('access_profile_read')]
- #[Assert\Type(type: GenderEnum::class)]
- private ?GenderEnum $gender = null;
- #[Groups('access_profile_read')]
- private ?int $avatarId = null;
- /** @var list<string> $roles */
- #[Groups('access_profile_read')]
- private ?array $roles = [];
- #[Groups('access_profile_read')]
- private ?int $activityYear = null;
- /** @var bool[] $historical */
- #[Groups('access_profile_read')]
- private ?array $historical = [];
- #[Groups('access_profile_read')]
- private bool $isGuardian = false;
- #[Groups('access_profile_read')]
- private bool $isPayor = false;
- #[Groups('access_profile_read')]
- private ?OrganizationProfile $organization = null;
- #[Groups('access_profile_read')]
- private Collection $multiAccesses;
- #[Groups('access_profile_read')]
- private Collection $familyAccesses;
- #[Groups('access_profile_read')]
- private ?AccessProfile $originalAccess = null;
- #[Groups('access_profile_read')]
- private ?int $preferencesId = null;
- #[Pure]
- public function __construct()
- {
- $this->multiAccesses = new ArrayCollection();
- $this->familyAccesses = new ArrayCollection();
- }
- public function getId(): ?int
- {
- return $this->id;
- }
- public function setId(?int $id): self
- {
- $this->id = $id;
- return $this;
- }
- public function getIsAdminAccess(): bool
- {
- return $this->isAdminAccess;
- }
- public function setIsAdminAccess(bool $isAdminAccess): self
- {
- $this->isAdminAccess = $isAdminAccess;
- return $this;
- }
- public function getIsSuperAdminAccess(): bool
- {
- return $this->isSuperAdminAccess;
- }
- public function setIsSuperAdminAccess(bool $isSuperAdminAccess): self
- {
- $this->isSuperAdminAccess = $isSuperAdminAccess;
- return $this;
- }
- public function getOrganization(): ?OrganizationProfile
- {
- return $this->organization;
- }
- public function setOrganization(?OrganizationProfile $organization): self
- {
- $this->organization = $organization;
- return $this;
- }
- public function getName(): ?string
- {
- return $this->name;
- }
- public function setName(?string $name): self
- {
- $this->name = $name;
- return $this;
- }
- public function getGivenName(): ?string
- {
- return $this->givenName;
- }
- public function setGivenName(?string $givenName): self
- {
- $this->givenName = $givenName;
- return $this;
- }
- public function getGender(): ?GenderEnum
- {
- return $this->gender;
- }
- public function setGender(?GenderEnum $gender): self
- {
- $this->gender = $gender;
- return $this;
- }
- public function getAvatarId(): ?int
- {
- return $this->avatarId;
- }
- public function setAvatarId(?int $avatarId): self
- {
- $this->avatarId = $avatarId;
- return $this;
- }
- /**
- * @return list<string>
- */
- public function getRoles(): array
- {
- $roles = $this->roles;
- return array_unique($roles);
- }
- /**
- * @param list<string> $roles
- *
- * @return $this
- */
- public function setRoles(array $roles): self
- {
- $this->roles = $roles;
- return $this;
- }
- public function getIsGuardian(): bool
- {
- return $this->isGuardian;
- }
- public function setIsGuardian(bool $isGuardian): self
- {
- $this->isGuardian = $isGuardian;
- return $this;
- }
- public function getIsPayor(): bool
- {
- return $this->isPayor;
- }
- public function setIsPayor(bool $isPayor): self
- {
- $this->isPayor = $isPayor;
- return $this;
- }
- public function getMultiAccesses(): Collection
- {
- return $this->multiAccesses;
- }
- public function addMultiAccess(OrganizationProfile $organizationProfile): self
- {
- if (!$this->multiAccesses->contains($organizationProfile)) {
- $this->multiAccesses[] = $organizationProfile;
- }
- return $this;
- }
- public function removeMultiAccess(OrganizationProfile $organizationProfile): self
- {
- $this->multiAccesses->removeElement($organizationProfile);
- return $this;
- }
- public function getFamilyAccesses(): Collection
- {
- return $this->familyAccesses;
- }
- public function addFamilyAccess(AccessProfile $accessProfile): self
- {
- if (!$this->familyAccesses->contains($accessProfile)) {
- $this->familyAccesses[] = $accessProfile;
- }
- return $this;
- }
- public function removeFamilyAccess(AccessProfile $accessProfile): self
- {
- $this->familyAccesses->removeElement($accessProfile);
- return $this;
- }
- public function getOriginalAccess(): ?AccessProfile
- {
- return $this->originalAccess;
- }
- public function setOriginalAccess(?AccessProfile $originalAccess): self
- {
- $this->originalAccess = $originalAccess;
- return $this;
- }
- public function getActivityYear(): ?int
- {
- return $this->activityYear;
- }
- public function setActivityYear(?int $activityYear): self
- {
- $this->activityYear = $activityYear;
- return $this;
- }
- /**
- * return required for PHP Stan.
- *
- * @return bool[]
- */
- public function getHistorical(): array
- {
- return $this->historical;
- }
- /**
- * param require for PHP Stan.
- *
- * @param bool[] $historical
- *
- * @return $this
- */
- public function setHistorical(array $historical): self
- {
- $this->historical = $historical;
- return $this;
- }
- public function getPreferencesId(): ?int
- {
- return $this->preferencesId;
- }
- public function setPreferencesId(?int $preferencesId): self
- {
- $this->preferencesId = $preferencesId;
- return $this;
- }
- }
|