'onSchemaBuild', ]; } /** * @param \Civi\Api4\Event\SchemaMapBuildEvent $event */ public function onSchemaBuild(SchemaMapBuildEvent $event) { $schema = $event->getSchemaMap(); $table = $schema->getTableByName('civicrm_activity'); $middleAlias = \CRM_Utils_String::createRandom(10, implode(range('a', 'z'))); $middleLink = new ActivityToActivityContactAssigneesJoinable($middleAlias); $bridge = new BridgeJoinable('civicrm_contact', 'id', 'assignees', $middleLink); $bridge->setBaseTable('civicrm_activity_contact'); $bridge->setJoinType(Joinable::JOIN_TYPE_ONE_TO_MANY); $table->addTableLink('contact_id', $bridge); } }