EducationTiming.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Education;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Annotation\OrganizationDefaultValue;
  6. use App\Entity\Organization\Organization;
  7. use App\Repository\Education\EducationTimingRepository;
  8. use Doctrine\ORM\Mapping as ORM;
  9. /**
  10. * Temps d'un enseignement
  11. */
  12. #[ApiResource(
  13. collectionOperations: [
  14. "get" => ["security" => "is_granted('ROLE_ORGANIZATION_VIEW')"],
  15. "post"
  16. ],
  17. itemOperations: [
  18. "get" => ["security" => "is_granted('ROLE_ORGANIZATION_VIEW') and object.getOrganization().getId() == user.getOrganization().getId()"],
  19. "put" => ["security" => "object.getOrganization().getId() == user.getOrganization().getId()"],
  20. "delete" => ["security" => "object.getOrganization().getId() == user.getOrganization().getId()"],
  21. ],
  22. attributes: ["security" => "is_granted('ROLE_ORGANIZATION')"]
  23. )]
  24. #[OrganizationDefaultValue(fieldName: "organization")]
  25. #[ORM\Entity(repositoryClass: EducationTimingRepository::class)]
  26. class EducationTiming
  27. {
  28. #[ORM\Id]
  29. #[ORM\Column]
  30. #[ORM\GeneratedValue]
  31. private ?int $id = null;
  32. #[ORM\ManyToOne(inversedBy: 'educationTimings')]
  33. #[ORM\JoinColumn(nullable: false)]
  34. private Organization $organization;
  35. #[ORM\Column]
  36. private int $timing;
  37. public function getId(): ?int
  38. {
  39. return $this->id;
  40. }
  41. public function setOrganization(Organization $organization): self
  42. {
  43. $this->organization = $organization;
  44. return $this;
  45. }
  46. public function getOrganization(): Organization
  47. {
  48. return $this->organization;
  49. }
  50. public function setTiming(int $timing): self
  51. {
  52. $this->timing = $timing;
  53. return $this;
  54. }
  55. public function getTiming(): int
  56. {
  57. return $this->timing;
  58. }
  59. }