. * * 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\Modules\Crm\Tools\TargetList; use Espo\Core\Utils\Metadata; use Espo\Modules\Crm\Entities\TargetList; use Espo\ORM\Defs; class MetadataProvider { public function __construct( private Metadata $metadata, private Defs $defs ) {} /** * @return string[] */ public function getTargetLinkList(): array { return $this->metadata->get(['scopes', 'TargetList', 'targetLinkList']) ?? []; } /** * @return array */ public function getEntityTypeLinkMap(): array { $map = []; foreach ($this->getTargetLinkList() as $link) { $entityType = $this->defs ->getEntity(TargetList::ENTITY_TYPE) ->getRelation($link) ->getForeignEntityType(); $map[$entityType] = $link; } return $map; } }