OrganizationHoliday.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Booking;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Entity\Organization\Organization;
  6. use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\ORM\Mapping as ORM;
  10. /**
  11. * @todo : A la suite de la migration, il faut supprimer le nom de la table pour avoir une table OrganizationHoliday, et supprimer l'attribut discr.
  12. *
  13. * Classe ... qui ...
  14. */
  15. #[Auditable]
  16. #[ORM\Entity]
  17. #[ORM\Table(name: 'Booking')]
  18. #[ApiResource(
  19. collectionOperations:[],
  20. itemOperations: [
  21. "get" => ["security" => "is_granted('ROLE_ADMIN') and object.getOrganization().getId() == user.getOrganization().getId()"]
  22. ]
  23. )]
  24. class OrganizationHoliday extends AbstractBooking
  25. {
  26. #[ORM\Column(length: 255, nullable: false)]
  27. private string $discr = 'organizationholiday';
  28. #[ORM\OneToMany(mappedBy: 'event',targetEntity: OrganizationHolidayRecur::class, cascade: ['persist'], orphanRemoval: true)]
  29. private Collection $eventRecur;
  30. #[ORM\ManyToOne(inversedBy: 'holidays')]
  31. #[ORM\JoinColumn(nullable: false)]
  32. private Organization $organization;
  33. public function __construct()
  34. {
  35. $this->eventRecur = new ArrayCollection();
  36. }
  37. public function getDiscr(): ?string
  38. {
  39. return $this->discr;
  40. }
  41. public function setDiscr(string $discr): self
  42. {
  43. $this->discr = $discr;
  44. return $this;
  45. }
  46. /**
  47. * @return Collection<int, OrganizationHolidayRecur>
  48. */
  49. public function getEventRecur(): Collection
  50. {
  51. return $this->eventRecur;
  52. }
  53. public function addEventRecur(OrganizationHolidayRecur $eventRecur): self
  54. {
  55. if (!$this->eventRecur->contains($eventRecur)) {
  56. $this->eventRecur[] = $eventRecur;
  57. $eventRecur->setEvent($this);
  58. }
  59. return $this;
  60. }
  61. public function removeEventRecur(OrganizationHolidayRecur $eventRecur): self
  62. {
  63. if ($this->eventRecur->removeElement($eventRecur)) {
  64. // set the owning side to null (unless already changed)
  65. if ($eventRecur->getEvent() === $this) {
  66. $eventRecur->setEvent(null);
  67. }
  68. }
  69. return $this;
  70. }
  71. public function getOrganization(): ?Organization
  72. {
  73. return $this->organization;
  74. }
  75. public function setOrganization(?Organization $organization): self
  76. {
  77. $this->organization = $organization;
  78. return $this;
  79. }
  80. }