ResidenceArea.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Entity\Billing;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Annotation\BillingSettingDefaultValue;
  5. use App\Repository\Billing\ResidenceAreaRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8. * Zone de résidence d'un Access, telle que définie par l'Organization
  9. */
  10. #[ApiResource(
  11. collectionOperations: [
  12. "get" => ["security" => "is_granted('ROLE_ORGANIZATION_VIEW')"],
  13. "post"
  14. ],
  15. itemOperations: [
  16. "get" => ["security" => "is_granted('ROLE_ORGANIZATION_VIEW') and object.getBillingSetting().getOrganization().getId() == user.getOrganization().getId()"],
  17. "put" => ["security" => "object.getBillingSetting().getOrganization().getId() == user.getOrganization().getId()"],
  18. "delete" => ["security" => "object.getBillingSetting().getOrganization().getId() == user.getOrganization().getId()"],
  19. ],
  20. attributes: ["security" => "is_granted('ROLE_ORGANIZATION')"]
  21. )]
  22. #[BillingSettingDefaultValue(fieldName: "billingSetting")]
  23. #[ORM\Entity(repositoryClass: ResidenceAreaRepository::class)]
  24. class ResidenceArea
  25. {
  26. #[ORM\Id]
  27. #[ORM\Column]
  28. #[ORM\GeneratedValue]
  29. private ?int $id = null;
  30. #[ORM\ManyToOne(inversedBy: 'residenceAreas')]
  31. private BillingSetting $billingSetting;
  32. #[ORM\Column(length: 255)]
  33. private string $label;
  34. public function getId(): ?int
  35. {
  36. return $this->id;
  37. }
  38. public function getLabel(): string
  39. {
  40. return $this->label;
  41. }
  42. public function setLabel(string $label){
  43. $this->label = $label;
  44. return $this;
  45. }
  46. public function getBillingSetting(): BillingSetting
  47. {
  48. return $this->billingSetting;
  49. }
  50. public function setBillingSetting(BillingSetting $billingSetting): self
  51. {
  52. $this->billingSetting = $billingSetting;
  53. return $this;
  54. }
  55. }