/**
  * @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));
 }