id = Uuid::v4(); $this->version = $version; $this->chunkSize = $chunkSize; $this->chunkOverlap = $chunkOverlap; $this->embeddingModel = $embeddingModel; $this->embeddingDimension = $embeddingDimension; $this->scoringVersion = $scoringVersion; $this->createdAt = new \DateTimeImmutable(); } public function getId(): Uuid { return $this->id; } public function getVersion(): int { return $this->version; } public function getChunkSize(): int { return $this->chunkSize; } public function getChunkOverlap(): int { return $this->chunkOverlap; } public function getEmbeddingModel(): string { return $this->embeddingModel; } public function getEmbeddingDimension(): int { return $this->embeddingDimension; } public function getScoringVersion(): int { return $this->scoringVersion; } public function isActive(): bool { return $this->active; } public function isReindexRequired(): bool { return $this->reindexRequired; } public function getCreatedAt(): \DateTimeImmutable { return $this->createdAt; } public function activate(): void { $this->active = true; $this->reindexRequired = true; } public function deactivate(): void { $this->active = false; } public function markReindexDone(): void { $this->reindexRequired = false; } }