['employee:read', 'site:read']], denormalizationContext: ['groups' => ['employee:write']], paginationEnabled: false, security: "is_granted('ROLE_ADMIN')", processor: EmployeeWriteProcessor::class, )] #[ORM\Entity(repositoryClass: EmployeeRepository::class)] #[ORM\Table(name: 'employees')] class Employee { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: 'integer')] #[Groups(['absence:read', 'employee:read'])] private ?int $id = null; #[ORM\Column(type: 'string', length: 100)] #[Groups(['absence:read', 'employee:read', 'employee:write'])] private string $firstName = ''; #[ORM\Column(type: 'string', length: 100)] #[Groups(['absence:read', 'employee:read', 'employee:write'])] private string $lastName = ''; #[ApiProperty(readableLink: true)] #[ORM\ManyToOne(targetEntity: Site::class)] #[ORM\JoinColumn(nullable: true)] #[Groups(['employee:read', 'employee:write'])] private ?Site $site = null; #[ApiProperty(readableLink: true)] #[ORM\ManyToOne(targetEntity: Contract::class)] #[ORM\JoinColumn(nullable: false)] #[Groups(['employee:read', 'employee:write'])] private ?Contract $contract = null; #[ORM\Column(type: 'integer', options: ['default' => 0])] #[Groups(['employee:read', 'employee:write'])] private int $displayOrder = 0; #[ORM\Column(type: 'datetime_immutable')] private DateTimeImmutable $createdAt; public function __construct() { $this->createdAt = new DateTimeImmutable(); } public function getId(): ?int { return $this->id; } public function getFirstName(): string { return $this->firstName; } public function setFirstName(string $firstName): self { $this->firstName = $firstName; return $this; } public function getLastName(): string { return $this->lastName; } public function setLastName(string $lastName): self { $this->lastName = $lastName; return $this; } public function getSite(): ?Site { return $this->site; } public function setSite(?Site $site): self { $this->site = $site; return $this; } public function getContract(): ?Contract { return $this->contract; } public function setContract(?Contract $contract): self { $this->contract = $contract; return $this; } public function getCreatedAt(): DateTimeImmutable { return $this->createdAt; } public function getDisplayOrder(): int { return $this->displayOrder; } public function setDisplayOrder(int $displayOrder): self { $this->displayOrder = $displayOrder; return $this; } }