true])] private bool $active = true; public function __construct( #[ORM\Column(name: 'label', type: Types::JSON, nullable: false, options: ['default' => '[]'])] private array $label, #[ORM\Column(name: 'engine', type: Types::STRING, length: 100)] private string $engine, #[ORM\Column(name: 'is_searchable', type: Types::BOOLEAN, options: ['default' => false])] private bool $isSearchable = false, #[ORM\Column(name: 'presence', type: Types::STRING, nullable: false, enumType: IdentifierPresenceEnum::class, options: ['default' => IdentifierPresenceEnum::ON_EDIT])] private IdentifierPresenceEnum $presence = IdentifierPresenceEnum::ON_EDIT, #[ORM\Column(name: 'data', type: Types::JSON, nullable: false, options: ['default' => '[]', 'jsonb' => true])] private array $data = [], ) {} public function getId(): ?int { return $this->id; } public function getLabel(): array { return $this->label; } public function setLabel(array $label): void { $this->label = $label; } public function getEngine(): string { return $this->engine; } public function isSearchable(): bool { return $this->isSearchable; } public function setIsSearchable(bool $isSearchable): void { $this->isSearchable = $isSearchable; } public function isEditableByUsers(): bool { return $this->presence->isEditableByUser(); } public function isActive(): bool { return $this->active; } public function setActive(bool $active): self { $this->active = $active; return $this; } public function getData(): array { return $this->data; } public function setData(array $data): void { $this->data = $data; } public function getPresence(): IdentifierPresenceEnum { return $this->presence; } public function setPresence(IdentifierPresenceEnum $presence): self { $this->presence = $presence; return $this; } }