EntityTaxonomyMapping.php
- Pfad:
src/Domain/Entity/EntityTaxonomyMapping.php - Namespace: Domain\Entity
- Zeilen: 187 | Größe: 4,247 Bytes
- Geändert: 2025-12-25 20:19:28 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 89
- Dependencies: 100 (25%)
- LOC: 56 (20%)
- Methods: 90 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Dependencies 1
- use Domain\ValueObject\Confidence
Klassen 1
-
EntityTaxonomyMappingclass Zeile 11
Funktionen 21
-
__construct()public Zeile 21 -
getId()public Zeile 28 -
getEntityId()public Zeile 33 -
getTaxonomyTermId()public Zeile 38 -
getRelevance()public Zeile 43 -
isValidated()public Zeile 48 -
getCreatedAt()public Zeile 53 -
getUpdatedAt()public Zeile 58 -
setId()public Zeile 64 -
setEntityId()public Zeile 71 -
setTaxonomyTermId()public Zeile 78 -
setRelevance()public Zeile 85 -
setRelevanceFromFloat()public Zeile 93 -
setValidated()public Zeile 101 -
setCreatedAt()public Zeile 109 -
setUpdatedAt()public Zeile 116 -
validate()public Zeile 124 -
invalidate()public Zeile 132 -
touch()private Zeile 140 -
toArray()public Zeile 145 -
fromArray()public Zeile 158
Verwendet von 3
- AssignEntityTaxonomyUseCase.php use
- EntityTaxonomyRepository.php use
- EntityTaxonomyRepositoryInterface.php use
Versionen 1
-
v1
2025-12-25 20:19 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?php
declare(strict_types=1);
namespace Domain\Entity;
// @responsibility: Mapping zwischen Entity und Taxonomie-Begriff
use Domain\ValueObject\Confidence;
class EntityTaxonomyMapping
{
private ?int $id = null;
private int $entityId;
private int $taxonomyTermId;
private Confidence $relevance;
private bool $validated = false;
private \DateTimeImmutable $createdAt;
private ?\DateTimeImmutable $updatedAt = null;
public function __construct()
{
$this->createdAt = new \DateTimeImmutable();
$this->relevance = Confidence::medium();
}
// Getters
public function getId(): ?int
{
return $this->id;
}
public function getEntityId(): int
{
return $this->entityId;
}
public function getTaxonomyTermId(): int
{
return $this->taxonomyTermId;
}
public function getRelevance(): Confidence
{
return $this->relevance;
}
public function isValidated(): bool
{
return $this->validated;
}
public function getCreatedAt(): \DateTimeImmutable
{
return $this->createdAt;
}
public function getUpdatedAt(): ?\DateTimeImmutable
{
return $this->updatedAt;
}
// Setters
public function setId(int $id): self
{
$this->id = $id;
return $this;
}
public function setEntityId(int $entityId): self
{
$this->entityId = $entityId;
return $this;
}
public function setTaxonomyTermId(int $taxonomyTermId): self
{
$this->taxonomyTermId = $taxonomyTermId;
return $this;
}
public function setRelevance(Confidence $relevance): self
{
$this->relevance = $relevance;
$this->touch();
return $this;
}
public function setRelevanceFromFloat(float $value): self
{
$this->relevance = Confidence::fromFloat($value);
$this->touch();
return $this;
}
public function setValidated(bool $validated): self
{
$this->validated = $validated;
$this->touch();
return $this;
}
public function setCreatedAt(\DateTimeImmutable $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function setUpdatedAt(?\DateTimeImmutable $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
// Domain Methods
public function validate(): self
{
$this->validated = true;
$this->touch();
return $this;
}
public function invalidate(): self
{
$this->validated = false;
$this->touch();
return $this;
}
private function touch(): void
{
$this->updatedAt = new \DateTimeImmutable();
}
public function toArray(): array
{
return [
'id' => $this->id,
'entity_id' => $this->entityId,
'taxonomy_term_id' => $this->taxonomyTermId,
'relevance' => $this->relevance->value(),
'validated' => $this->validated ? 1 : 0,
'created_at' => $this->createdAt->format('Y-m-d H:i:s'),
'updated_at' => $this->updatedAt?->format('Y-m-d H:i:s'),
];
}
public static function fromArray(array $data): self
{
$mapping = new self();
if (isset($data['id'])) {
$mapping->setId((int) $data['id']);
}
if (isset($data['entity_id'])) {
$mapping->setEntityId((int) $data['entity_id']);
}
if (isset($data['taxonomy_term_id'])) {
$mapping->setTaxonomyTermId((int) $data['taxonomy_term_id']);
}
if (isset($data['relevance'])) {
$mapping->relevance = Confidence::fromFloat((float) $data['relevance']);
}
if (isset($data['validated'])) {
$mapping->validated = (bool) $data['validated'];
}
if (isset($data['created_at'])) {
$mapping->setCreatedAt(new \DateTimeImmutable($data['created_at']));
}
if (isset($data['updated_at'])) {
$mapping->setUpdatedAt(new \DateTimeImmutable($data['updated_at']));
}
return $mapping;
}
}