. * * 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\Entities; use Espo\Core\Entities\Person; use Espo\Core\Field\Link; use Espo\Core\Field\LinkMultiple; use Espo\Core\Name\Field; use Espo\Entities\User; use Espo\ORM\EntityCollection; class Contact extends Person { public const ENTITY_TYPE = 'Contact'; /** @since v9.3.0. */ public const string COLUMN_ACCOUNTS_ROLE = 'role'; /** * An assigned user. */ public function getAssignedUser(): ?Link { /** @var ?Link */ return $this->getValueObject(Field::ASSIGNED_USER); } /** * A primary account. */ public function getAccount(): ?Account { /** @var ?Account */ return $this->relations->getOne('account'); } /** * Get accounts. * * @return EntityCollection */ public function getAccounts(): EntityCollection { /** @var EntityCollection */ return $this->relations->getMany('accounts'); } /** * Set a primary account. */ public function setAccount(Account|Link|null $account): self { return $this->setRelatedLinkOrEntity('account', $account); } /** * Teams. */ public function getTeams(): LinkMultiple { /** @var LinkMultiple */ return $this->getValueObject(Field::TEAMS); } /** * A title (for a primary account). */ public function getTitle(): ?string { return $this->get('title'); } public function setAssignedUser(Link|User|null $assignedUser): self { return $this->setRelatedLinkOrEntity(Field::ASSIGNED_USER, $assignedUser); } public function setTeams(LinkMultiple $teams): self { $this->setValueObject(Field::TEAMS, $teams); return $this; } public function setDescription(?string $description): self { return $this->set('description', $description); } public function getDescription(): ?string { return $this->get('description'); } }