%PDF- %PDF-
| Direktori : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/db/classes/ |
| Current File : /www/varak.net/mail2.varak.net_old/libraries/afterlogic/common/managers/db/classes/sql.php |
<?php
/*
* Copyright 2004-2014, AfterLogic Corp.
* Licensed under AGPLv3 license or AfterLogic license
* if commercial version of the product was purchased.
* See the LICENSE file for a full license statement.
*/
CApi::Inc('common.db.table');
/**
* @package Db
* @subpackage Classes
*/
class CDbSchemaHelper
{
/**
* @staticvar string $sPrefix
* @return string
*/
public static function Prefix()
{
static $sPrefix = null;
if (null === $sPrefix)
{
$oSettings = null;
$oSettings =& CApi::GetSettings();
$sPrefix = $oSettings->GetConf('Common/DBPrefix');
}
return $sPrefix;
}
/**
* @param string $sName
* @return CDbTable
*/
public static function GetTable($sName)
{
$oTable = null;
$aNames = explode('_', strtolower($sName));
$sFunctionName = implode(array_map('ucfirst', $aNames));
if (is_callable(array('CDbSchema', $sFunctionName)))
{
$oTable = call_user_func(array('CDbSchema', $sFunctionName));
}
return $oTable;
}
/**
* @staticvar array $aFunctionsCache
* @return array
*/
public static function GetSqlFunctions()
{
static $aFunctionsCache = null;
if (null !== $aFunctionsCache)
{
return $aFunctionsCache;
}
$aFunctions = array(
CDbSchema::functionDP1()
);
$aFunctionsCache = $aFunctions;
return $aFunctionsCache;
}
/**
* @staticvar array $aTablesCache
* @return array
*/
public static function GetSqlTables()
{
static $aTablesCache = null;
if (null !== $aTablesCache)
{
return $aTablesCache;
}
$aTables = array();
CDbSchemaHelper::addTablesToArray($aTables, array(
'a_users',
'awm_accounts', 'awm_settings', 'awm_domains',
'awm_folders', 'awm_folders_tree', 'awm_filters',
'awm_messages', 'awm_messages_body', 'awm_reads',
'awm_columns', 'awm_senders',
'awm_mailaliases', 'awm_mailforwards', 'awm_mailinglists',
'awm_addr_book', 'awm_addr_groups', 'awm_addr_groups_contacts',
'awm_addr_groups_events',
'awm_identities', 'awm_tenants', 'awm_fetchers', 'awm_system_folders',
'awm_channels', 'awm_folders_order', 'awm_min', 'awm_subscriptions',
'awm_folders_order_names', 'awm_social',
// quotas
'awm_account_quotas', 'awm_domain_quotas', 'awm_tenant_quotas',
// calendar
'acal_calendars', 'acal_events', 'acal_users_data',
'acal_publications', 'acal_reminders', 'acal_appointments',
'acal_eventrepeats', 'acal_exclusions', 'acal_sharing',
'acal_cron_runs', 'acal_awm_fnbl_runs',
// helpdesk
'ahd_users', 'ahd_threads', 'ahd_posts', 'ahd_reads', 'ahd_attachments', 'ahd_online', 'ahd_fetcher',
// dav
'adav_addressbooks', 'adav_calendars', 'adav_cache', 'adav_calendarobjects',
'adav_cards', 'adav_locks', 'adav_groupmembers', 'adav_principals',
'adav_reminders', 'adav_calendarshares'
));
CApi::Plugin()->RunHook('api-db-tables', array(&$aTables));
$aTablesCache = $aTables;
return $aTablesCache;
}
/**
* @param array &$aTables
* @param array $aNames
*/
protected static function addTablesToArray(array &$aTables, array $aNames)
{
foreach ($aNames as $sName)
{
$oTable = CDbSchemaHelper::GetTable($sName);
if ($oTable)
{
$aTables[] = $oTable;
}
}
}
}
/**
* @package Db
* @subpackage Classes
*/
class CDbSchema
{
/**
* @return CDbTable
*/
public static function AUsers()
{
return new CDbTable('a_users', CDbSchemaHelper::Prefix(), array(
new CDbField('id_user', CDbField::AUTO_INT),
new CDbField('deleted', CDbField::BIT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_user'))
));
}
/**
* @return CDbTable
*/
public static function AwmAccounts()
{
return new CDbTable('awm_accounts', CDbSchemaHelper::Prefix(), array(
new CDbField('id_acct', CDbField::AUTO_INT),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('id_domain', CDbField::INT, 0),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('def_acct', CDbField::BIT, 0),
new CDbField('deleted', CDbField::BIT, 0),
new CDbField('quota', CDbField::INT_UNSIGNED, 0),
new CDbField('email', CDbField::VAR_CHAR, ''),
new CDbField('friendly_nm', CDbField::VAR_CHAR),
new CDbField('mail_protocol', CDbField::INT_SHORT, EMailProtocol::IMAP4),
new CDbField('mail_inc_host', CDbField::VAR_CHAR),
new CDbField('mail_inc_port', CDbField::INT, API_INC_PROTOCOL_IMAP4_DEF_PORT),
new CDbField('mail_inc_login', CDbField::VAR_CHAR),
new CDbField('mail_inc_pass', CDbField::VAR_CHAR),
new CDbField('mail_inc_ssl', CDbField::BIT, 0),
new CDbField('mail_out_host', CDbField::VAR_CHAR),
new CDbField('mail_out_port', CDbField::INT, API_INC_PROTOCOL_SMTP_DEF_PORT),
new CDbField('mail_out_login', CDbField::VAR_CHAR),
new CDbField('mail_out_pass', CDbField::VAR_CHAR),
new CDbField('mail_out_auth', CDbField::INT_SHORT, 0),
new CDbField('mail_out_ssl', CDbField::BIT, 0),
new CDbField('signature', CDbField::TEXT),
new CDbField('signature_type', CDbField::INT_SHORT, 1),
new CDbField('signature_opt', CDbField::INT_SHORT, 0),
new CDbField('mailbox_size', CDbField::INT_BIG, 0),
new CDbField('mailing_list', CDbField::BIT, 0),
new CDbField('hide_in_gab', CDbField::BIT, 0),
new CDbField('custom_fields', CDbField::TEXT)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_acct')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_user')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct', 'id_user')),
new CDbKey(CDbKey::TYPE_INDEX, array('mail_inc_login')),
new CDbKey(CDbKey::TYPE_INDEX, array('email'))
));
}
/**
* @return CDbTable
*/
public static function AwmSettings()
{
return new CDbTable('awm_settings', CDbSchemaHelper::Prefix(), array(
new CDbField('id_setting', CDbField::AUTO_INT),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('id_subscription', CDbField::INT, 0),
new CDbField('id_helpdesk_user', CDbField::INT, 0),
new CDbField('msgs_per_page', CDbField::INT_SMALL, 20),
new CDbField('contacts_per_page', CDbField::INT_SMALL, 20),
new CDbField('created_time', CDbField::DATETIME),
new CDbField('last_login', CDbField::DATETIME),
new CDbField('last_login_now', CDbField::DATETIME),
new CDbField('logins_count', CDbField::INT, 0),
new CDbField('auto_checkmail_interval', CDbField::INT, 0),
new CDbField('def_skin', CDbField::VAR_CHAR, API_DEFAULT_SKIN),
new CDbField('def_editor', CDbField::BIT, 1),
new CDbField('layout', CDbField::INT_SHORT, ELayout::Side),
new CDbField('save_mail', CDbField::INT_SHORT, 0),
new CDbField('def_timezone', CDbField::INT_SMALL, 0),
new CDbField('def_time_fmt', CDbField::VAR_CHAR),
new CDbField('def_lang', CDbField::VAR_CHAR),
new CDbField('def_date_fmt', CDbField::VAR_CHAR, EDateFormat::MMDDYYYY, 100),
new CDbField('mailbox_limit', CDbField::INT_BIG, 0),
new CDbField('incoming_charset', CDbField::VAR_CHAR, 'iso-8859-1', 30),
new CDbField('question_1', CDbField::VAR_CHAR),
new CDbField('answer_1', CDbField::VAR_CHAR),
new CDbField('question_2', CDbField::VAR_CHAR),
new CDbField('answer_2', CDbField::VAR_CHAR),
new CDbField('sip_enable', CDbField::BIT, 1),
new CDbField('sip_impi', CDbField::VAR_CHAR, ''),
new CDbField('sip_password', CDbField::VAR_CHAR, ''),
new CDbField('twilio_number', CDbField::VAR_CHAR, ''),
new CDbField('twilio_enable', CDbField::BIT, 1),
new CDbField('twilio_default_number', CDbField::BIT, 0),
new CDbField('files_enable', CDbField::BIT, 1),
new CDbField('use_threads', CDbField::BIT, 1),
new CDbField('save_replied_messages_to_current_folder', CDbField::BIT, 0),
new CDbField('desktop_notifications', CDbField::BIT, 0),
new CDbField('allow_change_input_direction', CDbField::BIT, 0),
new CDbField('allow_helpdesk_notifications', CDbField::BIT, 0),
new CDbField('enable_open_pgp', CDbField::BIT, 0),
new CDbField('allow_autosave_in_drafts', CDbField::BIT, 1),
new CDbField('autosign_outgoing_emails', CDbField::BIT, 0),
new CDbField('capa', CDbField::VAR_CHAR),
new CDbField('client_timezone', CDbField::VAR_CHAR, '', 100),
new CDbField('custom_fields', CDbField::TEXT)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_setting')),
new CDbKey(CDbKey::TYPE_UNIQUE_KEY, array('id_user'))
));
}
/**
* @return CDbTable
*/
public static function AwmFilters()
{
return new CDbTable('awm_filters', CDbSchemaHelper::Prefix(), array(
new CDbField('id_filter', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('field', CDbField::INT_SHORT, 0),
new CDbField('condition', CDbField::INT_SHORT, 0),
new CDbField('filter', CDbField::VAR_CHAR),
new CDbField('action', CDbField::INT_SHORT, 0),
new CDbField('id_folder', CDbField::INT_BIG, 0),
new CDbField('applied', CDbField::BIT, 1),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_filter')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct', 'id_folder')),
));
}
/**
* @return CDbTable
*/
public static function AwmFolders()
{
return new CDbTable('awm_folders', CDbSchemaHelper::Prefix(), array(
new CDbField('id_folder', CDbField::AUTO_INT_BIG),
new CDbField('id_parent', CDbField::INT_BIG, 0),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('type', CDbField::INT_SMALL, 0),
new CDbField('name', CDbField::VAR_CHAR),
new CDbField('full_path', CDbField::VAR_CHAR),
new CDbField('sync_type', CDbField::INT_SHORT, 0),
new CDbField('hide', CDbField::BIT, 0),
new CDbField('fld_order', CDbField::INT_SMALL, 1),
new CDbField('flags', CDbField::VAR_CHAR, '', 255),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_folder')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct', 'id_folder')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct', 'id_parent')),
));
}
/**
* @return CDbTable
*/
public static function AwmFoldersTree()
{
return new CDbTable('awm_folders_tree', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_folder', CDbField::INT_BIG, 0),
new CDbField('id_parent', CDbField::INT_BIG, 0),
new CDbField('folder_level', CDbField::INT_SHORT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_folder')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_folder', 'id_parent')),
));
}
/**
* @return CDbTable
*/
public static function AwmSystemFolders()
{
return new CDbTable('awm_system_folders', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('folder_full_name', CDbField::VAR_CHAR),
new CDbField('system_type', CDbField::INT_SHORT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct')),
));
}
/**
* @return CDbTable
*/
public static function AwmFoldersOrder()
{
return new CDbTable('awm_folders_order', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('folders_order', CDbField::TEXT),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct')),
));
}
/**
* @return CDbTable
*/
public static function AwmFoldersOrderNames()
{
return new CDbTable('awm_folders_order_names', CDbSchemaHelper::Prefix(), array(
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('real_name', CDbField::VAR_CHAR, ''),
new CDbField('order_name', CDbField::VAR_CHAR, '')
), array(
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct')),
));
}
/**
* @return CDbTable
*/
public static function AwmMessages()
{
return new CDbTable('awm_messages', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_BIG),
new CDbField('id_msg', CDbField::INT_BIG, 0),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('id_folder_srv', CDbField::INT_BIG, 0),
new CDbField('id_folder_db', CDbField::INT_BIG, 0),
new CDbField('str_uid', CDbField::VAR_CHAR),
new CDbField('int_uid', CDbField::INT_BIG, 0),
new CDbField('from_msg', CDbField::VAR_CHAR),
new CDbField('to_msg', CDbField::VAR_CHAR),
new CDbField('cc_msg', CDbField::VAR_CHAR),
new CDbField('bcc_msg', CDbField::VAR_CHAR),
new CDbField('subject', CDbField::VAR_CHAR),
new CDbField('msg_date', CDbField::DATETIME),
new CDbField('attachments', CDbField::BIT, 0),
new CDbField('size', CDbField::INT_BIG, 0),
new CDbField('seen', CDbField::BIT, 0),
new CDbField('flagged', CDbField::BIT, 0),
new CDbField('priority', CDbField::INT_SHORT, 0),
new CDbField('downloaded', CDbField::BIT, 0),
new CDbField('x_spam', CDbField::BIT, 0),
new CDbField('rtl', CDbField::BIT, 0),
new CDbField('deleted', CDbField::BIT, 0),
new CDbField('is_full', CDbField::BIT, 1),
new CDbField('replied', CDbField::BIT),
new CDbField('forwarded', CDbField::BIT),
new CDbField('flags', CDbField::INT),
new CDbField('body_text', CDbField::TEXT_LONG),
new CDbField('grayed', CDbField::BIT, 0),
new CDbField('charset', CDbField::INT, -1),
new CDbField('sensitivity', CDbField::INT_SHORT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct', 'id_folder_db')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct', 'id_folder_db', 'seen')),
));
}
/**
* @return CDbTable
*/
public static function AwmMessagesBody()
{
return new CDbTable('awm_messages_body', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_BIG),
new CDbField('id_msg', CDbField::INT_BIG, 0),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('msg', CDbField::BLOB_LONG, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_UNIQUE_KEY, array('id_acct', 'id_msg')),
));
}
/**
* @return CDbTable
*/
public static function AwmColumns()
{
return new CDbTable('awm_columns', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_column', CDbField::INT, 0),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('column_value', CDbField::INT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_user'))
));
}
/**
* @return CDbTable
*/
public static function AwmReads()
{
return new CDbTable('awm_reads', CDbSchemaHelper::Prefix(), array(
new CDbField('id_read', CDbField::AUTO_INT_BIG),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('str_uid', CDbField::VAR_CHAR),
new CDbField('tmp', CDbField::BIT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_read')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct'))
));
}
/**
* @return CDbTable
*/
public static function AwmSenders()
{
return new CDbTable('awm_senders', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('email', CDbField::VAR_CHAR),
new CDbField('safety', CDbField::INT_SHORT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_user'))
));
}
/**
* @return CDbTable
*/
public static function AwmTenants()
{
return new CDbTable('awm_tenants', CDbSchemaHelper::Prefix(), array(
new CDbField('id_tenant', CDbField::AUTO_INT),
new CDbField('id_channel', CDbField::INT, 0),
new CDbField('disabled', CDbField::BIT, 0),
new CDbField('login_enabled', CDbField::BIT, 0),
new CDbField('login', CDbField::VAR_CHAR),
new CDbField('email', CDbField::VAR_CHAR),
new CDbField('password', CDbField::VAR_CHAR),
new CDbField('description', CDbField::VAR_CHAR),
new CDbField('quota', CDbField::INT, 0),
new CDbField('files_usage_bytes', CDbField::INT_BIG_UNSIGNED, 0),
new CDbField('user_count_limit', CDbField::INT, 0),
new CDbField('domain_count_limit', CDbField::INT, 0),
new CDbField('capa', CDbField::VAR_CHAR, ''),
new CDbField('allow_change_email', CDbField::BIT, 1),
new CDbField('allow_change_password', CDbField::BIT, 1),
new CDbField('expared_timestamp', CDbField::INT_UNSIGNED, 0),
new CDbField('pay_url', CDbField::VAR_CHAR, ''),
new CDbField('is_trial', CDbField::BIT, 0),
new CDbField('hd_admin_email_account', CDbField::VAR_CHAR, ''),
new CDbField('hd_client_iframe_url', CDbField::VAR_CHAR, ''),
new CDbField('hd_agent_iframe_url', CDbField::VAR_CHAR, ''),
new CDbField('hd_site_name', CDbField::VAR_CHAR, ''),
new CDbField('hd_style_allow', CDbField::BIT, 0),
new CDbField('hd_style_image', CDbField::VAR_CHAR, ''),
new CDbField('hd_style_text', CDbField::TEXT),
new CDbField('login_style_image', CDbField::VAR_CHAR, ''),
new CDbField('app_style_image', CDbField::VAR_CHAR, ''),
new CDbField('hd_facebook_allow', CDbField::BIT, 0),
new CDbField('hd_facebook_id', CDbField::VAR_CHAR, ''),
new CDbField('hd_facebook_secret', CDbField::VAR_CHAR, ''),
new CDbField('hd_google_allow', CDbField::BIT, 0),
new CDbField('hd_google_id', CDbField::VAR_CHAR, ''),
new CDbField('hd_google_secret', CDbField::VAR_CHAR, ''),
new CDbField('hd_twitter_allow', CDbField::BIT, 0),
new CDbField('hd_twitter_id', CDbField::VAR_CHAR, ''),
new CDbField('hd_twitter_secret', CDbField::VAR_CHAR, ''),
new CDbField('hd_allow_fetcher', CDbField::BIT, 0),
new CDbField('hd_fetcher_type', CDbField::INT, 0),
new CDbField('hd_fetcher_timer', CDbField::INT, 0),
new CDbField('social_facebook_allow', CDbField::BIT, 0),
new CDbField('social_facebook_id', CDbField::VAR_CHAR, ''),
new CDbField('social_facebook_secret', CDbField::VAR_CHAR, ''),
new CDbField('social_google_allow', CDbField::BIT, 0),
new CDbField('social_google_id', CDbField::VAR_CHAR, ''),
new CDbField('social_google_secret', CDbField::VAR_CHAR, ''),
new CDbField('social_google_api_key', CDbField::VAR_CHAR, ''),
new CDbField('social_twitter_allow', CDbField::BIT, 0),
new CDbField('social_twitter_id', CDbField::VAR_CHAR, ''),
new CDbField('social_twitter_secret', CDbField::VAR_CHAR, ''),
new CDbField('social_dropbox_allow', CDbField::BIT, 0),
new CDbField('social_dropbox_secret', CDbField::VAR_CHAR, ''),
new CDbField('social_dropbox_key', CDbField::VAR_CHAR, ''),
new CDbField('sip_allow', CDbField::BIT, 0),
new CDbField('sip_allow_configuration', CDbField::BIT, 0),
new CDbField('sip_realm', CDbField::VAR_CHAR, ''),
new CDbField('sip_websocket_proxy_url', CDbField::VAR_CHAR, ''),
new CDbField('sip_outbound_proxy_url', CDbField::VAR_CHAR, ''),
new CDbField('sip_caller_id', CDbField::VAR_CHAR, ''),
new CDbField('twilio_allow', CDbField::BIT, 0),
new CDbField('twilio_allow_configuration', CDbField::BIT, 0),
new CDbField('twilio_phone_number', CDbField::VAR_CHAR, ''),
new CDbField('twilio_account_sid', CDbField::VAR_CHAR, ''),
new CDbField('twilio_auth_token', CDbField::VAR_CHAR, ''),
new CDbField('twilio_app_sid', CDbField::VAR_CHAR, '')
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_tenant'))
));
}
/**
* @return CDbTable
*/
public static function AwmChannels()
{
return new CDbTable('awm_channels', CDbSchemaHelper::Prefix(), array(
new CDbField('id_channel', CDbField::AUTO_INT),
new CDbField('login', CDbField::VAR_CHAR),
new CDbField('password', CDbField::VAR_CHAR),
new CDbField('description', CDbField::VAR_CHAR)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_channel'))
));
}
/**
* @return CDbTable
*/
public static function AwmFetchers()
{
return new CDbTable('awm_fetchers', CDbSchemaHelper::Prefix(), array(
new CDbField('id_fetcher', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('id_domain', CDbField::INT, 0),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('enabled', CDbField::BIT, 1),
new CDbField('locked', CDbField::BIT, 0),
new CDbField('mail_check_interval', CDbField::INT, 0),
new CDbField('mail_check_lasttime', CDbField::INT, 0),
new CDbField('leave_messages', CDbField::BIT, 1),
new CDbField('frienly_name', CDbField::VAR_CHAR, ''),
new CDbField('email', CDbField::VAR_CHAR, ''),
new CDbField('signature', CDbField::TEXT, ''),
new CDbField('signature_opt', CDbField::INT_SHORT, 0),
new CDbField('inc_host', CDbField::VAR_CHAR, ''),
new CDbField('inc_port', CDbField::INT, 110),
new CDbField('inc_login', CDbField::VAR_CHAR, ''),
new CDbField('inc_password', CDbField::VAR_CHAR, ''),
new CDbField('inc_security', CDbField::INT_SHORT, 0),
new CDbField('out_enabled', CDbField::BIT, 1),
new CDbField('out_host', CDbField::VAR_CHAR, ''),
new CDbField('out_port', CDbField::INT, 110),
new CDbField('out_auth', CDbField::BIT, 1),
new CDbField('out_security', CDbField::INT_SHORT, 0),
new CDbField('dest_folder', CDbField::VAR_CHAR, '')
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_fetcher'))
));
}
/**
* @return CDbTable
*/
public static function AwmSubscriptions()
{
return new CDbTable('awm_subscriptions', CDbSchemaHelper::Prefix(), array(
new CDbField('id_subscription', CDbField::AUTO_INT),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('name', CDbField::VAR_CHAR, ''),
new CDbField('description', CDbField::VAR_CHAR, ''),
new CDbField('capa', CDbField::VAR_CHAR, ''),
new CDbField('limit', CDbField::INT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_subscription'))
));
}
/**
* @return CDbTable
*/
public static function AwmIdentities()
{
return new CDbTable('awm_identities', CDbSchemaHelper::Prefix(), array(
new CDbField('id_identity', CDbField::AUTO_INT),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('enabled', CDbField::BIT, 1),
new CDbField('email', CDbField::VAR_CHAR, ''),
new CDbField('friendly_nm', CDbField::VAR_CHAR, ''),
new CDbField('signature', CDbField::TEXT),
new CDbField('signature_type', CDbField::INT_SHORT, 1),
new CDbField('use_signature', CDbField::BIT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_identity'))
));
}
/**
* @return CDbTable
*/
public static function AwmMailaliases()
{
return new CDbTable('awm_mailaliases', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT),
new CDbField('alias_name', CDbField::VAR_CHAR, ''),
new CDbField('alias_domain', CDbField::VAR_CHAR, ''),
new CDbField('alias_to', CDbField::VAR_CHAR, '')
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct'))
));
}
/**
* @return CDbTable
*/
public static function AwmMin()
{
return new CDbTable('awm_min', CDbSchemaHelper::Prefix(), array(
new CDbField('hash_id', CDbField::VAR_CHAR, '', 32),
new CDbField('hash', CDbField::VAR_CHAR, '', 20),
new CDbField('data', CDbField::TEXT),
), array(
new CDbKey(CDbKey::TYPE_INDEX, array('hash'))
));
}
/**
* @return CDbTable
*/
public static function AwmMailinglists()
{
return new CDbTable('awm_mailinglists', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT),
new CDbField('list_name', CDbField::VAR_CHAR, ''),
new CDbField('list_to', CDbField::VAR_CHAR, '')
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct'))
));
}
/**
* @return CDbTable
*/
public static function AwmMailforwards()
{
return new CDbTable('awm_mailforwards', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT),
new CDbField('forward_name', CDbField::VAR_CHAR, ''),
new CDbField('forward_domain', CDbField::VAR_CHAR, ''),
new CDbField('forward_to', CDbField::VAR_CHAR, '')
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct'))
));
}
/**
* @return CDbTable
*/
public static function AwmAccountQuotas()
{
return new CDbTable('awm_account_quotas', CDbSchemaHelper::Prefix(), array(
new CDbField('name', CDbField::VAR_CHAR, '', 100),
new CDbField('quota_usage_messages', CDbField::INT_BIG_UNSIGNED, 0),
new CDbField('quota_usage_bytes', CDbField::INT_BIG_UNSIGNED, 0)
), array(
new CDbKey(CDbKey::TYPE_INDEX, array('name'))
));
}
/**
* @return CDbTable
*/
public static function AwmDomainQuotas()
{
return new CDbTable('awm_domain_quotas', CDbSchemaHelper::Prefix(), array(
new CDbField('name', CDbField::VAR_CHAR, '', 100),
new CDbField('quota_usage_messages', CDbField::INT_BIG_UNSIGNED, 0),
new CDbField('quota_usage_bytes', CDbField::INT_BIG_UNSIGNED, 0)
), array(
new CDbKey(CDbKey::TYPE_INDEX, array('name'))
));
}
/**
* @return CDbTable
*/
public static function AwmTenantQuotas()
{
return new CDbTable('awm_tenant_quotas', CDbSchemaHelper::Prefix(), array(
new CDbField('name', CDbField::VAR_CHAR, '', 100),
new CDbField('quota_usage_messages', CDbField::INT_BIG_UNSIGNED, 0),
new CDbField('quota_usage_bytes', CDbField::INT_BIG_UNSIGNED, 0)
), array(
new CDbKey(CDbKey::TYPE_INDEX, array('name'))
));
}
/**
* @return CDbTable
*/
public static function AwmDomains()
{
return new CDbTable('awm_domains', CDbSchemaHelper::Prefix(), array(
new CDbField('id_domain', CDbField::AUTO_INT),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('name', CDbField::VAR_CHAR),
new CDbField('url', CDbField::VAR_CHAR),
new CDbField('user_quota', CDbField::INT, 0),
new CDbField('override_settings', CDbField::BIT, 0),
new CDbField('mail_protocol', CDbField::INT_SHORT, EMailProtocol::IMAP4),
new CDbField('mail_inc_host', CDbField::VAR_CHAR),
new CDbField('mail_inc_port', CDbField::INT, API_INC_PROTOCOL_IMAP4_DEF_PORT),
new CDbField('mail_inc_ssl', CDbField::BIT, 0),
new CDbField('mail_out_host', CDbField::VAR_CHAR),
new CDbField('mail_out_port', CDbField::INT, API_INC_PROTOCOL_SMTP_DEF_PORT),
new CDbField('mail_out_auth', CDbField::INT_SHORT, 1),
new CDbField('mail_out_login', CDbField::VAR_CHAR),
new CDbField('mail_out_pass', CDbField::VAR_CHAR),
new CDbField('mail_out_ssl', CDbField::BIT, 0),
new CDbField('mail_out_method', CDbField::INT_SHORT, 1),
new CDbField('quota_mbytes_limit', CDbField::INT_UNSIGNED, 0),
new CDbField('quota_usage_bytes', CDbField::INT_BIG_UNSIGNED, 0),
new CDbField('quota_usage_messages', CDbField::INT_BIG_UNSIGNED, 0),
new CDbField('allow_webmail', CDbField::BIT, 1),
new CDbField('site_name', CDbField::VAR_CHAR),
new CDbField('allow_change_interface_settings', CDbField::BIT, 0),
new CDbField('allow_users_add_acounts', CDbField::BIT, 0),
new CDbField('allow_change_account_settings', CDbField::BIT, 0),
new CDbField('allow_new_users_register', CDbField::BIT, 1),
new CDbField('allow_open_pgp', CDbField::BIT, 0),
new CDbField('def_user_timezone', CDbField::INT, 0),
new CDbField('def_user_timeformat', CDbField::INT_SHORT, 0),
new CDbField('def_user_dateformat', CDbField::VAR_CHAR, EDateFormat::MMDDYYYY, 100),
new CDbField('msgs_per_page', CDbField::INT_SMALL, 20),
new CDbField('skin', CDbField::VAR_CHAR),
new CDbField('lang', CDbField::VAR_CHAR),
new CDbField('ext_imap_host', CDbField::VAR_CHAR, ''),
new CDbField('ext_smtp_host', CDbField::VAR_CHAR, ''),
new CDbField('ext_dav_host', CDbField::VAR_CHAR, ''),
new CDbField('allow_contacts', CDbField::BIT, 1),
new CDbField('contacts_per_page', CDbField::INT_SMALL, 20),
new CDbField('allow_calendar', CDbField::BIT, 1),
new CDbField('cal_week_starts_on', CDbField::INT_SHORT, 0),
new CDbField('cal_show_weekends', CDbField::BIT, 0),
new CDbField('cal_workday_starts', CDbField::INT_SHORT, 9),
new CDbField('cal_workday_ends', CDbField::INT_SHORT, 18),
new CDbField('cal_show_workday', CDbField::BIT, 0),
new CDbField('cal_default_tab', CDbField::INT_SHORT, 2),
new CDbField('layout', CDbField::INT_SHORT, ELayout::Side),
new CDbField('xlist', CDbField::BIT, 1),
new CDbField('global_addr_book', CDbField::INT_SHORT, 0),
new CDbField('check_interval', CDbField::INT, 0),
new CDbField('allow_registration', CDbField::BIT, 0),
new CDbField('allow_pass_reset', CDbField::BIT, 0),
new CDbField('allow_files', CDbField::BIT, 1),
new CDbField('allow_helpdesk', CDbField::BIT, 1),
new CDbField('use_threads', CDbField::BIT, 1),
new CDbField('is_internal', CDbField::BIT, 0),
new CDbField('disabled', CDbField::BIT, 0),
new CDbField('default_tab', CDbField::VAR_CHAR, 'mailbox'),
// new CDbField('password_min_length', CDbField::INT_SHORT, 0),
// new CDbField('password_must_be_complex', CDbField::BIT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_domain'))
));
}
/**
* @return CDbTable
*/
public static function AwmAddrBook()
{
return new CDbTable('awm_addr_book', CDbSchemaHelper::Prefix(), array(
new CDbField('id_addr', CDbField::AUTO_INT_BIG),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('id_domain', CDbField::INT, 0),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('str_id', CDbField::VAR_CHAR),
new CDbField('type', CDbField::INT_SHORT, 0),
new CDbField('type_id', CDbField::VAR_CHAR, '', 100),
new CDbField('deleted', CDbField::BIT, 0),
new CDbField('date_created', CDbField::DATETIME),
new CDbField('date_modified', CDbField::DATETIME),
new CDbField('fullname', CDbField::VAR_CHAR),
new CDbField('view_email', CDbField::VAR_CHAR, ''),
new CDbField('use_friendly_nm', CDbField::BIT, 1),
new CDbField('firstname', CDbField::VAR_CHAR, '', 100),
new CDbField('surname', CDbField::VAR_CHAR, '', 100),
new CDbField('nickname', CDbField::VAR_CHAR, '', 100),
new CDbField('skype', CDbField::VAR_CHAR, '', 100),
new CDbField('facebook', CDbField::VAR_CHAR, ''),
new CDbField('h_email', CDbField::VAR_CHAR),
new CDbField('h_street', CDbField::VAR_CHAR),
new CDbField('h_city', CDbField::VAR_CHAR, null, 200),
new CDbField('h_state', CDbField::VAR_CHAR, null, 200),
new CDbField('h_zip', CDbField::VAR_CHAR, null, 10),
new CDbField('h_country', CDbField::VAR_CHAR, null, 200),
new CDbField('h_phone', CDbField::VAR_CHAR, null, 50),
new CDbField('h_fax', CDbField::VAR_CHAR, null, 50),
new CDbField('h_mobile', CDbField::VAR_CHAR, null, 50),
new CDbField('h_web', CDbField::VAR_CHAR),
new CDbField('b_email', CDbField::VAR_CHAR),
new CDbField('b_company', CDbField::VAR_CHAR, null, 200),
new CDbField('b_street', CDbField::VAR_CHAR),
new CDbField('b_city', CDbField::VAR_CHAR, null, 200),
new CDbField('b_state', CDbField::VAR_CHAR, null, 200),
new CDbField('b_zip', CDbField::VAR_CHAR, null, 10),
new CDbField('b_country', CDbField::VAR_CHAR, null, 200),
new CDbField('b_job_title', CDbField::VAR_CHAR, null, 100),
new CDbField('b_department', CDbField::VAR_CHAR, null, 200),
new CDbField('b_office', CDbField::VAR_CHAR, null, 200),
new CDbField('b_phone', CDbField::VAR_CHAR, null, 50),
new CDbField('b_fax', CDbField::VAR_CHAR, null, 50),
new CDbField('b_web', CDbField::VAR_CHAR),
new CDbField('other_email', CDbField::VAR_CHAR),
new CDbField('primary_email', CDbField::INT_SHORT),
new CDbField('birthday_day', CDbField::INT_SHORT, 0),
new CDbField('birthday_month', CDbField::INT_SHORT, 0),
new CDbField('birthday_year', CDbField::INT_SMALL, 0),
new CDbField('id_addr_prev', CDbField::INT_BIG),
new CDbField('tmp', CDbField::BIT, 0),
new CDbField('use_frequency', CDbField::INT, 11),
new CDbField('auto_create', CDbField::BIT, 0),
new CDbField('notes', CDbField::VAR_CHAR),
new CDbField('etag', CDbField::VAR_CHAR, '', 100),
new CDbField('shared_to_all', CDbField::BIT, 0),
new CDbField('hide_in_gab', CDbField::BIT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_addr')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_user')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_user', 'deleted')),
new CDbKey(CDbKey::TYPE_INDEX, array('use_frequency')),
new CDbKey(CDbKey::TYPE_INDEX, array('view_email')),
));
}
/**
* @return CDbTable
*/
public static function AwmAddrGroups()
{
return new CDbTable('awm_addr_groups', CDbSchemaHelper::Prefix(), array(
new CDbField('id_group', CDbField::AUTO_INT),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('group_nm', CDbField::VAR_CHAR),
new CDbField('group_str_id', CDbField::VAR_CHAR, null, 100),
new CDbField('use_frequency', CDbField::INT, 0),
new CDbField('email', CDbField::VAR_CHAR),
new CDbField('company', CDbField::VAR_CHAR, null, 200),
new CDbField('street', CDbField::VAR_CHAR),
new CDbField('city', CDbField::VAR_CHAR, null, 200),
new CDbField('state', CDbField::VAR_CHAR, null, 200),
new CDbField('zip', CDbField::VAR_CHAR, null, 10),
new CDbField('country', CDbField::VAR_CHAR, null, 200),
new CDbField('phone', CDbField::VAR_CHAR, null, 50),
new CDbField('fax', CDbField::VAR_CHAR, null, 50),
new CDbField('web', CDbField::VAR_CHAR),
new CDbField('organization', CDbField::BIT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_group')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_user')),
new CDbKey(CDbKey::TYPE_INDEX, array('use_frequency'))
));
}
/**
* @return CDbTable
*/
public static function AwmAddrGroupsContacts()
{
return new CDbTable('awm_addr_groups_contacts', CDbSchemaHelper::Prefix(), array(
new CDbField('id_addr', CDbField::INT_BIG, 0),
new CDbField('id_group', CDbField::INT, 0),
));
}
/**
* @return CDbTable
*/
public static function AwmAddrGroupsEvents()
{
return new CDbTable('awm_addr_groups_events', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::INT_BIG, 0),
new CDbField('id_group', CDbField::INT, 0),
new CDbField('id_calendar', CDbField::VAR_CHAR, null, 250),
new CDbField('id_event', CDbField::VAR_CHAR, null, 250),
));
}
/**
* @return CDbTable
*/
public static function AcalAppointments()
{
return new CDbTable('acal_appointments', CDbSchemaHelper::Prefix(), array(
new CDbField('id_appointment', CDbField::AUTO_INT),
new CDbField('id_event', CDbField::INT, 0),
new CDbField('id_user', CDbField::INT, 0),
new CDbField('email', CDbField::VAR_CHAR),
new CDbField('access_type', CDbField::INT_SHORT, 0),
new CDbField('status', CDbField::INT_SHORT, 0),
new CDbField('hash', CDbField::VAR_CHAR, null, 32),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_appointment'))
));
}
/**
* @return CDbTable
*/
public static function AcalAwmFnblRuns()
{
return new CDbTable('acal_awm_fnbl_runs', CDbSchemaHelper::Prefix(), array(
new CDbField('id_run', CDbField::AUTO_INT),
new CDbField('run_date', CDbField::DATETIME)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_run'))
));
}
/**
* @return CDbTable
*/
public static function AcalCalendars()
{
return new CDbTable('acal_calendars', CDbSchemaHelper::Prefix(), array(
new CDbField('calendar_id', CDbField::AUTO_INT),
new CDbField('calendar_str_id', CDbField::VAR_CHAR),
new CDbField('user_id', CDbField::INT, 0),
new CDbField('calendar_name', CDbField::VAR_CHAR, '', 100),
new CDbField('calendar_description', CDbField::TEXT),
new CDbField('calendar_color', CDbField::INT, 0),
new CDbField('calendar_active', CDbField::BIT, 1),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('calendar_id'))
));
}
/**
* @return CDbTable
*/
public static function AcalCronRuns()
{
return new CDbTable('acal_cron_runs', CDbSchemaHelper::Prefix(), array(
new CDbField('id_run', CDbField::AUTO_INT_BIG),
new CDbField('run_date', CDbField::DATETIME),
new CDbField('latest_date', CDbField::DATETIME)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_run'))
));
}
/**
* @return CDbTable
*/
public static function AcalEventrepeats()
{
return new CDbTable('acal_eventrepeats', CDbSchemaHelper::Prefix(), array(
new CDbField('id_repeat', CDbField::AUTO_INT),
new CDbField('id_event', CDbField::INT),
new CDbField('repeat_period', CDbField::BIT, 0),
new CDbField('repeat_order', CDbField::BIT, 1),
new CDbField('repeat_num', CDbField::INT, 0),
new CDbField('repeat_until', CDbField::DATETIME),
new CDbField('sun', CDbField::BIT, 0),
new CDbField('mon', CDbField::BIT, 0),
new CDbField('tue', CDbField::BIT, 0),
new CDbField('wed', CDbField::BIT, 0),
new CDbField('thu', CDbField::BIT, 0),
new CDbField('fri', CDbField::BIT, 0),
new CDbField('sat', CDbField::BIT, 0),
new CDbField('week_number', CDbField::BIT),
new CDbField('repeat_end', CDbField::BIT, 0),
new CDbField('excluded', CDbField::BIT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_repeat'))
));
}
/**
* @return CDbTable
*/
public static function AcalEvents()
{
return new CDbTable('acal_events', CDbSchemaHelper::Prefix(), array(
new CDbField('event_id', CDbField::AUTO_INT),
new CDbField('event_str_id', CDbField::VAR_CHAR),
new CDbField('calendar_id', CDbField::INT),
new CDbField('event_timefrom', CDbField::DATETIME),
new CDbField('event_timetill', CDbField::DATETIME),
new CDbField('event_allday', CDbField::BIT, 0),
new CDbField('event_name', CDbField::VAR_CHAR, '', 100),
new CDbField('event_text', CDbField::TEXT),
new CDbField('event_priority', CDbField::INT_SHORT),
new CDbField('event_repeats', CDbField::BIT, 0),
new CDbField('event_last_modified', CDbField::DATETIME),
new CDbField('event_owner_email', CDbField::VAR_CHAR, ''),
new CDbField('event_appointment_access', CDbField::INT_SHORT, 0),
new CDbField('event_deleted', CDbField::BIT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('event_id'))
));
}
/**
* @return CDbTable
*/
public static function AcalExclusions()
{
return new CDbTable('acal_exclusions', CDbSchemaHelper::Prefix(), array(
new CDbField('id_exclusion', CDbField::AUTO_INT),
new CDbField('id_event', CDbField::INT),
new CDbField('id_calendar', CDbField::INT),
new CDbField('id_repeat', CDbField::INT),
new CDbField('id_recurrence_date', CDbField::DATETIME),
new CDbField('event_timefrom', CDbField::DATETIME),
new CDbField('event_timetill', CDbField::DATETIME),
new CDbField('event_name', CDbField::VAR_CHAR, null, 100),
new CDbField('event_text', CDbField::TEXT),
new CDbField('event_allday', CDbField::BIT, 0),
new CDbField('event_last_modified', CDbField::DATETIME),
new CDbField('is_deleted', CDbField::BIT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_exclusion'))
));
}
/**
* @return CDbTable
*/
public static function AcalPublications()
{
return new CDbTable('acal_publications', CDbSchemaHelper::Prefix(), array(
new CDbField('id_publication', CDbField::AUTO_INT),
new CDbField('id_user', CDbField::INT),
new CDbField('id_calendar', CDbField::INT),
new CDbField('str_md5', CDbField::VAR_CHAR, null, 32),
new CDbField('int_access_level', CDbField::INT_SHORT, 1),
new CDbField('access_type', CDbField::INT_SHORT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_publication'))
));
}
/**
* @return CDbTable
*/
public static function AcalReminders()
{
return new CDbTable('acal_reminders', CDbSchemaHelper::Prefix(), array(
new CDbField('id_reminder', CDbField::AUTO_INT),
new CDbField('id_event', CDbField::INT),
new CDbField('id_user', CDbField::INT),
new CDbField('notice_type', CDbField::INT_SHORT, 0),
new CDbField('remind_offset', CDbField::INT, 0),
new CDbField('sent', CDbField::INT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_reminder'))
));
}
/**
* @return CDbTable
*/
public static function AcalSharing()
{
return new CDbTable('acal_sharing', CDbSchemaHelper::Prefix(), array(
new CDbField('id_share', CDbField::AUTO_INT),
new CDbField('id_user', CDbField::INT),
new CDbField('id_calendar', CDbField::INT),
new CDbField('id_to_user', CDbField::INT),
new CDbField('str_to_email', CDbField::VAR_CHAR, ''),
new CDbField('int_access_level', CDbField::INT_SHORT, 2),
new CDbField('calendar_active', CDbField::BIT, 1),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_share'))
));
}
/**
* @return CDbTable
*/
public static function AcalUsersData()
{
return new CDbTable('acal_users_data', CDbSchemaHelper::Prefix(), array(
new CDbField('settings_id', CDbField::AUTO_INT),
new CDbField('user_id', CDbField::INT, 0),
// new CDbField('timeformat', CDbField::BIT, 1),
// new CDbField('dateformat', CDbField::BIT, 1),
new CDbField('showweekends', CDbField::BIT, 0),
new CDbField('workdaystarts', CDbField::INT_SHORT, ECalendarDefaultWorkDay::Starts),
new CDbField('workdayends', CDbField::INT_SHORT, ECalendarDefaultWorkDay::Ends),
new CDbField('showworkday', CDbField::BIT, 0),
new CDbField('weekstartson', CDbField::INT_SHORT, ECalendarWeekStartOn::Sunday),
new CDbField('defaulttab', CDbField::INT_SHORT, ECalendarDefaultTab::Week),
// new CDbField('country', CDbField::VAR_CHAR, null, 3),
// new CDbField('timezone', CDbField::INT_SMALL),
// new CDbField('alltimezones', CDbField::BIT, 0),
// new CDbField('reminders_web_url', CDbField::VAR_CHAR),
// new CDbField('autoaddinvitation', CDbField::BIT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('settings_id')),
new CDbKey(CDbKey::TYPE_INDEX, array('user_id'))
));
}
/**
* @return CDbTable
*/
public static function AdavAddressbooks()
{
return new CDbTable('adav_addressbooks', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('principaluri', CDbField::VAR_CHAR, null, 255),
new CDbField('displayname', CDbField::VAR_CHAR, null, 255),
new CDbField('uri', CDbField::VAR_CHAR, null, 200),
new CDbField('description', CDbField::TEXT),
new CDbField('ctag', CDbField::INT_UNSIGNED, 1),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id'))
));
}
/**
* @return CDbTable
*/
public static function AdavCalendars()
{
return new CDbTable('adav_calendars', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('principaluri', CDbField::VAR_CHAR, null, 100),
new CDbField('displayname', CDbField::VAR_CHAR, null, 100),
new CDbField('uri', CDbField::VAR_CHAR, null, 255),
new CDbField('ctag', CDbField::INT_UNSIGNED, 0),
new CDbField('description', CDbField::TEXT),
new CDbField('calendarorder', CDbField::INT_UNSIGNED, 0),
new CDbField('calendarcolor', CDbField::VAR_CHAR, null, 10),
new CDbField('timezone', CDbField::TEXT),
new CDbField('components', CDbField::VAR_CHAR, null, 20),
new CDbField('transparent', CDbField::BIT, 0),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id'))
));
}
/**
* @return CDbTable
*/
public static function AdavCache()
{
return new CDbTable('adav_cache', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('user', CDbField::VAR_CHAR, null, 255),
new CDbField('calendaruri', CDbField::VAR_CHAR, null, 255),
new CDbField('type', CDbField::INT_SHORT),
new CDbField('time', CDbField::INT),
new CDbField('starttime', CDbField::INT),
new CDbField('eventid', CDbField::VAR_CHAR, null, 45)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id'))
));
}
/**
* @return CDbTable
*/
public static function AdavCalendarobjects()
{
return new CDbTable('adav_calendarobjects', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('calendardata', CDbField::TEXT_MEDIUM),
new CDbField('uri', CDbField::VAR_CHAR, null, 255),
new CDbField('calendarid', CDbField::INT_UNSIGNED, null, null, true),
new CDbField('lastmodified', CDbField::INT),
new CDbField('etag', CDbField::VAR_CHAR, '', 32),
new CDbField('size', CDbField::INT_UNSIGNED, 0),
new CDbField('componenttype', CDbField::VAR_CHAR, '', 8),
new CDbField('firstoccurence', CDbField::INT_UNSIGNED),
new CDbField('lastoccurence', CDbField::INT_UNSIGNED),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id'))
));
}
/**
* @return CDbTable
*/
public static function AdavCards()
{
return new CDbTable('adav_cards', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('addressbookid', CDbField::INT_UNSIGNED, null, null, true),
new CDbField('carddata', CDbField::TEXT_MEDIUM),
new CDbField('uri', CDbField::VAR_CHAR, null, 255),
new CDbField('lastmodified', CDbField::INT_UNSIGNED),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('addressbookid'))
));
}
/**
* @return CDbTable
*/
public static function AdavCalendarshares()
{
return new CDbTable('adav_calendarshares', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('calendarid', CDbField::INT_UNSIGNED),
new CDbField('member', CDbField::INT_UNSIGNED),
new CDbField('status', CDbField::INT_SHORT_SMALL),
new CDbField('readonly', CDbField::BIT, 0),
new CDbField('summary', CDbField::VAR_CHAR, null, 150),
new CDbField('displayname', CDbField::VAR_CHAR, null, 100),
new CDbField('color', CDbField::VAR_CHAR, null, 10),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id'))
));
}
/**
* @return CDbTable
*/
public static function AdavLocks()
{
return new CDbTable('adav_locks', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('owner', CDbField::VAR_CHAR, null, 100),
new CDbField('timeout', CDbField::INT_UNSIGNED, null),
new CDbField('created', CDbField::INT),
new CDbField('token', CDbField::VAR_CHAR, null, 100),
new CDbField('scope', CDbField::INT_SHORT),
new CDbField('depth', CDbField::INT_SHORT),
new CDbField('uri', CDbField::TEXT),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id'))
));
}
/**
* @return CDbTable
*/
public static function AdavGroupmembers()
{
return new CDbTable('adav_groupmembers', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('principal_id', CDbField::INT_UNSIGNED, null, null, true),
new CDbField('member_id', CDbField::INT_UNSIGNED, null, null, true)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_UNIQUE_KEY, array('principal_id', 'member_id'))
));
}
/**
* @return CDbTable
*/
public static function AdavPrincipals()
{
return new CDbTable('adav_principals', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('uri', CDbField::VAR_CHAR, null, 255, true),
new CDbField('email', CDbField::VAR_CHAR, null, 80),
new CDbField('vcardurl', CDbField::VAR_CHAR, null, 80),
new CDbField('displayname', CDbField::VAR_CHAR, null, 80)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_UNIQUE_KEY, array('uri'))
));
}
/**
* @return CDbTable
*/
public static function AdavReminders()
{
return new CDbTable('adav_reminders', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT_UNSIGNED),
new CDbField('user', CDbField::VAR_CHAR, null, 100, true),
new CDbField('calendaruri', CDbField::VAR_CHAR, null),
new CDbField('eventid', CDbField::VAR_CHAR, null, 255),
new CDbField('time', CDbField::INT, null),
new CDbField('starttime', CDbField::INT, null),
new CDbField('allday', CDbField::BIT, 0)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id'))
));
}
/**
* @return CDbTable
*/
public static function AhdUsers()
{
return new CDbTable('ahd_users', CDbSchemaHelper::Prefix(), array(
new CDbField('id_helpdesk_user', CDbField::AUTO_INT_UNSIGNED),
new CDbField('id_system_user', CDbField::INT, 0),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('is_agent', CDbField::BIT, 0),
new CDbField('activated', CDbField::BIT, 0),
new CDbField('activate_hash', CDbField::VAR_CHAR, ''),
new CDbField('blocked', CDbField::BIT, 0),
new CDbField('email', CDbField::VAR_CHAR, ''),
new CDbField('notification_email', CDbField::VAR_CHAR, ''),
new CDbField('name', CDbField::VAR_CHAR, ''),
new CDbField('social_id', CDbField::VAR_CHAR, ''),
new CDbField('social_type', CDbField::VAR_CHAR, ''),
new CDbField('language', CDbField::VAR_CHAR, 'English', 100),
new CDbField('date_format', CDbField::VAR_CHAR, '', 50),
new CDbField('time_format', CDbField::INT_SMALL, 0),
new CDbField('password_hash', CDbField::VAR_CHAR, ''),
new CDbField('password_salt', CDbField::VAR_CHAR, ''),
new CDbField('mail_notifications', CDbField::BIT, 0),
new CDbField('created', CDbField::DATETIME),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_helpdesk_user'))
));
}
/**
* @return CDbTable
*/
public static function AhdFetcher()
{
return new CDbTable('ahd_fetcher', CDbSchemaHelper::Prefix(), array(
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('email', CDbField::VAR_CHAR, ''),
new CDbField('last_uid', CDbField::INT, 0),
));
}
/**
* @return CDbTable
*/
public static function AhdThreads()
{
return new CDbTable('ahd_threads', CDbSchemaHelper::Prefix(), array(
new CDbField('id_helpdesk_thread', CDbField::AUTO_INT_UNSIGNED),
new CDbField('str_helpdesk_hash', CDbField::VAR_CHAR, '', 50),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('id_owner', CDbField::INT, 0),
new CDbField('post_count', CDbField::INT, 0),
new CDbField('last_post_id', CDbField::INT, 0),
new CDbField('last_post_owner_id', CDbField::INT, 0),
new CDbField('type', CDbField::INT_SMALL, 0),
new CDbField('has_attachments', CDbField::BIT, 0),
new CDbField('archived', CDbField::BIT, 0),
new CDbField('notificated', CDbField::BIT, 0),
new CDbField('subject', CDbField::VAR_CHAR, ''),
new CDbField('created', CDbField::DATETIME),
new CDbField('updated', CDbField::DATETIME),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_helpdesk_thread'))
));
}
/**
* @return CDbTable
*/
public static function AhdAttachments()
{
return new CDbTable('ahd_attachments', CDbSchemaHelper::Prefix(), array(
new CDbField('id_helpdesk_attachment', CDbField::AUTO_INT_UNSIGNED),
new CDbField('id_helpdesk_post', CDbField::INT),
new CDbField('id_helpdesk_thread', CDbField::INT),
new CDbField('id_tenant', CDbField::INT),
new CDbField('id_owner', CDbField::INT),
new CDbField('created', CDbField::DATETIME),
new CDbField('size_in_bytes', CDbField::INT_UNSIGNED),
new CDbField('file_name', CDbField::VAR_CHAR),
new CDbField('hash', CDbField::TEXT),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_helpdesk_attachment'))
));
}
/**
* @return CDbTable
*/
public static function AhdPosts()
{
return new CDbTable('ahd_posts', CDbSchemaHelper::Prefix(), array(
new CDbField('id_helpdesk_post', CDbField::AUTO_INT_UNSIGNED),
new CDbField('id_helpdesk_thread', CDbField::INT),
new CDbField('id_tenant', CDbField::INT),
new CDbField('id_owner', CDbField::INT),
new CDbField('type', CDbField::INT_SMALL, 0),
new CDbField('system_type', CDbField::INT_SMALL, 0),
new CDbField('text', CDbField::TEXT),
new CDbField('deleted', CDbField::BIT, 0),
new CDbField('created', CDbField::DATETIME),
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id_helpdesk_post'))
));
}
/**
* @return CDbTable
*/
public static function AhdReads()
{
return new CDbTable('ahd_reads', CDbSchemaHelper::Prefix(), array(
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('id_owner', CDbField::INT),
new CDbField('id_helpdesk_thread', CDbField::INT),
new CDbField('last_post_id', CDbField::INT),
));
}
/**
* @return CDbTable
*/
public static function AhdOnline()
{
return new CDbTable('ahd_online', CDbSchemaHelper::Prefix(), array(
new CDbField('id_helpdesk_thread', CDbField::INT, 0),
new CDbField('id_helpdesk_user', CDbField::INT, 0),
new CDbField('id_tenant', CDbField::INT, 0),
new CDbField('name', CDbField::VAR_CHAR, ''),
new CDbField('email', CDbField::VAR_CHAR, ''),
new CDbField('ping_time', CDbField::INT, 0)
));
}
/**
* @return CDbTable
*/
public static function AwmSocial()
{
return new CDbTable('awm_social', CDbSchemaHelper::Prefix(), array(
new CDbField('id', CDbField::AUTO_INT),
new CDbField('id_acct', CDbField::INT, 0),
new CDbField('id_social', CDbField::VAR_CHAR),
new CDbField('type', CDbField::INT, 0),
new CDbField('name', CDbField::VAR_CHAR),
new CDbField('access_token', CDbField::TEXT),
new CDbField('refresh_token', CDbField::VAR_CHAR)
), array(
new CDbKey(CDbKey::TYPE_PRIMARY_KEY, array('id')),
new CDbKey(CDbKey::TYPE_INDEX, array('id_acct'))
));
}
/**
* @return CDbFunction
*/
public static function functionDP1()
{
return new CDbFunction('DP1', 'password VARCHAR(255)', 'VARCHAR(128)',
'DETERMINISTIC
READS SQL DATA
BEGIN
DECLARE result VARCHAR(128) DEFAULT \'\';
DECLARE passwordLen INT;
DECLARE decodeByte CHAR(3);
DECLARE plainBytes VARCHAR(128);
DECLARE startIndex INT DEFAULT 3;
DECLARE currentByte INT DEFAULT 1;
DECLARE hexByte CHAR(3);
SET passwordLen = LENGTH(password);
IF passwordLen > 0 AND passwordLen % 2 = 0 THEN
SET decodeByte = CONV((SUBSTRING(password, 1, 2)), 16, 10);
SET plainBytes = UNHEX(SUBSTRING(password, 1, 2));
REPEAT
SET hexByte = CONV((SUBSTRING(password, startIndex, 2)), 16, 10);
SET plainBytes = CONCAT(plainBytes, UNHEX(HEX(hexByte ^ decodeByte)));
SET startIndex = startIndex + 2;
SET currentByte = currentByte + 1;
UNTIL startIndex > passwordLen
END REPEAT;
SET result = plainBytes;
END IF;
RETURN result;
END');
}
}