PersonAddressPostal.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Person;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Entity\Core\AddressPostal;
  6. use App\Repository\Person\PersonAddressPostalRepository;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. /**
  11. * Lien entre une Person et une AddressPostal
  12. */
  13. #[ApiResource(
  14. collectionOperations: [],
  15. itemOperations: [
  16. "get" => ["security" => "is_granted('ROLE_USERS_VIEW')"],
  17. ]
  18. )]
  19. #[ORM\Entity(repositoryClass: PersonAddressPostalRepository::class)]
  20. class PersonAddressPostal
  21. {
  22. #[ORM\Id]
  23. #[ORM\Column]
  24. #[ORM\GeneratedValue]
  25. private ?int $id = null;
  26. #[ORM\ManyToOne(inversedBy: 'personAddressPostal')]
  27. #[ORM\JoinColumn(nullable: false)]
  28. private Person $person;
  29. #[ORM\OneToOne(inversedBy: 'personAddressPostal', cascade: ['persist', 'remove'])]
  30. #[ORM\JoinColumn(nullable: false)]
  31. #[Groups("access_address")]
  32. private AddressPostal $addressPostal;
  33. #[ORM\Column(length: 255)]
  34. #[Assert\Choice(callback: ['\App\Enum\Person\AddressPostalPersonTypeEnum', 'toArray'], message: 'invalid-address-postal-type')]
  35. #[Groups("access_address")]
  36. private string $type;
  37. public function getId(): ?int
  38. {
  39. return $this->id;
  40. }
  41. public function getPerson(): ?Person
  42. {
  43. return $this->person;
  44. }
  45. public function setPerson(Person $person): self
  46. {
  47. $this->person = $person;
  48. return $this;
  49. }
  50. public function getAddressPostal(): ?AddressPostal
  51. {
  52. return $this->addressPostal;
  53. }
  54. public function setAddressPostal(AddressPostal $addressPostal): self
  55. {
  56. $this->addressPostal = $addressPostal;
  57. return $this;
  58. }
  59. public function getType(): string
  60. {
  61. return $this->type;
  62. }
  63. public function setType(string $type): self
  64. {
  65. $this->type = $type;
  66. return $this;
  67. }
  68. }