/** * @param int $type * @return string */ public static function resolveAutoresponderTypeSubQuery($type) { assert('is_int($type)'); $quote = DatabaseCompatibilityUtil::getQuote(); $where = null; $selectDistinct = true; $autoresponderItemActivityTableName = AutoresponderItemActivity::getTableName('AutoresponderItemActivity'); $emailMessageActivityTableName = EmailMessageActivity::getTableName('EmailMessageActivity'); $selectQueryAdapter = new RedBeanModelSelectQueryAdapter($selectDistinct); $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('AutoresponderItemActivity'); $selectQueryAdapter->addClauseByQueryString("autoresponder_id"); $joinTablesAdapter->addFromTableAndGetAliasName($emailMessageActivityTableName, 'emailmessageactivity_id', $autoresponderItemActivityTableName); $where = "type = " . $type . " and {$quote}{$autoresponderItemActivityTableName}{$quote}" . ".autoresponderitem_id = autoresponderitem.id"; $sql = SQLQueryUtil::makeQuery($autoresponderItemActivityTableName, $selectQueryAdapter, $joinTablesAdapter, null, null, $where); return $sql; }
protected static function getIndexesDefinition() { $relatedModelClassName = static::getRelatedModelClassName(); $relatedColumnName = $relatedModelClassName::getTableName() . '_id'; // can't use self:: here as getTableName() uses get_called_class $baseColumnName = EmailMessageActivity::getTableName() . '_id'; return array($baseColumnName . '_' . $relatedColumnName => array('members' => array($baseColumnName, $relatedColumnName), 'unique' => true), $baseColumnName => array('members' => array($baseColumnName), 'unique' => false), $relatedColumnName => array('members' => array($relatedColumnName), 'unique' => false)); }