['weight:read']]), new GetCollection(normalizationContext: ['groups' => ['weight:read']]), new Post( normalizationContext: ['groups' => ['weight:read']], denormalizationContext: ['groups' => ['weight:write']], ), new Patch( normalizationContext: ['groups' => ['weight:read']], denormalizationContext: ['groups' => ['weight:write']], ), ], )] #[UniqueEntity(fields: ['reception', 'type'], message: 'A weighing already exists for this type.')] class Weight { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['reception:read', 'weight:read'])] private ?int $id = null; #[ORM\ManyToOne(inversedBy: 'weights')] #[ORM\JoinColumn(nullable: false)] #[Groups(['weight:read', 'weight:write'])] private ?Reception $reception = null; #[ORM\Column(nullable: true)] #[Groups(['reception:read', 'weight:read', 'weight:write'])] #[Assert\PositiveOrZero] private ?int $dsd = null; #[ORM\Column(nullable: true)] #[Groups(['reception:read', 'weight:read', 'weight:write'])] #[Assert\PositiveOrZero] private ?int $weight = null; #[ORM\Column(type: 'datetime_immutable', nullable: true)] #[Groups(['reception:read', 'weight:read', 'weight:write'])] #[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])] private ?DateTimeImmutable $weighedAt = null; #[ORM\Column(length: 10)] #[Groups(['reception:read', 'weight:read', 'weight:write'])] #[Assert\NotBlank] #[Assert\Choice(choices: ['gross', 'tare'])] private string $type = 'gross'; public function getId(): ?int { return $this->id; } public function getReception(): ?Reception { return $this->reception; } public function setReception(?Reception $reception): self { $this->reception = $reception; if (null !== $reception && !$reception->getWeights()->contains($this)) { $reception->addWeight($this); } return $this; } public function getDsd(): ?int { return $this->dsd; } public function setDsd(?int $dsd): self { $this->dsd = $dsd; return $this; } public function getWeight(): ?int { return $this->weight; } public function setWeight(?int $weight): self { $this->weight = $weight; return $this; } public function getWeighedAt(): ?DateTimeImmutable { return $this->weighedAt; } public function setWeighedAt(?DateTimeImmutable $weighedAt): self { $this->weighedAt = $weighedAt; return $this; } public function getType(): string { return $this->type; } public function setType(string $type): self { $this->type = $type; return $this; } }