['task_group:read']], denormalizationContext: ['groups' => ['task_group:write']], order: ['title' => 'ASC'], )] #[ApiFilter(SearchFilter::class, properties: ['project' => 'exact'])] #[ApiFilter(BooleanFilter::class, properties: ['archived'])] #[ORM\Entity(repositoryClass: TaskGroupRepository::class)] class TaskGroup { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['task_group:read', 'task:read'])] private ?int $id = null; #[ORM\Column(length: 255)] #[Groups(['task_group:read', 'task_group:write', 'task:read'])] private ?string $title = null; #[ORM\Column(type: 'text', nullable: true)] #[Groups(['task_group:read', 'task_group:write'])] private ?string $description = null; #[ORM\Column(length: 7)] #[Groups(['task_group:read', 'task_group:write', 'task:read'])] private ?string $color = '#222783'; #[ORM\ManyToOne(targetEntity: Project::class)] #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')] #[Groups(['task_group:read', 'task_group:write'])] private ?Project $project = null; #[ORM\Column(type: 'boolean')] #[Groups(['task_group:read', 'task_group:write', 'task:read'])] private bool $archived = false; public function getId(): ?int { return $this->id; } public function getTitle(): ?string { return $this->title; } public function setTitle(string $title): static { $this->title = $title; return $this; } public function getDescription(): ?string { return $this->description; } public function setDescription(?string $description): static { $this->description = $description; return $this; } public function getColor(): ?string { return $this->color; } public function setColor(string $color): static { $this->color = $color; return $this; } public function getProject(): ?Project { return $this->project; } public function setProject(?Project $project): static { $this->project = $project; return $this; } public function isArchived(): bool { return $this->archived; } public function setArchived(bool $archived): static { $this->archived = $archived; return $this; } }