'ipartial', 'buildingCase' => 'exact', 'receivedWeight' => 'exact', ])] #[ApiFilter(DateFilter::class, properties: ['arrivalDate'])] #[ApiResource( operations: [ new Get( requirements: ['id' => '\d+'], normalizationContext: ['groups' => ['bovine:read']], ), new GetCollection( normalizationContext: ['groups' => ['bovine:read']], ), new Post( normalizationContext: ['groups' => ['bovine:read']], denormalizationContext: ['groups' => ['bovine:write']], security: "is_granted('ROLE_ADMIN')", processor: BovineProcessor::class, ), new Patch( requirements: ['id' => '\d+'], normalizationContext: ['groups' => ['bovine:read']], denormalizationContext: ['groups' => ['bovine:write']], security: "is_granted('ROLE_ADMIN')", processor: BovineProcessor::class, ), ], security: "is_granted('ROLE_USER')", )] class Bovine { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['bovine:read', 'building_case:read'])] private ?int $id = null; #[ORM\Column(length: 50)] #[Groups(['bovine:read', 'bovine:write', 'building_case:read'])] private string $nationalNumber = ''; #[ORM\Column(nullable: true)] #[Groups(['bovine:read', 'bovine:write', 'building_case:read'])] private ?int $receivedWeight = null; #[ORM\Column(type: 'date_immutable', nullable: true)] #[Groups(['bovine:read', 'bovine:write', 'building_case:read'])] #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])] private ?DateTimeImmutable $arrivalDate = null; #[ORM\ManyToOne(inversedBy: 'bovines')] #[Groups(['bovine:read', 'bovine:write'])] private ?BuildingCase $buildingCase = null; #[ORM\ManyToOne] #[Groups(['bovine:read', 'bovine:write', 'building_case:read'])] private ?Supplier $supplier = null; #[ORM\Column(length: 50, nullable: true)] #[Groups(['bovine:read', 'building_case:read'])] private ?string $workNumber = null; #[ORM\Column(type: 'date_immutable', nullable: true)] #[Groups(['bovine:read', 'building_case:read'])] #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])] private ?DateTimeImmutable $birthDate = null; #[ORM\Column(length: 20, nullable: true)] #[Groups(['bovine:read', 'building_case:read'])] private ?string $breedCode = null; public function getId(): ?int { return $this->id; } public function getNationalNumber(): string { return $this->nationalNumber; } public function setNationalNumber(string $nationalNumber): static { $this->nationalNumber = $nationalNumber; return $this; } public function getReceivedWeight(): ?int { return $this->receivedWeight; } public function setReceivedWeight(?int $receivedWeight): static { $this->receivedWeight = $receivedWeight; return $this; } public function getArrivalDate(): ?DateTimeImmutable { return $this->arrivalDate; } public function setArrivalDate(?DateTimeImmutable $arrivalDate): static { $this->arrivalDate = $arrivalDate; return $this; } public function getBuildingCase(): ?BuildingCase { return $this->buildingCase; } public function setBuildingCase(?BuildingCase $buildingCase): static { $this->buildingCase = $buildingCase; return $this; } public function getSupplier(): ?Supplier { return $this->supplier; } public function setSupplier(?Supplier $supplier): static { $this->supplier = $supplier; return $this; } public function getWorkNumber(): ?string { return $this->workNumber; } public function setWorkNumber(?string $workNumber): static { $this->workNumber = $workNumber; return $this; } public function getBirthDate(): ?DateTimeImmutable { return $this->birthDate; } public function setBirthDate(?DateTimeImmutable $birthDate): static { $this->birthDate = $birthDate; return $this; } public function getBreedCode(): ?string { return $this->breedCode; } public function setBreedCode(?string $breedCode): static { $this->breedCode = $breedCode; return $this; } }