. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Select\Helpers; use Espo\ORM\BaseEntity; use Espo\ORM\Defs; use Espo\ORM\Defs\Params\RelationParam; use Espo\ORM\Entity; /** * @internal */ class EntityHelper { public function __construct( private Defs $defs, ) {} /** * @internal */ public function getRelationEntityType(Entity $entity, string $relation): ?string { if ($entity instanceof BaseEntity) { return $entity->getRelationParam($relation, RelationParam::ENTITY); } $entityDefs = $this->defs->getEntity($entity->getEntityType()); if (!$entityDefs->hasRelation($relation)) { return null; } return $entityDefs ->getRelation($relation) ->tryGetForeignEntityType(); } }