setParent methods entity support

This commit is contained in:
Yuri Kuznetsov
2024-09-06 15:06:43 +03:00
parent ea222db0be
commit 095ba6108b
4 changed files with 50 additions and 14 deletions

View File

@@ -189,16 +189,28 @@ class Attachment extends Entity
return $this;
}
public function setParent(?LinkParent $parent): self
public function setParent(LinkParent|Entity|null $parent): self
{
$this->setValueObject('parent', $parent);
if ($parent instanceof LinkParent) {
$this->setValueObject('parent', $parent);
return $this;
}
$this->relations->set('parent', $parent);
return $this;
}
public function setRelated(?LinkParent $related): self
public function setRelated(LinkParent|Entity|null $related): self
{
$this->setValueObject('related', $related);
if ($related instanceof LinkParent) {
$this->setValueObject('related', $related);
return $this;
}
$this->relations->set('related', $related);
return $this;
}

View File

@@ -632,9 +632,15 @@ class Email extends Entity
return $this->getValueObject('parent');
}
public function setParent(?LinkParent $parent): self
public function setParent(LinkParent|Entity|null $parent): self
{
$this->setValueObject('parent', $parent);
if ($parent instanceof LinkParent) {
$this->setValueObject('parent', $parent);
return $this;
}
$this->relations->set('parent', $parent);
return $this;
}

View File

@@ -224,24 +224,42 @@ class Note extends Entity
return $this;
}
public function setParent(LinkParent $parent): self
public function setParent(LinkParent|Entity $parent): self
{
$this->setValueObject('parent', $parent);
if ($parent instanceof LinkParent) {
$this->setValueObject('parent', $parent);
return $this;
}
$this->relations->set('parent', $parent);
return $this;
}
public function setRelated(LinkParent $related): self
public function setRelated(LinkParent|Entity $related): self
{
$this->setValueObject('related', $related);
if ($related instanceof LinkParent) {
$this->setValueObject('related', $related);
return $this;
}
$this->relations->set('related', $related);
return $this;
}
public function setSuperParent(LinkParent $superParent): self
public function setSuperParent(LinkParent|Entity $superParent): self
{
$this->set('superParentId', $superParent->getId());
$this->set('superParentType', $superParent->getEntityType());
if ($superParent instanceof LinkParent) {
$this->set('superParentId', $superParent->getId());
$this->set('superParentType', $superParent->getEntityType());
return $this;
}
$this->relations->set('superParent', $superParent);
return $this;
}

View File

@@ -207,7 +207,7 @@ class RelationsTest extends BaseTestCase
$this->assertEquals($account->getId(), $lead2->get('createdAccountId'));
$em->refreshEntity($lead1);
$this->assertEquals(null, $lead1->get('createdAccountId'));
$account->setRelatedOriginalLead(null);