Your IP : 3.147.205.30
<?php
namespace Bitrix\Voximplant;
use Bitrix\Main\Entity;
use Bitrix\Main\ORM\Data;
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
/**
* Class ConfigTable
*
* Fields:
* <ul>
* <li> ID int mandatory
* <li> SEARCH_ID string(255) optional
* <li> PHONE_NAME string(255) optional
* <li> CRM bool optional default 'Y'
* <li> CRM_RULE string(50) optional
* <li> CRM_CREATE string(50) optional
* <li> QUEUE_TIME int optional
* <li> DIRECT_CODE bool optional default 'N'
* <li> DIRECT_CODE_RULE string(50) optional
* <li> RECORDING bool optional default 'Y'
* <li> RECORDING_TIME int optional
* <li> VOICEMAIL bool optional default 'Y'
* <li> NO_ANSWER_RULE string(50) optional
* <li> MELODY_LANG string(2) optional
* <li> MELODY_WELCOME int optional
* <li> MELODY_WELCOME_ENABLE bool optional default 'Y'
* <li> MELODY_VOICEMAIL int optional
* <li> MELODY_WAIT int optional
* <li> MELODY_HOLD int optional
* </ul>
*
* @package Bitrix\Voximplant
**/
class ConfigTable extends Data\DataManager
{
public static function getFilePath()
{
return __FILE__;
}
public static function getTableName()
{
return 'b_voximplant_config';
}
public static function getMap()
{
return array(
'ID' => new Entity\IntegerField('ID', array(
'primary' => true,
'autocomplete' => true,
)),
'PORTAL_MODE' => new Entity\StringField('PORTAL_MODE', array(
'size' => 50,
'default_value' => 'RENT',
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'SEARCH_ID' => new Entity\StringField('SEARCH_ID', array(
'size' => 255,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_SEARCH_ID_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 255));},
)),
'PHONE_NAME' => new Entity\StringField('PHONE_NAME', array(
'size' => 255,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_PHONE_NAME_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 255));},
)),
'PHONE_COUNTRY_CODE' => new Entity\StringField('PHONE_COUNTRY_CODE', array(
'size' => 50,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_PHONE_COUNTRY_CODE_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'PHONE_VERIFIED' => new Entity\BooleanField('PHONE_VERIFIED', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_PHONE_VERIFIED_FIELD'),
'default_value' => 'Y',
)),
'CRM' => new Entity\BooleanField('CRM', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_CRM_FIELD'),
'default_value' => 'Y',
)),
'CRM_RULE' => new Entity\StringField('CRM_RULE', array(
'size' => 50,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_CRM_RULE_FIELD'),
'default_value' => 'queue',
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'CRM_CREATE' => new Entity\StringField('CRM_CREATE', array(
'size' => 50,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_CRM_CREATE_FIELD'),
'default_value' => 'lead',
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'CRM_CREATE_CALL_TYPE' => new Entity\StringField('CRM_CREATE_CALL_TYPE', array(
'size' => 30,
'default_value' => 'all',
'validation' => function (){ return array(new Entity\Validator\Length(null, 30));},
)),
'CRM_SOURCE' => new Entity\StringField('CRM_SOURCE', array(
'size' => 50,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_CRM_SOURCE_FIELD'),
'default_value' => 'CALL',
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'CRM_FORWARD' => new Entity\BooleanField('CRM_FORWARD', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_CRM_FORWARD_FIELD'),
'default_value' => 'Y',
)),
'CRM_TRANSFER_CHANGE' => new Entity\BooleanField('CRM_TRANSFER_CHANGE', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_CRM_TRANSFER_CHANGE_FIELD'),
'default_value' => 'Y',
)),
'IVR' => new Entity\BooleanField('IVR', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_DIRECT_CODE_FIELD'),
'default_value' => 'Y',
)),
'QUEUE_ID' => new Entity\IntegerField('QUEUE_ID'),
'IVR_ID' => new Entity\IntegerField('IVR_ID'),
'DIRECT_CODE' => new Entity\BooleanField('DIRECT_CODE', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_DIRECT_CODE_FIELD'),
'default_value' => 'Y',
)),
'DIRECT_CODE_RULE' => new Entity\StringField('DIRECT_CODE_RULE', array(
'size' => 50,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_DIRECT_CODE_RULE_FIELD'),
'default_value' => 'voicemail',
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'RECORDING' => new Entity\BooleanField('RECORDING', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_RECORDING_FIELD'),
'default_value' => 'N',
)),
'RECORDING_TIME' => new Entity\IntegerField('RECORDING_TIME', array(
'data_type' => 'integer',
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_RECORDING_TIME_FIELD'),
)),
'RECORDING_NOTICE' => new Entity\BooleanField('RECORDING_NOTICE', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_RECORDING_NOTICE_FIELD'),
'default_value' => 'N',
)),
'FORWARD_LINE' => new Entity\StringField('FORWARD_LINE', array(
'default_value' => 'default',
'size' => 255,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_FORWARD_LINE_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 255));},
)),
'VOICEMAIL' => new Entity\BooleanField('VOICEMAIL', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_VOICEMAIL_FIELD'),
'default_value' => 'Y',
)),
'VOTE' => new Entity\BooleanField('VOTE', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_VOTE_FIELD'),
'default_value' => 'N',
)),
'MELODY_LANG' => new Entity\StringField('MELODY_LANG', array(
'size' => 2,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_LANG_FIELD'),
'default_value' => 'EN',
'validation' => function (){ return array(new Entity\Validator\Length(null, 2));},
)),
'MELODY_WELCOME' => new Entity\IntegerField('MELODY_WELCOME', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_WELCOME_FIELD'),
'default_value' => '0',
)),
'MELODY_WELCOME_ENABLE' => new Entity\BooleanField('MELODY_WELCOME_ENABLE', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_WELCOME_ENABLE_FIELD'),
'default_value' => 'Y',
)),
'MELODY_WAIT' => new Entity\IntegerField('MELODY_WAIT', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_WAIT_FIELD'),
'default_value' => '0',
)),
'MELODY_ENQUEUE' => new Entity\IntegerField('MELODY_ENQUEUE', array(
'default_value' => '0',
)),
'MELODY_HOLD' => new Entity\IntegerField('MELODY_HOLD', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_HOLD_FIELD'),
'default_value' => '0',
)),
'MELODY_RECORDING' => new Entity\IntegerField('MELODY_RECORDING', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_RECORDING_FIELD'),
'default_value' => '0',
)),
'MELODY_VOTE' => new Entity\IntegerField('MELODY_VOTE', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_VOTE_FIELD'),
'default_value' => '0',
)),
'MELODY_VOTE_END' => new Entity\IntegerField('MELODY_VOTE_END', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_VOTE_END_FIELD'),
'default_value' => '0',
)),
'MELODY_VOICEMAIL' => new Entity\IntegerField('MELODY_VOICEMAIL', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_MELODY_VOICEMAIL_FIELD'),
'default_value' => '0',
)),
'TIMEMAN' => new Entity\BooleanField('TIMEMAN', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_TIMEMAN_FIELD'),
'default_value' => 'N',
)),
'WORKTIME_ENABLE' => new Entity\BooleanField('WORKTIME_ENABLE', array(
'values' => array('N', 'Y'),
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_ENABLE_FIELD'),
'default_value' => 'N',
)),
'WORKTIME_FROM' => new Entity\StringField('WORKTIME_FROM', array(
'size' => 5,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_FROM_FIELD'),
'default_value' => '9',
'validation' => function (){ return array(new Entity\Validator\Length(null, 5));},
)),
'WORKTIME_TO' => new Entity\StringField('WORKTIME_TO', array(
'size' => 5,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_TO_FIELD'),
'default_value' => '18.30',
'validation' => function (){ return array(new Entity\Validator\Length(null, 5));},
)),
'WORKTIME_TIMEZONE' => new Entity\StringField('WORKTIME_TIMEZONE', array(
'size' => 50,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_TIMEZONE_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'WORKTIME_HOLIDAYS' => new Entity\StringField('WORKTIME_HOLIDAYS', array(
'size' => 2000,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_HOLIDAYS_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 2000));},
)),
'WORKTIME_DAYOFF' => new Entity\StringField('WORKTIME_DAYOFF', array(
'size' => 20,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_DAYOFF_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 20));},
)),
'WORKTIME_DAYOFF_RULE' => new Entity\StringField('WORKTIME_DAYOFF_RULE', array(
'size' => 50,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_DAYOFF_RULE_FIELD'),
'default_value' => 'voicemail',
'validation' => function (){ return array(new Entity\Validator\Length(null, 50));},
)),
'WORKTIME_DAYOFF_NUMBER' => new Entity\StringField('WORKTIME_DAYOFF_NUMBER', array(
'size' => 20,
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_DAYOFF_NUMBER_FIELD'),
'validation' => function (){ return array(new Entity\Validator\Length(null, 20));},
)),
'WORKTIME_DAYOFF_MELODY' => new Entity\IntegerField('WORKTIME_DAYOFF_MELODY', array(
'title' => Loc::getMessage('INCOMING_CONFIG_ENTITY_WORKTIME_DAYOFF_MELODY_FIELD'),
'default_value' => '0',
)),
'USE_SIP_TO' => new Entity\BooleanField('USE_SIP_TO', array(
'values' => array('N', 'Y'),
'default_value' => 'N'
)),
'WAIT_CRM' => new Entity\IntegerField('WAIT_CRM'),
'WAIT_DIRECT' => new Entity\IntegerField('WAIT_DIRECT'),
'TRANSCRIBE' => new Entity\BooleanField('TRANSCRIBE', array(
'values' => array('N', 'Y'),
'default_value' => 'N'
)),
'TRANSCRIBE_LANG' => new Entity\StringField('TRANSCRIBE_LANG'),
'TRANSCRIBE_PROVIDER' => new Entity\StringField('TRANSCRIBE_PROVIDER'),
'CALLBACK_REDIAL' => new Entity\StringField('CALLBACK_REDIAL'),
'CALLBACK_REDIAL_ATTEMPTS' => new Entity\IntegerField('CALLBACK_REDIAL_ATTEMPTS'),
'CALLBACK_REDIAL_PERIOD' => new Entity\IntegerField('CALLBACK_REDIAL_PERIOD'),
'LINE_PREFIX' => new Entity\StringField('LINE_PREFIX'),
'CAN_BE_SELECTED' => new Entity\BooleanField('CAN_BE_SELECTED', array(
'values' => array('N', 'Y'),
'default_value' => 'N'
)),
'BACKUP_NUMBER' => new Entity\StringField('BACKUP_NUMBER'),
'BACKUP_LINE' => new Entity\StringField('BACKUP_LINE'),
'REDIRECT_WITH_CLIENT_NUMBER' => new Entity\BooleanField('REDIRECT_WITH_CLIENT_NUMBER', array(
'values' => ['N', 'Y']
)),
'QUEUE' => new Entity\ReferenceField(
'QUEUE',
'\Bitrix\Voximplant\Model\Queue',
array('=this.QUEUE_ID' => 'ref.ID'),
array('join_type' => 'LEFT')
),
'SIP_CONFIG' => new Entity\ReferenceField(
'SIP_CONFIG',
'\Bitrix\Voximplant\Sip',
array('=this.ID' => 'ref.CONFIG_ID'),
array('join_type' => 'LEFT')
),
'NUMBER' => new Entity\ReferenceField(
'NUMBER',
'\Bitrix\Voximplant\Model\Number',
array('=this.ID' => 'ref.CONFIG_ID', '=this.PORTAL_MODE' => new \Bitrix\Main\DB\SqlExpression('?', \CVoxImplantConfig::MODE_RENT)),
array('join_type' => 'LEFT')
),
'GROUP_NUMBER' => new Entity\ReferenceField(
'NUMBER',
'\Bitrix\Voximplant\Model\Number',
array('=this.ID' => 'ref.CONFIG_ID', '=this.PORTAL_MODE' => new \Bitrix\Main\DB\SqlExpression('?', \CVoxImplantConfig::MODE_GROUP)),
array('join_type' => 'LEFT')
),
'CALLER_ID' => new Entity\ReferenceField(
'CALLER_ID',
'\Bitrix\Voximplant\Model\CallerId',
array('=this.ID' => 'ref.CONFIG_ID'),
array('join_type' => 'LEFT')
),
'CNT' => new Entity\ExpressionField('CNT', 'COUNT(*)'),
'HAS_NUMBER' => new Entity\ExpressionField(
'HAS_NUMBER',
'CASE WHEN EXISTS (SELECT ID from b_voximplant_number WHERE CONFIG_ID = %s) THEN "Y" ELSE "N" END', ['ID']
),
'HAS_SIP_CONNECTION' => new Entity\ExpressionField(
'HAS_SIP_CONNECTION',
'CASE WHEN EXISTS (SELECT ID from b_voximplant_sip WHERE CONFIG_ID = %s) THEN "Y" ELSE "N" END', ['ID']
),
'HAS_CALLER_ID' => new Entity\ExpressionField(
'HAS_CALLER_ID',
'CASE WHEN EXISTS (SELECT ID from b_voximplant_caller_id WHERE CONFIG_ID = %s) THEN "Y" ELSE "N" END', ['ID']
),
);
}
public static function getBySearchId($searchId)
{
return static::getList(array(
'filter' => array(
'=SEARCH_ID' => $searchId
)
));
}
}